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: Jan Hudec
Subject: Re: [Gnu-arch-users] Star merging with 3 branches
Date: Tue, 9 Dec 2003 17:51:44 +0100
User-agent: Mutt/1.5.4i

On Mon, Dec 08, 2003 at 17:49:59 -0500, Aaron Bentley wrote:
> Hi there,
> 
> We've been using CVS and are experimenting with Arch.  We have three
> branches going at the moment, and anything that makes merging easier
> would be great.
> 
> We're using tla 1.1pre8
> 
> I had assumed that Arch kept track of what had been merged so I wouldn't
> have to.
> 
> I thought once I'd star-merged and committed, attempting the same
> star-merge would be a no-op.  That's not how it seems.
> 
> 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.
> 
> I tried starmerging smallfeatures--version--patch2 into release, and
> this works as I expected--no changes after the first .  
> 
> But it seems impossible to convince arch that the changes present in
> release should be considered to be present in mainline.  The differences
> between mainline and release are much stronger than the differences
> between release and 
> 
> So basically: have I misunderstood what star-merge is supposed to be
> capable of?  I had expected that after a star-merge, you couln't
> accidentally re-merge the same changes, but it looks as if you can in
> some cases.

You have probably overestimated it's abilities. What it does is, that it
computes the "most recent common ancestor" and then applies delta
against this ancestor.

The limitation is, that only the two branches merged are by default
constidered candidates for the ancestor. So if you merge something from
release to mainline and smallfeatures, star-merge won't notice. You can
however tell it so (using --reference option).

However, even for "triangle" merge (as your case could be called) there
are combinations where it will invariably get lost and you will have to
carefuly look which revisions you have to replay or sync-tree to get
desired result.

> Is delta the only way I can pull changes from smallfeatures into
> mainline?

start-merge might work with help of --reference, if the common ancestor
exists (and is in the named version). It might however happen, that
there are two uncompareable candidates for common ancestor and you will
have to use deltapatch, replay and sync-tree to resolve manualy.

-------------------------------------------------------------------------------
                                                 Jan 'Bulb' Hudec 
<address@hidden>




reply via email to

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