I have a situation where I think there's a bug in the tree conflict
detection code. I've tested this (using Tortoise) and have the steps to
The bug appears to be around deleted files within a directory, if I have
2 directories and delete the same file in each, then try to merge, I get
a tree conflict error reported on the un-deleted file.
Create 2 directories projA and projB, each contain test1.txt and
test2.txt. Commit both projects.
Delete test2.txt from both directories. Commit.
Edit test1.txt in projA only. Commit.
Merge (all) changes from projA to projB - you'd expect the changes in
test1.txt to be copied to projB without problem, however, I get a tree
conflict error instead. There is no mention in the dialog about the 2
Now this is a simple test case to reproduce the problem as best as I
can. I know I am merging all revisions, as there is no mergeinfo in the
projects yet, but I've seen this error in more complex situations where
the same deletion has occurred in 2 projects at different times, but
still need to be merged together. I usually get round that by picking
revisions to merge, but that's time consuming and it's something I'd
want the system to handle better.
I assume here that when merging the revision where test2.txt was
deleted, it fails to delete that file in the target directory as its
already been deleted. I would expect that this should be a silent
'failure' (and the same applies when merging in a new file that's
already present) as the merge operation is correct - after all's done,
the directory needs to be the same as the merge source, which it is even
if the merging didn't do the deletion itself.
Incidentally, I think this is the single most common cause of tree
conflicts in our org, if this didn't throw up a tree conflict, I doubt
we'd ever see one again. Does anyone have an comment on this, is it a
bug or a limitation in the merge/conflict routines?
Certainly, the error that is reported to the user at the end of the
merge operation needs some work, I do not have a tree conflict on
test1.txt, the parent directory maybe, and I should be told what the
tree conflict is - in this case, that test2.txt was deleted.
PS. I wonder if there's a debug option to log the svn commands Tortoise
is calling so I could easily replay this using just the command line for
testing whether the problem is with Tortoise or with svn?
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-09-03 14:29:23 CEST