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

RE: Merging branches when directory structure has changed

From: <Nick.Thompson_at_infineon.com>
Date: Fri, 7 Mar 2008 11:11:56 +0100

> -----Original Message-----
> From: news On Behalf Of Angel Tsankov
> Sent: 06 March 2008 17:22
>
> Hallo.
>
> I have been working on a branch for quite a while. In the
> meantime the directory structure of the trunk has been
> changed (via TortoiseSVN's rename command, i.e. history has
> been preserved). Now I wonder if the changes in the branch
> can be merged to the proper files in trunk. What if the files (or
> directories) have been also renamed in the branch?
>
> Regards,
> Angel Tsankov

Sad to say, this is probably Subversion greatest weakness (once merge
tracking is released). Rename is currently implemented as copy (with
history) and delete, as two separate operations wrapped up in one
command. The subtle difference here is that copies of a file could have
been multiple (one to many) and Subversion has no way to detect which
one represents a rename operation (one to one) or if it was only a
simple copy operation. There is more to it than that, but the upshot is
that the merge can't definitively identify the target (moved) file: and
your merge will not work as you hoped.

Work is in progress on implementing a true rename function that will
address this issue. This will not be in 1.5 I believe.

Your best bet for now is to replicate the restructuring on your branch
and then do some dry run merges to check you have resolved these issues.

Regards,
Nick.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-03-07 11:12:25 CET

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

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