[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnu-arch-users] [BUG] FEATURE PLANS: submission branches
From: |
Bug Goo |
Subject: |
Re: [Gnu-arch-users] [BUG] FEATURE PLANS: submission branches |
Date: |
Wed, 16 Jun 2004 16:40:03 +0000 |
Created as bug 145
On Sat May 29 05:43:48 2004, Tom Lord wrote:
>
>
> Given any two versions, MAINLINE and BRANCH, we can trivially
> construct a third version (given `commit --base' --- see an earlier
> "FEATURE PLAN" post).
>
> The purpose of the new version we'll construct is to optimize access
> to the deltas (a) from MAINLINE to BRANCH; and (b) from BRANCH to
> BRANCH. We're particularly interested in optimizing those delta
> computations for the cases where access to the MAINLINE archive is
> fast, there is almost certainly a very heavily populated revision
> library for MAINLINE, there is at most a very sparsely populated
> revlib for BRANCH, and access to the BRANCH archive may be slow.
>
> In other words, MAINLINE is a typical maintainer's tree; BRANCH a
> typical contributors.
>
> We're deriving a thrid branch that optimizes access to BRANCH for the
> guy running MAINLINE. The aim is to spare the MAINLINE guy from
> _having_ to mirror BRANCH or having a heavily populated revision
> library for BRANCH.
>
> Let's call the third branch SUBMITQ.
>
> For every REV in BRANCH there is a corresponding REV in SUBMITQ.
> They're defined this way:
>
> LET
>
> latest_mainline (REV) := "the latest revision of MAINLINE that
> revision REV of BASE is up-to-date with"
>
>
> THEN
>
> * to create SUBMITQ--REV
>
> % tla get BRANCH--REV wd
> % tla set-tree-version --dir wd MAINLINE
> % tla commit --base `tla latest-mainline --dir dir`
>
> The commit must produce BRANCH--REV, of course.
>
> And that's pretty much it.
>
>
> Details:
>
> % tla update-submitq MAINLINE BRANCH
>
> Ensure the existence and up-to-dateness of a
> submtiq branch for MAINLINE.
>
> If the name of BRANCH is
>
> proj--branch--x.y
>
> then the name of the new submitq is:
>
> proj--branch+submit_$(mangled MAINLINE)--x.y
>
> where `mangled' is a bijective mapping between valid archive names
> and valid branch names. The branch names in the range of `mangled'
> may not include either of the characters "+" or ",").
>
>
>
> The revision builder is effected this way:
>
> Asked to build some BRANCH-REV, it asks the archive for a list
> of branches in the same category. From this, it can identify
> the set of mainlines for which a submitq from BRANCH exists.
>
> Call that set of mainlines for which submitqs of branch are
> available the SUBMITQS-OFFERED-FOR.
>
> Call the set of versions found in greedy libraries, REFERENCES-USED.
>
> The set SUBMITQ-CANDIDATES is (SUBMITQS-OFFERED-FOR intersect
> REFERENCES-USED).
>
> The revision SUBMITQ-IDEAL is the version of the project tree this
> command was invoked in (or given a --dir argument for).
>
> If SUBMITQ-IDEAL is a member of SUBMITQ-CANDIDATES
> then SUBMITQ-WILL-USE := SUBMITQ-IDEAL
>
> otherwise if SUBMITQ-CANDIDATES is not empty
> then SUBMITQ-WILL-USE := randomly_choose (SUBMITQ-CANDIDATES)
>
> otherwise
> SUBMITQ-WILL-USE := <undefined>
> endif
>
>
> If SUBMITQ-WILL-USE != <undefined>
>
> then
> let C be the revision of SUBMITQ-WILL-USE that SUBMITQ--REV
> is tagged from.
>
> recursively ensure that C is in the revision library
>
> create SUBMITQ--REV by patching C with the changeset in
> SUBMITQ--REV.
>
> tla remove-log the SUBMITQ version from the resulting tree
>
> else
> build using just the summary branch (if any) for BRANCH
> and BRANCH itself
>
> endif
>
>
> -t
>
>
>
> _______________________________________________
> Gnu-arch-users mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gnu-arch-users
>
> GNU arch home page:
> http://savannah.gnu.org/projects/gnu-arch/
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Gnu-arch-users] [BUG] FEATURE PLANS: submission branches,
Bug Goo <=