git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH/RFC 2/2] git-svn: Don't allow missing commit parent to stop git-svn

From
Michael Olson <mwolson@gnu.org>
Date
May 19, 2010, 21:19 UTC
Message-ID
<AANLkTikbPaqM6ZacuRzCV0hi2LuWbPxFkwkTk_CUi5x7@mail.gmail.com>
In-Reply-To
<AANLkTinGV0UpqcXghlxmEqsjds2Up8fZkZ7AQArPr0N2@mail.gmail.com>
On Wed, May 19, 2010 at 2:17 PM, Michael Olson <mwolson@gnu.org> wrote:
Show 231 quoted lines
> On Tue, May 4, 2010 at 4:16 PM, Eric Wong <normalperson@yhbt.net> wrote:
>> I'm using SVN 1.5.1 and getting the following error from
>> t9151-svn-mergeinfo.sh (GIT_TEST_OPTS='-i -v'):
>>
>> (I haven't had many chances to look into this)
>>
>> *** t9151-svn-mergeinfo.sh ***
>> Initialized empty Git repository in /home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/.git/
>> * expecting success:
>>        svnadmin load -q '/home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo'        < '/home/ew/git-core/t/t9151/svn-mergeinfo.dump' &&
>>        git svn init --minimize-url -R svnmerge           --rewrite-root=http://svn.example.org           -T trunk -b branches 'file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo' &&
>>        git svn fetch --all
>>
>> r1 = 7ed7a8721885457b4b334110ca70ed04c4f8166a (refs/remotes/trunk)
>>        A       Makefile
>> r2 = 2d5fcce57cec73616f628fbaed5a49ef3d0e42de (refs/remotes/trunk)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/left, 1
>> Found branch parent: (refs/remotes/left) 7ed7a8721885457b4b334110ca70ed04c4f8166a
>> Following parent with do_switch
>>        A       Makefile
>> Successfully followed parent
>> r3 = f9ab6c8a604f40729e9b681bb3a1e867f9fa3ae8 (refs/remotes/left)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/right, 1
>> Found branch parent: (refs/remotes/right) 7ed7a8721885457b4b334110ca70ed04c4f8166a
>> Following parent with do_switch
>>        A       Makefile
>> Successfully followed parent
>> r4 = ddaeba46f3443446ad10c8e9f9708015508a3b28 (refs/remotes/right)
>>        M       Makefile
>> r5 = aec3f7b969e8f39a07d95041e1a0fa1084a62636 (refs/remotes/left)
>>        M       Makefile
>> r6 = 4e8f83f1ab23aef5373017e90af34f1819af8cab (refs/remotes/right)
>>        M       Makefile
>> r7 = 6bc3353f7fcec0c37010a59b688fa9d2584a744d (refs/remotes/left)
>>        M       Makefile
>> r8 = 3126dfd1119e03e412157f726d08c90a3fd4d7d4 (refs/remotes/left)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/left => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/left-sub, 3
>> Found branch parent: (refs/remotes/left-sub) f9ab6c8a604f40729e9b681bb3a1e867f9fa3ae8
>> Following parent with do_switch
>>        M       Makefile
>> Successfully followed parent
>> r9 = 577c6d95762177126ca3068518ff8b75fcf0c25e (refs/remotes/left-sub)
>>        A       README
>> r10 = 0f51792c59119f80d15583143eecc11a609f7f4b (refs/remotes/left-sub)
>>        M       Makefile
>> Found merge parent (svn:mergeinfo prop): 3126dfd1119e03e412157f726d08c90a3fd4d7d4
>> r11 = 684711c1a28ba8ad47b8dbcc1fae523e6d7513a6 (refs/remotes/trunk)
>>        A       zlonk
>> r12 = 48e21141201f46c911875b76b5656d8baac09a66 (refs/remotes/left)
>>        A       bang
>> r13 = 2d65500a924079bcf2a63be861289fc72bc3e87f (refs/remotes/right)
>>        A       bang
>>        M       Makefile
>> W:svn cherry-pick ignored (/branches/right:6-13) - missing 1 commit(s) (eg ddaeba46f3443446ad10c8e9f9708015508a3b28)
>> r14 = 963722fb11bb2d08a6acd03123060441585c7d97 (refs/remotes/trunk)
>> Found merge parent (svn:mergeinfo prop): 2d65500a924079bcf2a63be861289fc72bc3e87f
>> r15 = 7a0288891e49f8f764fafb9c51e0da446284f6e3 (refs/remotes/trunk)
>>        A       urkkk
>> r16 = acd76c6201c8a7f1ba7539daebe82128902deb28 (refs/remotes/right)
>>        A       vronk
>> r17 = 3d987e350cb0b84c1a962f28322075148a4769f9 (refs/remotes/trunk)
>>        A       bang
>>        A       urkkk
>>        M       Makefile
>> Found merge parent (svn:mergeinfo prop): acd76c6201c8a7f1ba7539daebe82128902deb28
>> r18 = 33a71c4853e3bc75096416afb6b6a3f84317e11f (refs/remotes/left-sub)
>>        A       wham_eth
>> r19 = c18b93e7676efb39156e30479f389f162e075937 (refs/remotes/left-sub)
>>        A       glurpp
>> r20 = d3a5e11772cce14223736862eaae254c6361de52 (refs/remotes/left)
>>        A       wham_eth
>> W:svn cherry-pick ignored (/branches/left-sub:19) - missing 6 commit(s) (eg 0f51792c59119f80d15583143eecc11a609f7f4b)
>> r21 = 26f066648b9fbb8d41953f51720855ea7b504643 (refs/remotes/left)
>>        A       bang
>>        A       urkkk
>>        M       Makefile
>>        A       README
>> Found merge parent (svn:mergeinfo prop): c18b93e7676efb39156e30479f389f162e075937
>> r22 = 873f392f3b5b995738db38ddb497e4133a1eabd6 (refs/remotes/left)
>>        A       urkkk
>>        A       glurpp
>>        A       wham_eth
>>        A       README
>>        A       zlonk
>> Found merge parent (svn:mergeinfo prop): 873f392f3b5b995738db38ddb497e4133a1eabd6
>> r23 = 10f41d438deef69896cd202a8dba696fccb1fc16 (refs/remotes/trunk)
>> r24 = 8d72d496d3fd4fe5f56c4a458bb6b6bce8074ac3 (refs/remotes/trunk)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/b1, 24
>> Found branch parent: (refs/remotes/b1) 8d72d496d3fd4fe5f56c4a458bb6b6bce8074ac3
>> Following parent with do_switch
>> Successfully followed parent
>> r25 = 9583bc1ca96e396c2e8a6afbe0d7677c952e76f9 (refs/remotes/b1)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/b2, 25
>> Found branch parent: (refs/remotes/b2) 8d72d496d3fd4fe5f56c4a458bb6b6bce8074ac3
>> Following parent with do_switch
>> Successfully followed parent
>> r26 = b956cd3ea8808cb0732e51412dec60ce5d4c66de (refs/remotes/b2)
>>        A       b2file
>> r27 = 689fa6c27d1d57acd4f5e2ed3b78bfd3818cfa48 (refs/remotes/b2)
>>        A       b1file
>> r28 = c65e9d2dd0f29cc8756c66041aafca5ae7b40c87 (refs/remotes/b1)
>>        A       b1file
>> Found merge parent (svn:mergeinfo prop): c65e9d2dd0f29cc8756c66041aafca5ae7b40c87
>> r29 = 8a70eced3c8b9eb56742bb2b8182d3363ef65c9c (refs/remotes/trunk)
>>        A       trunkfile
>> r30 = 94dd10334175598f49a097035fcfba8563928048 (refs/remotes/trunk)
>>        A       b1file
>>        A       trunkfile
>> Found merge parent (svn:mergeinfo prop): c65e9d2dd0f29cc8756c66041aafca5ae7b40c87
>> W:svn cherry-pick ignored (/trunk:26-30) - missing 1 commit(s) (eg c65e9d2dd0f29cc8756c66041aafca5ae7b40c87)
>> r31 = 49faca9dc648191ba6b07f6b65f3373cc5a181e6 (refs/remotes/b2)
>>        A       b2file
>> Found merge parent (svn:mergeinfo prop): 49faca9dc648191ba6b07f6b65f3373cc5a181e6
>> r32 = 9e1737778e06d26dc2fb72c05db08520d6cd20af (refs/remotes/trunk)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/f1, 32
>> Found branch parent: (refs/remotes/f1) 9e1737778e06d26dc2fb72c05db08520d6cd20af
>> Following parent with do_switch
>>        A       f1file
>> Successfully followed parent
>> r33 = 72393572fd4bb0d02ef034f768738c9b1360ad86 (refs/remotes/f1)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/f2, 33
>> Found branch parent: (refs/remotes/f2) 9e1737778e06d26dc2fb72c05db08520d6cd20af
>> Following parent with do_switch
>>        A       f2file
>> Successfully followed parent
>> r34 = 600530ec4ff61c1bb60f7e9a1319390b9696ea89 (refs/remotes/f2)
>>        A       f1file
>>        A       f2file
>> Found merge parent (svn:mergeinfo prop): 72393572fd4bb0d02ef034f768738c9b1360ad86
>> Found merge parent (svn:mergeinfo prop): 600530ec4ff61c1bb60f7e9a1319390b9696ea89
>> r35 = 794650a0042fc4b45352798bd3d766ec71936859 (refs/remotes/trunk)
>>        A       subdir/cowboy
>> r36 = 71b29806ce50e7abcebc021bddd47ea9925b62d1 (refs/remotes/left)
>>        A       subdir/cowboy
>> Found merge parent (svn:mergeinfo prop): 71b29806ce50e7abcebc021bddd47ea9925b62d1
>> r37 = 595aa4a85d3687795a49eed9fd2774609e0bc0eb (refs/remotes/trunk)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk/subdir => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/partial, 37
>> Initializing parent: refs/remotes/partial@37
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/left/subdir => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk/subdir, 36
>> Initializing parent: refs/remotes/partial@36
>>        A       cowboy
>> r36 = 36ab2d3b9d077028fa3d659325ac8ca081e348bc (refs/remotes/partial@36)
>> Found branch parent: (refs/remotes/partial@37) 36ab2d3b9d077028fa3d659325ac8ca081e348bc
>> Following parent with do_switch
>> Successfully followed parent
>> r37 = 94ef88aa1ebfb64b5525f3aed8dd36d7ec63cecc (refs/remotes/partial@37)
>> Found branch parent: (refs/remotes/partial) 94ef88aa1ebfb64b5525f3aed8dd36d7ec63cecc
>> Following parent with do_switch
>> Successfully followed parent
>> r38 = 910f886650e45984540884fbce419222d5dbe772 (refs/remotes/partial)
>>        A       palindromes
>> r39 = fdb537791ee8ba532e49c3d5a34a30feeb87bd59 (refs/remotes/partial)
>>        A       subdir/palindromes
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/b1/subdir
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/b2/subdir
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/f1/subdir
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/f2/subdir
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/left/subdir
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/left-sub/subdir
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/right/subdir
>> W: Cannot find common ancestor between 595aa4a85d3687795a49eed9fd2774609e0bc0eb and fdb537791ee8ba532e49c3d5a34a30feeb87bd59. Ignoring merge info.
>> r40 = 5805f49f999decd809f915d18f383d07d1626d5b (refs/remotes/trunk)
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/tags/v1.0 => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/bugfix, 41
>> Initializing parent: refs/remotes/bugfix@41
>> Found possible branch point: file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk => file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/tags/v1.0, 40
>> Found branch parent: (refs/remotes/bugfix@41) 5805f49f999decd809f915d18f383d07d1626d5b
>> Following parent with do_switch
>> Successfully followed parent
>> r41 = 4b3d91b566f045ddd4c362a1767cb925b66081e4 (refs/remotes/bugfix@41)
>> Found branch parent: (refs/remotes/bugfix) 4b3d91b566f045ddd4c362a1767cb925b66081e4
>> Following parent with do_switch
>> Successfully followed parent
>> r42 = 472a447664d739c39bcf87d5ad3a96212508ba39 (refs/remotes/bugfix)
>>        M       subdir/palindromes
>> r43 = f6db7ed2ea491ff68fc056942fa988c29a384e47 (refs/remotes/bugfix)
>>        M       subdir/palindromes
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/branches/bugfix/subdir
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/tags/v1.0/subdir
>> W: Cannot find common ancestor between 5805f49f999decd809f915d18f383d07d1626d5b and fdb537791ee8ba532e49c3d5a34a30feeb87bd59. Ignoring merge info.
>> Couldn't find revmap for file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/tags/v1.0
>> Found merge parent (svn:mergeinfo prop): f6db7ed2ea491ff68fc056942fa988c29a384e47
>> r44 = 16ad9cdbb78d7f1daf1b223d9afc0d9459692ded (refs/remotes/trunk)
>> Checked out HEAD:
>>  file:///home/ew/git-core/t/trash directory.t9151-svn-mergeinfo/svnrepo/trunk r44
>> *   ok 1: load svn dump
>>
>> * expecting success:
>>        unmarked=$(git rev-list --parents --all --grep=Merge |
>>                grep -v " .* " | cut -f1 -d" ")
>>        [ -z "$unmarked" ]
>>
>> *   ok 2: all svn merges became git merge commits
>>
>> * expecting success:
>>        bad_cherries=$(git rev-list --parents --all --grep=Cherry |
>>                grep " .* " | cut -f1 -d" ")
>>        [ -z "$bad_cherries" ]
>>
>> *   ok 3: cherry picks did not become git merge commits
>>
>> * expecting success:
>>        bad_non_merges=$(git rev-list --parents --all --grep=non-merge |
>>                grep " .* " | cut -f1 -d" ")
>>        [ -z "$bad_non_merges" ]
>>
>> *   ok 4: svn non-merge merge commits did not become git merge commits
>>
>> * expecting success:
>>        before_commit=$(git rev-list --all --grep="trunk commit before merging trunk to b2")
>>        merge_commit=$(git rev-list --all --grep="Merge trunk to b2")
>>        not_reachable=$(git rev-list -1 $before_commit --not $merge_commit)
>>        [ -z "$not_reachable" ]
>>
>> * FAIL 5: commit made to merged branch is reachable from the merge
>>
>>                before_commit=$(git rev-list --all --grep="trunk commit before merging trunk to b2")
>>                merge_commit=$(git rev-list --all --grep="Merge trunk to b2")
>>                not_reachable=$(git rev-list -1 $before_commit --not $merge_commit)
>>                [ -z "$not_reachable" ]
>>
>> make: *** [t9151-svn-mergeinfo.sh] Error 1
>>
>> --
>> Eric Wong
>>
>
> I tried looking at it, but the situation is kind of odd.  Neither
> $before_commit nor $merge_commit appears in each others' git log
> output, so it would seem that the test ought to pass.  The rev-list
> command returns the revision ID of $before_commit, which causes the
> test to fail.

Never mind, I misread the description of the test, so it makes a little more sense now.

-- 
Michael Olson  |  http://mwolson.org/
Previous: Michael Olson
Message 12 of 12 in “git-svn: Don't allow missing commit parent to stop git-svn”
  1. 2/2 git-svn: Don't allow missing commit parent to stop git-svnMichael Olson, Apr 20, 2010
  2. Sam VilainApr 21, 2010
  3. Michael OlsonApr 21, 2010
  4. Sam VilainApr 21, 2010
  5. Michael OlsonApr 28, 2010
  6. Eric WongMay 3, 2010
  7. Michael J GruberMay 4, 2010
  8. Eric WongMay 4, 2010
  9. Sam VilainMay 4, 2010
  10. Eric WongMay 4, 2010
  11. Michael OlsonMay 19, 2010
  12. Michael OlsonMay 19, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.