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

SV: problem with merging

From: Hans-Emil Skogh <Hans-Emil.Skogh_at_tritech.se>
Date: Thu, 14 May 2009 08:40:49 +0200

> it seems there are some problems with tortoise SVN and merging - reproduced it several times with test files.

As pointed out before. This is not a TSVN problem but a SVN problem. Please post your opinions to the SVN mailinglist.

> 1) on repo 1 I create a file: text.txt and fill the first line with "repo 1 test line"
> 2) I commit it - and merge it into repo 2 (everything fine so far)
...
> 6) I commit repo 1 and repo 2 - merge repo 1 into repo 2 --> what happens?
> --> conflicts - and from now on every change (either in repo 1 or 2) leads
> to further conflicts ...
>
> If I haven't missed something this seems like a decent bug?

It may seem like a bug, but is really more of a limitation in the subversion implementation of mergetracking.* The beauty of the subversion approach is that it will never do any guessing. If it ends up in a situation where it cant be 100% sure the the merge is safe, it will mark it as conflicted.
 
I would suggest that you (and everyone else who works with branching/merging) reads this:
http://blogs.open.collab.net/svn/2008/07/subversion-merg.html
 
It describes the possibilities and limitations in the subversion merge tracking implementation as of release 1.5. Some things mentioned in the article has been fixed (like not adding mergeinfo to renamed files), but the main info still holds.
 
To summarize the content:
If you do not follow at least the following rules you are basically on your own (no help from SVN in mergeing):
1.) Always branch "trunk". (That is, NEVER branch individual files. Always the top level. You may of course branch branches, but always from the same level.)
2.) Always think of merging whole revisions. (That is, you have to merge a whole revision with all its content (which you may choose to modify in the merge). Never individual files in a revision.)
3.) Use reintegrate to get the changes from your branch back to where you branched from. (Not merge.)
4.) Do not continue using a branch that you have reintegrated. Delete it!
5.) Did I mention that you should NEVER branch individual files?
 
While this might seem like pretty harsh limitations, you will get a very nice and smooth experience if you stick to them. Good luck!
 
Hans-Emil
 
* The main thing being unable to correctly handle merges with trees that contain subtree mergeinfo (some mergeinfo in a part of the tree that should be merged other than the top node).

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2251511

To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-05-14 08:41:37 CEST

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

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