Many users (especially those new to version control) are initially perplexed about the proper syntax of the command and about how and when the feature should be used.
/trunk:341-349,355 # Notice that r355 isn't listed as "eligible" to merge, because # it's already been merged.
Whatever the case, the preponderance of tree conflicts most likely means that the user compared the wrong two trees; it's a classic sign of user error. Maybe things aren't quite that strict, though; perhaps most of the time you just let automatically merge most changes from trunk to branch.
When this happens, it's easy to recursively revert all the changes created by the merge ( $ svn merge -c 1701 X --accept postpone --- Merging r1701 into '.': C glub.c C sputter.c --- Recording mergeinfo for merge of r1701 into '.': U . In this case, you want a way to mask a few specific changes out, that is, prevent them from ever being automatically merged. ___________________________________________________________________ Modified: svn:mergeinfo Merged /trunk:r1055 Merged /branches/frazzle-feature-branch:r997-1003 We're effectively lying to the system, making it think that the change was previously merged.
There's a very easy technique for understanding exactly how into your current working directory, which is presumably a working copy that shares some historical connection to the branch.
The command is smart enough to only duplicate changes that your working copy doesn't yet have.
While implicit mergeinfo is largely an implementation detail, it can be a useful abstraction for understanding merge tracking behavior.