1

I'm trying to re-integrate a branch in SVN. When I run this:

~/branch$ svn merge ^/trunk .

everything is clean. The branch has all ^/trunk revisions merged in ok. However, when I try to merge the branch back into the trunk, I get:

~/trunk$ svn merge ^/branches/std2_1dev .
svn: E195016: Reintegrate can only be used if revisions 15985 through 16741 were previously merged from https://xxx/svn/repo/trunk to the reintegrate source, but this is not the case:
  branches/std2_1dev/00_common/etc/qtg
    Missing ranges: /trunk/00_common/etc/qtg:16700-16701

I found a similar question that suggested this problem is related to svn sw, but ~/trunk is a fresh svn checkout.

When I look at the actual commit contents:

  • 16700 contains a change to ^/trunk/00_common/etc/qtg's property svn:mergeinfo.
  • 16701 performs a reverse merge of 16700 with svn merge -r 16700:16699 . undoing 16700.
  • svn diff -r 16699:16701 returns nothing (so the reverse merge seems to have worked).

How can I recover and perform the re-integration of my branch?

Stewart
  • 4,356
  • 2
  • 27
  • 59

1 Answers1

1

The svn:mergeinfo on the root suggested that the revisions were merged:

~/src/branch$ svn propget svn:mergeinfo . | grep trunk
/trunk:15985-16741

But the problem still existed.

The solution was to explicitly merge in these revisions and commit:

~/src/branch$ svn merge -r 16699:16701 .
~/src/branch$ svn ci

Then the re-integration worked great:

~/src/trunk$ svn merge ^/branch/std2_1dev .
Stewart
  • 4,356
  • 2
  • 27
  • 59