[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Saving merge history (was: Re: merge should copy-with-history)

From: William Uther <will+_at_cs.cmu.edu>
Date: 2002-08-09 18:06:40 CEST

On Friday, August 9, 2002, at 05:54 AM, Nuutti Kotivuori wrote:

[snip]
> Or, you can tell me that "In the future,
> we can show the log messages from the branch at that point as well,
> when we record merge sources." That's fine, too - I'll just say "Give
> me an option for which added and modified files behave the same when
> it's implemented, and I'll be happy."

I think this is the answer. However, one thing still worries me. I
don't believe svn is storing the merge data yet. This means that any
merges you do with this code will be tricky to fix even once svn deals
with merge history - they will not have merge history stored.

If I were to make a patch that had svn record merge history, but not use
it, would it have any chance of being applied? It seems like a small
change with little chance of breaking anything. (Someone previously
mentioned that they would be -1 on a patch for the whole repeated merge
thing before 1.0 because there wouldn't be time to discuss it properly.
I think the data you need to store is actually pretty simple and
wouldn't need much discussion - it is the easy half of the problem. It
could always be converted later anyway.)

Anyway here is a proposed format:

When you merge data into a file, the merge occurs normally except for
the svn:merge property. The svn:merge property is not merged, but
instead a single line is appended to it:

rev-A URL-A rev-B URL-B

rev-A is the start rev of the merge (or * if this is an 'add with
history' merge - the file didn't exist in revA)
URL-A is the start URL of the file that was merged (this is a * if rev-A
is a *)
rev-B is the end rev of the merge
URL-B is the end URL of the file that was merged (use relative URLs so
that, if the repos moves, nothing breaks)

There is one detail that I think is important: If merge copies a
directory that didn't exist in revA (ie the dir was added with history)
then you want to add the merge property to each file individually. This
does not affect the time complexity as all those files are being copied
into your working copy anyway.

This is storing all the information passed on the command line, so I
don't think it leaves out any information.

later,

\x/ill :-}

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Aug 9 18:07:51 2002

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.