Uploaded image for project: 'Subversion'
  1. Subversion
  2. SVN-4243

branch to branch-of-branch sync merges remove valid mergeinfo

    XMLWordPrintableJSON

Details

    Description

      Ran into a new mergetracking problem today while doing some sync/catch-up merges
      on one of my branches.
      
      There are three branches of interest here:
      
      1) ^/subversion/trunk
      2) ^/subversion/branches/inheritable-props
      3) ^/subversion/branches/auto-props-sdc
      
      #2 is a vanilla feature branch and #3 is a branch of #2.  I fully synced #3 with
      #1, then reintegrated #2 back to #1.  We *should* be able to start syncing
      directly from #1 to #3 (and ultimately reintegrate #3 back to #1.
      
      
      ___trunk@1297079_____________________________@1395109_______________________>
              \                                       /
              copy                                reintegrate
                \                                   /
         inheritable-props@1297080___@1384105______/
                                         \        \
                                        copy      sync merge
                                           \        \
                                   auto-props-sdc___1395146____>
      
      Unfortunately I'm seeing conflicts during #1-->#3 sync merges:
      
        C:\SVN\src-trunk-4>svn merge ^^/subversion/trunk .
        Conflict discovered in 'C:/SVN/src-trunk-4/tools/dist/make-deps-tarball.sh'.
        Select: (p) postpone, (df) diff-full, (e) edit,
                (mc) mine-conflict, (tc) theirs-conflict,
                (s) show all options: p
        --- Merging r1304318 into 'tools\dist\make-deps-tarball.sh':
        C    tools\dist\make-deps-tarball.sh
        --- Recording mergeinfo for merge of r1297080 through r1304318 into '.':
         U   .
        Summary of conflicts:
          Text conflicts: 1
        svn: E155015: One or more conflicts were produced while merging
        r1304317:1304318 into 'C:\SVN\src-trunk-4' --
        resolve all conflicts and rerun the merge to apply the remaining
        unmerged revisions
      
      Now this is entirely unexpected because 'tools\dist\make-deps-tarball.sh' was
      never modified on either branch #2 or #3.
      
      Traced this back to incorrect mergeinfo created in r1395146, a sync merge
      between #2 and #3 -- http://svn.apache.org/viewvc?view=revision&revision=1395146
      
      ### Recreating this merge (keeping it simple by doing a file merge to the
      offending make-deps-tarball.sh file, a merge to the root of the branch produces
      the same results):
      
      C:\SVN\src-trunk-4>svn info
      Path: .
      Working Copy Root Path: C:\SVN\src-trunk-4
      URL: https://svn.apache.org/repos/asf/subversion/branches/auto-props-sdc
      Repository Root: https://svn.apache.org/repos/asf
      Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68
      Revision: 1395145
      Node Kind: directory
      Schedule: normal
      Last Changed Author: pburba
      Last Changed Rev: 1394851
      Last Changed Date: 2012-10-05 18:43:45 -0400 (Fri, 05 Oct 2012)
      
      ### Note that the target has no mergeinfo history from
      ^/subversion/trunk/tools/dist/make-deps-tarball.sh of "1304315-1383997", which
      makes sense since 
      make-deps-tarball.sh was added to trunk in r1304315, added to branch #2 in a
      sync merge from trunk and subseqently updated again in a second sync merge from
      trunk (through r138997).
      
      
      C:\SVN\src-trunk-4>svn pg svn:mergeinfo -v tools\dist\make-deps-tarball.sh
      Properties on 'tools\dist\make-deps-tarball.sh':
        svn:mergeinfo
         
      /subversion/branches/1.5.x-r30215/tools/dist/construct-rolling-environment.sh:870312
         
      /subversion/branches/bdb-reverse-deltas/tools/dist/construct-rolling-environment.sh:872050-872529
         
      /subversion/branches/diff-callbacks3/tools/dist/construct-rolling-environment.sh:870059-870761
         
      /subversion/branches/dont-save-plaintext-passwords-by-default/tools/dist/construct-rolling-environment.sh:870728-871118
         
      /subversion/branches/double-delete/tools/dist/construct-rolling-environment.sh:870511-872970
         
      /subversion/branches/explore-wc/tools/dist/construct-rolling-environment.sh:875486,875493,875497,875507,875511,875514,875559,875580-875581,875584,875587,875
      611,875627,875647,875667-875668,875711-875712,875733-875734,875736,875744-875748,875751,875758,875782,875795-875796,875830,875836,875838,875842,875852,875855,87
      5864,875870,875873,875880,875885-875888,875890,875897-875898,875905,875907-875909,875935,875943-875944,875946,875979,875982-875983,875985-875986,875990,875997
         
      /subversion/branches/file-externals/tools/dist/construct-rolling-environment.sh:871779-873302
         
      /subversion/branches/fs-rep-sharing/tools/dist/construct-rolling-environment.sh:869036-873803
         
      /subversion/branches/fsfs-pack/tools/dist/construct-rolling-environment.sh:873717-874575
         
      /subversion/branches/gnome-keyring/tools/dist/construct-rolling-environment.sh:870558-871410
         
      /subversion/branches/http-protocol-v2/tools/dist/construct-rolling-environment.sh:874395-876041
         
      /subversion/branches/in-memory-cache/tools/dist/construct-rolling-environment.sh:869829-871452
         
      /subversion/branches/issue-2843-dev/tools/dist/construct-rolling-environment.sh:871432-874179
         
      /subversion/branches/issue-3000/tools/dist/construct-rolling-environment.sh:871713,871716-871719,871721-871726,871728,871734
         
      /subversion/branches/issue-3067-deleted-subtrees/tools/dist/construct-rolling-environment.sh:873375-874084
         
      /subversion/branches/issue-3148-dev/tools/dist/construct-rolling-environment.sh:875193-875204
         
      /subversion/branches/issue-3220-dev/tools/dist/construct-rolling-environment.sh:872210-872226
         
      /subversion/branches/issue-3242-dev/tools/dist/construct-rolling-environment.sh:879653-896436
         
      /subversion/branches/issue-3334-dirs/tools/dist/construct-rolling-environment.sh:875156-875867
         
      /subversion/branches/kwallet/tools/dist/construct-rolling-environment.sh:870785-871314
         
      /subversion/branches/log-g-performance/tools/dist/construct-rolling-environment.sh:870941-871032
         
      /subversion/branches/merge-skips-obstructions/tools/dist/construct-rolling-environment.sh:874525-874615
         
      /subversion/branches/ra_serf-digest-authn/tools/dist/construct-rolling-environment.sh:875693-876404
         
      /subversion/branches/reintegrate-improvements/tools/dist/construct-rolling-environment.sh:873853-874164
         
      /subversion/branches/subtree-mergeinfo/tools/dist/construct-rolling-environment.sh:876734-878766
         
      /subversion/branches/svn-mergeinfo-enhancements/tools/dist/construct-rolling-environment.sh:870119-870195,870197-870288
         
      /subversion/branches/svn-patch-improvements/tools/dist/construct-rolling-environment.sh:918519-934609
         
      /subversion/branches/svnpatch-diff/tools/dist/construct-rolling-environment.sh:865738-876477
         
      /subversion/branches/svnraisetc/tools/dist/construct-rolling-environment.sh:874709-875149
         
      /subversion/branches/svnserve-logging/tools/dist/construct-rolling-environment.sh:869828-870893
         
      /subversion/branches/tc-issue-3334/tools/dist/construct-rolling-environment.sh:874697-874773
         
      /subversion/branches/tc-merge-notify/tools/dist/construct-rolling-environment.sh:874017-874062
         
      /subversion/branches/tc-resolve/tools/dist/construct-rolling-environment.sh:874191-874239
         
      /subversion/branches/tc_url_rev/tools/dist/construct-rolling-environment.sh:874351-874483
         
      /subversion/branches/tree-conflicts/tools/dist/construct-rolling-environment.sh:868291-873154
         
      /subversion/branches/tree-conflicts-notify/tools/dist/construct-rolling-environment.sh:873926-874008
          /subversion/trunk/tools/dist/make-deps-tarball.sh:1304315-1383997
      
      ### Note the diff of the range we are about to merge:
      
      C:\SVN\src-trunk-4>svn diff -r1389501:1395088
      ^^/subversion/branches/inheritable-props/tools/dist/make-deps-tarball.sh
      Index: make-deps-tarball.sh
      ===================================================================
      --- make-deps-tarball.sh        (revision 1389501)
      +++ make-deps-tarball.sh        (revision 1395088)
      
      Property changes on: make-deps-tarball.sh
      ___________________________________________________________________
      Modified: svn:mergeinfo
         Merged /subversion/trunk/tools/dist/make-deps-tarball.sh:r1383998-1394910
         Merged
      /subversion/branches/10Gb/tools/dist/make-deps-tarball.sh:r1388394,1388636,1388639,1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388810,138
      8816,1389044,1389276,1389289,1389662,1389867,1390017,1390216,1390407
      
      
      ### But when we perform a merge to apply the above diff, a valid chunk of the
      mergeinfo from trunk is removed:
      
      C:\SVN\src-trunk-4>svn merge -r1389501:1395088
      ^^/subversion/branches/inheritable-props/tools/dist/make-deps-tarball.sh
      tools\dist\make-deps-tarball.sh
      --- Merging r1389502 through r1395088 into 'tools\dist\make-deps-tarball.sh':
      UU   tools\dist\make-deps-tarball.sh
      --- Recording mergeinfo for merge of r1389502 through r1395088 into
      'tools\dist\make-deps-tarball.sh':
       G   tools\dist\make-deps-tarball.sh
      
      C:\SVN\src-trunk-4>svn diff
      Index: tools/dist/make-deps-tarball.sh
      ===================================================================
      --- tools/dist/make-deps-tarball.sh     (revision 1395145)
      +++ tools/dist/make-deps-tarball.sh     (working copy)
      
      Property changes on: tools/dist/make-deps-tarball.sh
      ___________________________________________________________________
      Modified: svn:mergeinfo
         Reverse-merged /subversion/trunk/tools/dist/make-deps-tarball.sh:r1304315-1305659
         Merged
      /subversion/branches/inheritable-props/tools/dist/make-deps-tarball.sh:r1389502-1395088
         Merged
      /subversion/branches/10Gb/tools/dist/make-deps-tarball.sh:r1388394,1388636,1388639,1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388810,138
      8816,1389044,1389276,1389289,1389662,1389867,1390017,1390216,1390407
         Merged /subversion/trunk/tools/dist/make-deps-tarball.sh:r1383998-1394910
      
      C:\SVN\src-trunk-4>svn pg svn:mergeinfo -v tools\dist\make-deps-tarball.sh
      Properties on 'tools\dist\make-deps-tarball.sh':
        svn:mergeinfo
         
      /subversion/branches/1.5.x-r30215/tools/dist/construct-rolling-environment.sh:870312
         
      /subversion/branches/10Gb/tools/dist/make-deps-tarball.sh:1388394,1388636,1388639,1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388810,1388816,13
      89044,1389276,1389289,1389662,1389867,1390017,1390216,1390407
         
      /subversion/branches/bdb-reverse-deltas/tools/dist/construct-rolling-environment.sh:872050-872529
         
      /subversion/branches/diff-callbacks3/tools/dist/construct-rolling-environment.sh:870059-870761
         
      /subversion/branches/dont-save-plaintext-passwords-by-default/tools/dist/construct-rolling-environment.sh:870728-871118
         
      /subversion/branches/double-delete/tools/dist/construct-rolling-environment.sh:870511-872970
         
      /subversion/branches/explore-wc/tools/dist/construct-rolling-environment.sh:875486,875493,875497,875507,875511,875514,875559,875580-875581,875584,875587,875
      611,875627,875647,875667-875668,875711-875712,875733-875734,875736,875744-875748,875751,875758,875782,875795-875796,875830,875836,875838,875842,875852,875855,87
      5864,875870,875873,875880,875885-875888,875890,875897-875898,875905,875907-875909,875935,875943-875944,875946,875979,875982-875983,875985-875986,875990,875997
         
      /subversion/branches/file-externals/tools/dist/construct-rolling-environment.sh:871779-873302
         
      /subversion/branches/fs-rep-sharing/tools/dist/construct-rolling-environment.sh:869036-873803
         
      /subversion/branches/fsfs-pack/tools/dist/construct-rolling-environment.sh:873717-874575
         
      /subversion/branches/gnome-keyring/tools/dist/construct-rolling-environment.sh:870558-871410
         
      /subversion/branches/http-protocol-v2/tools/dist/construct-rolling-environment.sh:874395-876041
         
      /subversion/branches/in-memory-cache/tools/dist/construct-rolling-environment.sh:869829-871452
         
      /subversion/branches/inheritable-props/tools/dist/make-deps-tarball.sh:1389502-1395088
         
      /subversion/branches/issue-2843-dev/tools/dist/construct-rolling-environment.sh:871432-874179
         
      /subversion/branches/issue-3000/tools/dist/construct-rolling-environment.sh:871713,871716-871719,871721-871726,871728,871734
         
      /subversion/branches/issue-3067-deleted-subtrees/tools/dist/construct-rolling-environment.sh:873375-874084
         
      /subversion/branches/issue-3148-dev/tools/dist/construct-rolling-environment.sh:875193-875204
         
      /subversion/branches/issue-3220-dev/tools/dist/construct-rolling-environment.sh:872210-872226
         
      /subversion/branches/issue-3242-dev/tools/dist/construct-rolling-environment.sh:879653-896436
         
      /subversion/branches/issue-3334-dirs/tools/dist/construct-rolling-environment.sh:875156-875867
         
      /subversion/branches/kwallet/tools/dist/construct-rolling-environment.sh:870785-871314
         
      /subversion/branches/log-g-performance/tools/dist/construct-rolling-environment.sh:870941-871032
         
      /subversion/branches/merge-skips-obstructions/tools/dist/construct-rolling-environment.sh:874525-874615
         
      /subversion/branches/ra_serf-digest-authn/tools/dist/construct-rolling-environment.sh:875693-876404
         
      /subversion/branches/reintegrate-improvements/tools/dist/construct-rolling-environment.sh:873853-874164
         
      /subversion/branches/subtree-mergeinfo/tools/dist/construct-rolling-environment.sh:876734-878766
         
      /subversion/branches/svn-mergeinfo-enhancements/tools/dist/construct-rolling-environment.sh:870119-870195,870197-870288
         
      /subversion/branches/svn-patch-improvements/tools/dist/construct-rolling-environment.sh:918519-934609
         
      /subversion/branches/svnpatch-diff/tools/dist/construct-rolling-environment.sh:865738-876477
         
      /subversion/branches/svnraisetc/tools/dist/construct-rolling-environment.sh:874709-875149
         
      /subversion/branches/svnserve-logging/tools/dist/construct-rolling-environment.sh:869828-870893
         
      /subversion/branches/tc-issue-3334/tools/dist/construct-rolling-environment.sh:874697-874773
         
      /subversion/branches/tc-merge-notify/tools/dist/construct-rolling-environment.sh:874017-874062
         
      /subversion/branches/tc-resolve/tools/dist/construct-rolling-environment.sh:874191-874239
         
      /subversion/branches/tc_url_rev/tools/dist/construct-rolling-environment.sh:874351-874483
         
      /subversion/branches/tree-conflicts/tools/dist/construct-rolling-environment.sh:868291-873154
         
      /subversion/branches/tree-conflicts-notify/tools/dist/construct-rolling-environment.sh:873926-874008
          /subversion/trunk/tools/dist/make-deps-tarball.sh:1305660-1394910
                                                            ^^^^^^^^^^^^^^^
                                                What happened to r1304315-1305659?
      
      
      This is a problem because subsequent sync merges from trunk will try to merge
      this missing block resulting in spurious conflicts.
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            pburba Paul Burba
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: