[Top][All Lists]
[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