I noticed that one of our merges seems to have confused our repository. On
a branch a file was moved. Following the merge to the main trunk, it
re-appeared also in its original location. However the log of the main
trunk doesn't show it ever being added there.
After some detective work, I have been able to reproduce the problem in a
I'm not sure if the problem is due to user error or due to a bug - there was
a slight twist in the way the merge was performed: The entire branch wasn't
merged. The bottom portion was merged first, and then the top portion -
skipping one of the middle revisions.
Here is the description of the scenario (using Subversion v1.2.3 r15833):
1. create a branch and switch to it (repository revision 3)
2. create a folder, add a file in the folder, and commit to the branch
3. create another file not in the folder and commit to the branch (rev 5)
4. move the file created in step(2) to the parent directory, and commit to
the branch (rev 6)
5. switch to the main trunk
6. merge in the changes made on the branch in revision 4
7. merge in the changes made on the branch in revision 6
8. commit the merges to the main trunk
Following these steps, checkout the main branch. The file created in step(2)
appears in 2 locations! Although this is undesirable, it is predictable
since during step 7, subversion indicated it skipped deleting the file from
So the two issues are:
(A) Should subversion have skipped deleting the file in step 7?
(B) When inspecting the verbose log of the main trunk following step 8,
there is no entry indicating the addition of the file in the folder. Is
My opinion on (A) is that Subversion, instead of skipping the deletion,
should have cancelled the addition of file. Then everything would have been
as expected. As for (B), I would have thought the addition of the file
should have appeared in the log.
Warning: Copyright ResMed. Where the contents of this email and/or attachment includes materials prepared by ResMed, the use of those
materials is subject exclusively to the conditions of engagement between ResMed and the intended recipient.
This communication is confidential and may contain legally privileged information.
By the use of email over the Internet or other communication systems, ResMed is not waiving either confidentiality of, or legal
privilege in,the content of the email and of any attachments.
If the recipient of this message is not the intended addressee, please call ResMed immediately on +61 2 9886 5000 Sydney, Australia.
To unsubscribe, e-mail: firstname.lastname@example.org
For additional commands, e-mail: email@example.com
Received on Thu Dec 15 16:39:02 2005