svncherry-picksvn-merge

svn:mergeinfo is not being cherry-picked properly between branches


I created a ^sandbox/feature-branch from ^trunk as a staging area to do a proof of concept.

But I don't want to reintegrate merge the feature branch back into ^trunk because of the sandbox in its name.

I'd like to create a ^branches/feature-branch and cherry-pick the changes one by one from the ^sandbox/feature-branch.

And then reintegrate merge the nicer named ^branches/feature-branch down into ^trunk.

In testing I can acquire the change set easily but the svn:mergeinfo is not what I expect. It does not include svn:mergeinfo entries added with the ^sandbox/feature-branch commits.

Creation Scenario

Working Copy: ^sandbox/feature-branch

cherry pick code from ^branches/another-feature-branch

This gives a commit with the changes and adds an svn:mergeinfo entry like this: /branches/another-feature-branch:1234

Cherry Pick Scenario

Working Copy: ^branches/feature-branch

cherry pick code from ^sandbox/feature-branch

This takes the change but the svn:mergeinfo change is not what I expect: /sandbox/feature-branch:2345

But there is no mention that the change originally came from ^branches/another-feature-branch:1234

Is there any way to get the original merge path included when cherry-picking commits in subversion?


Solution

  • Fix your expectations: mergeinfo always reflect only P2P-exchange of data on merge between source and target of this operation and doesn't handle ancestors of source commit

    Is there any way to get the original merge path included when cherry-picking commits in subversion?

    No (internally), and it isn't needed really. But you can edit mergeinfo by hand, if you want to have such additional useless bells&whistles