monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] "prune-branch" cert implementation issues.


From: Timothy Brownawell
Subject: Re: [Monotone-devel] "prune-branch" cert implementation issues.
Date: Sun, 05 Jun 2005 18:27:39 -0500

On Sun, 2005-06-05 at 17:53 -0400, Michael Stone wrote:
> I'm attempting to give people a clean way to mark a revision as
> "no-longer-a-head-for-branch-X".  There are two use cases for a feature
> like this one:
> 
> 1) To ignore old branches which have subsequently been merged into the
> mainline.
> 2) To mark revisions as unsuitable for merging.

(2) seems like an obvious meaning of such a cert.

> However, it is unclear whether these use cases should be combined or
> should be handled separately.  In discussions on IRC, we decided to try
> to implement at least the first case with a new certificate type,
> tentatively named a "prune-branch" certificate by dscherger.  The
> functionality is currently implemented by modifying the
> get_branch_heads() function in cert.cc. 

I'd say combined, with (1) being the special case that all heads are
pruned.

> Algorithmically speaking the changes is from the present:
> Find all revisions with branch certs with value X.
> Remove revisions which are ancestors.
> 
> to the new:
> Find all revisions with branch certs with value X.
> Remove revisions which are ancestors.
> Find all prune-branch certs with value X.
> For each revision, discard if it has an attached prune-branch cert.
> 
> Applying prune-branch certs is easy: you just run
> monotone cert REVID prune-branch BRANCH.
> 
> Two questions remain:
> How should the selection of update targets behave in the presence of
> prune-branch certs?

Only automatically choose a rev that isn't pruned from the branch in
question.

> How should this certificate affect commands which rely on the old
> behavior of get_branch_heads()?

I'd think the new behavior would be good for all of them.

Tim






reply via email to

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