monotone-devel
[Top][All Lists]
Advanced

[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?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]