Search code examples
svnmergerepositorybranchtrunk

what is the --reintegrate option used for in svn


I have been working on a banch from trunk, I continously merged changes from trunk into my branch to ensure that I don't get away from the trunk with svn merge ^/trunk/FW. Now the time has come to merge my changes back into the trunk and I read on http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.merge.html that there's a --reintegrate option which I can't find in my man page. So I'm wondering what that's for, how does it make the merge different and how do I best go about merging my changes back into the trunk?

What I have tried (using the --reintegrate option as described):

$ svn merge --reintegrate ^/branches/Ron
svn: Reintegrate can only be used if revisions 11797 through 12026 were previously merged from https://burnaby-svn01:8443/svn/NextGen/trunk/FW to the reintegrate source, but this is not the case:
  branches/Ron/src/nms_core/jpax_system/jpax_time
    Missing ranges: /trunk/FW/src/nms_core/jpax_system/jpax_time:11797-11810
  branches/Ron/src/rtos_core/jpax_application
    Missing ranges: /trunk/FW/src/rtos_core/jpax_application:11797-11810
  branches/Ron/src/rtos_core/jpax_bsp_vip
    Missing ranges: /trunk/FW/src/rtos_core/jpax_bsp_vip:11797-11810

Why does this not work properly?


Solution

  • "Reintegrate" is used to integrate a feature branch back into its immediate ancestor. It tells Subversion to copy over the changes that are unique to your branch, but not other things like trunk changes that were copied over to the branch. This is a specialized use case that has a number of additional requirements and restrictions that a normal merge doesn't. Some examples:

    • Your working copy can't have any local changes
    • Your working copy must not contain mixed revisions or a shallow checkout
    • Your working copy must be completely up to date with the repository
    • Your branch must be completely up to date with its parent

    Based on your error message, I think the last one might be your problem. Merge all remaining trunk changes into your branch and try the reintegration merge again.

    For more details, see this section in the SVN book.