[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Making merge "replay" branch changes on reintegrate?

From: Alexey Neyman <stilor_at_att.net>
Date: Fri, 2 Dec 2011 11:19:45 -0800

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?

OR

- 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)?

Regards,
Alexey.
Received on 2011-12-02 20:20:25 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.