[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] Re: Killing heads, again
From: |
Bruce Stephens |
Subject: |
[Monotone-devel] Re: Killing heads, again |
Date: |
Mon, 16 Jan 2006 13:55:40 +0000 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
Bruce Stephens <address@hidden> writes:
[...]
> However, reviewing before integration isn't that unusual. Aegis is
> an obvious example, but GNU Arch people seem to work similarly:
> someone develops in their archive, and when they've got something
> they think is worth merging they say so, and the central coordinator
> merges the patches (presumably after looking at them).
>
> I guess what I'm suggesting is not unlike accept_testresult_change,
> although I read that as only applying to update (whereas I'd want it
> to apply to merge and propagate, too).
OK, it seems fairly easy to implement, and I think I've implemented
something (for 0.25) that does what I want. Essentially I added a
filter to the end of get_branch_heads, calling a hook
get_head_cert_trust, passing in the branch cert signers and the
signers of certs with name "nothead", both with the value branchname,
and removing those revisions where the hook returns false.
So a default hook might be:
function get_head_cert_trust(signers, unsigners, id, branchname)
return table.getn(signers) > table.getn(unsigners)
end
Or, more likely, something like
function get_head_cert_trust(signers, unsigners, id, branchname)
return table.getn(unsigners) < 1
end
Originally I was imagining developing in a bushy sort of way on a
mainline, even including fairly experimental stuff. However, I think
I agree that that would be messy. So I think this might be more
useful for non-mainline branches, where you try an approach which
turns out to fail.
So if that had happened with net.venge.monotone.ssh, for example, you
could mark the head of net.venge.monotone.ssh with one of these
nothead certs, and then commit from net.venge.monotone onto that same
branch to start again, and the old head wouldn't get in the way, but
would still be there for reference, or if someone wanted to revive it.
Does this seem useful to anyone other than me? i.e., if I cleaned up
the change, and it didn't cause too much of a slowdown (which I
haven't tested yet, although I'd guess it's not going to be
significant compared to the other activity in get_branch_heads), is it
something that might be accepted?
- [Monotone-devel] Killing heads, again, Bruce Stephens, 2006/01/12
- Re: [Monotone-devel] Killing heads, again, Justin Patrin, 2006/01/12
- Re: [Monotone-devel] Killing heads, again, Nathaniel Smith, 2006/01/12
- [Monotone-devel] Re: Killing heads, again, Bruce Stephens, 2006/01/13
- [Monotone-devel] Re: Killing heads, again,
Bruce Stephens <=