gnu-arch-users
[Top][All Lists]
Advanced

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

Re: [Gnu-arch-users] Star merging with 3 branches


From: Joshua Haberman
Subject: Re: [Gnu-arch-users] Star merging with 3 branches
Date: Tue, 09 Dec 2003 14:20:15 -0800

On Tue, 2003-12-09 at 13:51, Tom Lord wrote:
>     > From: Aaron Bentley <address@hidden>
>     > Here's our current tree:
>     > 
>     > mainline
>     >    |
>     >    +-release
>     >        |
>     >        smallfeatures
> 
>     > First, went into mainline and did star-merge project--release--version. 
>     > Then I made CVS bring everything in mainline up to date.  Then I
>     > committed with tla.
> 
>     > So now, mainline should appear to be all of release, plus other
>     > changes.  Now there are changes in smallfeatures that I'd like to import
>     > into mainline.  So I do star-merge
>     > project--smallfeatures--version--patch-2.  And tla attempts to redo a
>     > bunch of the changes that are already present in both the release and
>     > mainline branches.  These changes don't have anything to do with
>     > smallfeatures--version--patch-2.  Smallfeatures inherited these changes
>     > from release.
> 
> 
> star-merge is very cool and powerful, but it isn't magic.
> 
> Magic would be required for arch to "subtract out" in a perfect way
> the changes from `release' that have already been merged into
> mainline.  (We can talk about why, if you like, but I'll skip it
> here.)

I just don't get what makes this hard.

You have:
- a sequence of changesets that have been applied to smallfeatures
   (and its ancestors)
- information about which changesets have been applied, directly or
   indirectly, to mainline.

Why can't you merge from smallfeatures to mainline using the following
algorithm:
- determine the most recent ancestor
- for each changeset between the most recent ancestor and the newest 
   revision on smallfeatures:
    - if there is no patch log for this changeset in mainline, apply
        this changeset to mainline.  otherwise continue.

Why is "subtracting out" required?  The changesets that already exist in
smallfeatures and its ancestors contain information at enough
granularity to perform the desired operation: applying changes to
mainline that smallfeatures has but mainline does not.

I've asked this question repeatedly but never gotten an answer I
understand.

Josh




reply via email to

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