subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexey Neyman <>
Subject Making merge "replay" branch changes on reintegrate?
Date Fri, 02 Dec 2011 19:19:45 GMT
Hi all,

I wonder if there is a way to make "svn merge --reintegrate" replay actual 
changes that happened on the branch instead of just copying the sources from 
the branch. What I mean is:

1. I have some project in /trunk

2. To do some experimental feature, I copy it to an engineering branch:
$ svn cp $URL/trunk $URL/engr/mybranch

3. On that branch, I do some renames followed by some changes, e.g.:
$ svn mv include/foo.h include/bar.h
$ vi include/bar.h

4. I commit the changes on the branch, merge with trunk.

5. Now when I try to reintegrate the changes to the trunk with "svn merge --
reintegrate", I see that include/bar.h is indeed added with history ("A +"), 
but it was copied from ^/engr/mybranch/include/bar.h, not from 
^/trunk/include/foo.h (as it was on the branch, at step #3 above).

The reason for this request is that in our project, all changes on the trunk 
must be peer-reviewed, but engineering branches are considered "private 
sandboxes" where one may do whatever changes he likes. In the scenario above, 
bar.h would have a history going through the engineering branch, which in 
certain cases would make peer reviews inconvenient (as the engineering branch 
may include some spurious changes that did not make into the final merge).

So, is it possible to either
- make "svn merge --reintegrate" apply the same changes to the trunk rather 
than copy the sources from the branch?


- somehow change the "copyfrom" information on a file before checking it in 
(so that the result of merging could be adjusted before being checked in)?


View raw message