monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] Synchronising changes in two branches WITHOUT the f


From: Matt Johnston
Subject: Re: [Monotone-devel] Synchronising changes in two branches WITHOUT the full history?
Date: Wed, 1 Sep 2004 17:55:59 +0800
User-agent: Mutt/1.4i

On Wed, Sep 01, 2004 at 11:30:15AM +0200, Richard Levitte - VMS Whacker wrote:
> Hi,
> 
> I'm starting a project where I will do some development that applies
> both to the 0.9.7 and 0.9.8-dev branches of OpenSSL.  Those two
> branches have a lot of differences (and aren't entirely synchronised,
> I dare say...).
> 
> What I need to do is to implement a new feature (RFC3820) in both
> those branches, and the only way I can currently see is to do diffs
> and patches between two working directories that are essentially
> separate branches with no common ancestry (I won't import the whole
> OpenSSL repository, just a late snapshot of each of those branches).
> 
> I wonder if there's a more elegant way to do what I want to do.  I
> need to be able to transfer my RFC3820-specific changes without
> getting the whole history from whatever is defined as the common
> ancestor.  Is there a way to do this?
> 
> Note: I may have misunderstood how things like propagate works, so
> perhaps that's the way.  I doubt it, though...

I'm not totally sure, though I _think_ the following might work. I could
be entirely wrong though - please, someone tell me if I am :)

Basically, you set up a 'fake' ancestry so that the 0.9.7 snapshot is a direct
ancestor of 0.9.8-dev, and go from there.

Start with a single branch (call it openssl.097 say), and check it
into monotone with that branch name. This'll contain your starting 0.9.7
snapshot.

Then do a "monotone del .", remove all the files in the dir (except MT/),
untar the 0.9.8-dev snapshot you're working on (in-place, so as to replace
the files), and do "monotone add ." Now commit this as branch
"openssl.098-dev", so it'll be a descendant of 0.9.7. Note that just doing
add/del will lose rename history, if there were any renames between
0.9.7/0.9.8.  Someone on the list pointed this trick out a while back - I
can't remember who it was.

Now, check out openssl.097 in a new dir. Make your RFC3820 changes
here, committing to openssl.097. I _think_ you should now be able to do 

monotone propagate openssl.097 openssl.098

, and have the changes merge across. Of course you will probably have some
manual merging to do, but I think it'll generally work. It might be worth
also committing/adding-a-cert-for openssl.097.orig as the original
snapshot, so if you get a new snapshot, you can use a similar 'propagate' to
track changes.

Matt





reply via email to

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