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
http://subversion.tigris.org/servlets/BrowseList?list=users&by=thread&fr
om=335000.
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
I'm
encountering a lot of conflicts where I think the merge should be able
to
process the files silently and correctly without user intervention.
As the branch has not been existing very long and few development was
done
on the same file in the trunk and the branch, I expected to get only
status
'Updated' during the merge, but I get more 'Conflicts' than 'Updates' -
even
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:
<<<<<<< .working
// some lines
// of code
// are her
=======
>>>>>>> .merge-right.r542
Some files which have about the same changes applied are ok.
As I have found out now, all files with conflicts raised have been
commited into
the branch with changes on them. Other files, having about the same bit
of changes
applied to but without having changes alreay when creating the branch,
worked fine.
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
trunk/src/uni_druck_gp12.c
and commit it - this is the version before the branch is created
- Copy attached file uni_druck_gp12.c.r503 into
trunk/src/uni_druck_gp12.c -
the file now contains the changes which have been made when the branch
was created
- Create the branch: svn copy src
svn://server//test/branches/test-branch
- 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
the
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
Thomas
____________________________________________________________
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.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Jun 30 13:08:36 2005