More than two weeks ago I posted a message with subject "Problems with
svn merge on merging a whole branch to another" describing the problems
I encountered when merging just a small branch back to the main trunk.
After a response from Dale Worley I made further investigations and
posted a test case to produce the bug. The messages mentioned can be
found in the thread
Unfortunately, I got no further comments. As I still think, the behavior
is due to a bug and this bug limits the easy use of branches, I repost
the description with the test case again.
I try exactly to do what is described as common-use for merging in the
Subversion book in the section "Merging a Whole Branch to Another", but
encountering a lot of conflicts where I think the merge should be able
process the files silently and correctly without user intervention.
As the branch has not been existing very long and few development was
on the same file in the trunk and the branch, I expected to get only
'Updated' during the merge, but I get more 'Conflicts' than 'Updates' -
on files which have not been modified in the trunk in the mean time!
If I look in such a file, I see only conflicts like the one below where
there is really nothing conflicting:
// some lines
// of code
// are her
Some files which have about the same changes applied are ok.
As I have found out now, all files with conflicts raised have been
the branch with changes on them. Other files, having about the same bit
applied to but without having changes alreay when creating the branch,
I attach 3 files and describe how to reproduce the problem:
- You have a repository test with directories trunk/src and branches
- Copy attached file uni_druck_gp12.c.r502 into
and commit it - this is the version before the branch is created
- Copy attached file uni_druck_gp12.c.r503 into
the file now contains the changes which have been made when the branch
- Create the branch: svn copy src
- Checkout the branch and copy attached file uni_druck_gp12.c.r540 into
trunk/branches/test-branches/uni_druck_gp12.c - the file now contains
changes made when the branch was active
- Commit the branch
- Now checkout a new trunk directory and execute the command
svn merge -r <revision-when-branch-was-created>:HEAD
svn://test/branches/test-branch and the file uni_druck_gp12.c will
have erroneously a status of conflict
This message may contain legally privileged or confidential
information and is therefore addressed to the named persons only.
The recipient should inform the sender and delete this message,
if he/she is not named as addressee.
The sender disclaims any and all liability for the integrity
and punctuality of this message.
The sender has activated an automatic virus scanning by
Messagelabs, but does not guarantee the virus free
transmission of this message.
Received on Thu Jun 30 13:08:36 2005
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org