{"thread":{"id":"17103","subject":"Re: Minimum required version of subversion for git-svn?","startedAt":"2009-01-09T10:11:27Z","lastAt":"2009-01-20T08:11:29Z","messageCount":8,"participants":["Eric Wong","Tom G. Christensen"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"293742","messageId":"496722CF.1060802@statsbiblioteket.dk","threadId":"17103","inReplyTo":null,"subject":"Minimum required version of subversion for git-svn?","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2009-01-09T10:11:27Z","receivedAt":"2009-01-09T10:11:27Z","isPatch":false,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"Hello,\n\nWith git 1.6.0.5 I was able to run git-svn with subversion 1.1.4 on\nRHEL4/i386 but with 1.6.0.6 and 1.6.1 the testsuite now fails in the new\ntest t9104.10:\n* FAIL 10: follow-parent is atomic\n\n                 (\n                         cd wc &&\n                         svn up &&\n                         svn mkdir stunk &&\n                         echo \"trunk stunk\" > stunk/readme &&\n                         svn add stunk/readme &&\n                         svn ci -m \"trunk stunk\" &&\n                         echo \"stunk like junk\" >> stunk/readme &&\n                         svn ci -m \"really stunk\" &&\n                         echo \"stink stank stunk\" >> stunk/readme &&\n                         svn ci -m \"even the grinch agrees\"\n                 ) &&\n                 svn copy -m \"stunk flunked\" \"$svnrepo\"/stunk\n\"$svnrepo\"/flunk &&\n                 { svn cp -m \"early stunk flunked too\" \\\n                         \"$svnrepo\"/stunk@17 \"$svnrepo\"/flunked ||\n                 svn cp -m \"early stunk flunked too\" \\\n                         -r17 \"$svnrepo\"/stunk \"$svnrepo\"/flunked; } &&\n                 git svn init --minimize-url -i stunk \"$svnrepo\"/stunk &&\n                 git svn fetch -i stunk &&\n                 git update-ref refs/remotes/flunk@18\nrefs/remotes/stunk~2 &&\n                 git update-ref -d refs/remotes/stunk &&\n                 git config --unset svn-remote.svn.fetch stunk &&\n                 mkdir -p \"$GIT_DIR\"/svn/flunk@18 &&\n                 rev_map=$(cd \"$GIT_DIR\"/svn/stunk && ls .rev_map*) &&\n                 dd if=\"$GIT_DIR\"/svn/stunk/$rev_map \\\n                    of=\"$GIT_DIR\"/svn/flunk@18/$rev_map bs=24 count=1 &&\n                 rm -rf \"$GIT_DIR\"/svn/stunk &&\n                 git svn init --minimize-url -i flunk \"$svnrepo\"/flunk &&\n                 git svn fetch -i flunk &&\n                 git svn init --minimize-url -i stunk \"$svnrepo\"/stunk &&\n                 git svn fetch -i stunk &&\n                 git svn init --minimize-url -i flunked\n\"$svnrepo\"/flunked &&\n                 git svn fetch -i flunked\n                 test \"`git rev-parse --verify refs/remotes/flunk@18`\" \\\n                    = \"`git rev-parse --verify refs/remotes/stunk`\" &&\n                 test \"`git rev-parse --verify refs/remotes/flunk~1`\" \\\n                    = \"`git rev-parse --verify refs/remotes/stunk`\" &&\n                 test \"`git rev-parse --verify refs/remotes/flunked~1`\" \\\n                    = \"`git rev-parse --verify refs/remotes/stunk~1`\"\n\n\nWith 1.6.1 I also see t9129.10-12 failing with subversion 1.1.4:\n* FAIL 10: ISO-8859-1 should match UTF-8 in svn\n\n                 (\n                         cd ISO-8859-1 &&\n                         compare_svn_head_with\n\"$TEST_DIRECTORY\"/t3900/1-UTF-8.txt\n                 )\n\n* FAIL 11: $H should match UTF-8 in svn\n\n                         (\n                                 cd $H &&\n                                 compare_svn_head_with\n\"$TEST_DIRECTORY\"/t3900/2-UTF-8.txt\n                         )\n\n* FAIL 12: $H should match UTF-8 in svn\n\n                         (\n                                 cd $H &&\n                                 compare_svn_head_with\n\"$TEST_DIRECTORY\"/t3900/2-UTF-8.txt\n                         )\n\n* failed 3 among 12 test(s)\nmake[2]: Leaving directory `/builddir/build/BUILD/git-1.6.1/t'\nmake[2]: *** [t9129-git-svn-i18n-commitencoding.sh] Error 1\n\nI see in git-svn.perl that only SVN::Core 1.1.0 is required. Is it still\nthe intention that git-svn should work with subversion 1.1.x?\n\nIf you're going to bump the minimum requirement I would ask that you\natleast keep 1.3.x as supported. This is the last release of subversion\nwhere RHEL3 can satisfy the dependencies out of the box and I've\nverified that the testsuite will pass with 1.3.2.\n\n-tgc\n"},{"id":"100042","messageId":"20090112010354.GB23377@yp-box.dyndns.org","threadId":"17103","inReplyTo":"496722CF.1060802@statsbiblioteket.dk","subject":"Re: Minimum required version of subversion for git-svn?","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-01-12T01:03:54Z","receivedAt":"2009-01-12T01:03:54Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"\"Tom G. Christensen\" <tgc@statsbiblioteket.dk> wrote:\n> Hello,\n>\n> With git 1.6.0.5 I was able to run git-svn with subversion 1.1.4 on\n> RHEL4/i386 but with 1.6.0.6 and 1.6.1 the testsuite now fails in the new\n> test t9104.10:\n\n...\n\n> With 1.6.1 I also see t9129.10-12 failing with subversion 1.1.4:\n> * FAIL 10: ISO-8859-1 should match UTF-8 in svn\n\n...\n\n> * failed 3 among 12 test(s)\n> make[2]: Leaving directory `/builddir/build/BUILD/git-1.6.1/t'\n> make[2]: *** [t9129-git-svn-i18n-commitencoding.sh] Error 1\n>\n> I see in git-svn.perl that only SVN::Core 1.1.0 is required. Is it still\n> the intention that git-svn should work with subversion 1.1.x?\n>\n> If you're going to bump the minimum requirement I would ask that you\n> atleast keep 1.3.x as supported. This is the last release of subversion\n> where RHEL3 can satisfy the dependencies out of the box and I've\n> verified that the testsuite will pass with 1.3.2.\n\nIt's still my intention that SVN 1.1.x is supported; but I haven't had\nthe chance to test those versions in a while.\n\nCan you rerun the tests that failed with \"sh -x t91...\" ?\n\nThanks.\n\n-- \nEric Wong\n"},{"id":"100079","messageId":"496AF964.1070208@statsbiblioteket.dk","threadId":"17103","inReplyTo":"20090112010354.GB23377@yp-box.dyndns.org","subject":"Re: Minimum required version of subversion for git-svn?","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2009-01-12T08:03:48Z","receivedAt":"2009-01-12T08:03:48Z","isPatch":false,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"Eric Wong wrote:\n> \"Tom G. Christensen\" <tgc@statsbiblioteket.dk> wrote:\n>> Hello,\n>>\n>> With git 1.6.0.5 I was able to run git-svn with subversion 1.1.4 on\n>> RHEL4/i386 but with 1.6.0.6 and 1.6.1 the testsuite now fails in the new\n>> test t9104.10:\n> \n> ...\n> \n>> With 1.6.1 I also see t9129.10-12 failing with subversion 1.1.4:\n>> * FAIL 10: ISO-8859-1 should match UTF-8 in svn\n> \n> ...\n> \n>> * failed 3 among 12 test(s)\n>> make[2]: Leaving directory `/builddir/build/BUILD/git-1.6.1/t'\n>> make[2]: *** [t9129-git-svn-i18n-commitencoding.sh] Error 1\n>>\n>> I see in git-svn.perl that only SVN::Core 1.1.0 is required. Is it still\n>> the intention that git-svn should work with subversion 1.1.x?\n>>\n>> If you're going to bump the minimum requirement I would ask that you\n>> atleast keep 1.3.x as supported. This is the last release of subversion\n>> where RHEL3 can satisfy the dependencies out of the box and I've\n>> verified that the testsuite will pass with 1.3.2.\n> \n> It's still my intention that SVN 1.1.x is supported; but I haven't had\n> the chance to test those versions in a while.\n> \n> Can you rerun the tests that failed with \"sh -x t91...\" ?\n> \nI've run the tests from 1.6.1 with -v, sh -x and sh -x + -v and dumped \nthe results at http://jupiterrise.com/tmp\n\nYou'll find results from one more test (t9106) which I didn't mention \nand which is also giving me problems but only with rhel4/x86_64 and svn \n1.1.4. It should be noted that this test has never worked for me with \nthis config.\n\n-tgc\n"},{"id":"100819","messageId":"20090117105811.GB15801@dcvr.yhbt.net","threadId":"17103","inReplyTo":"496AF964.1070208@statsbiblioteket.dk","subject":"Re: Minimum required version of subversion for git-svn?","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-01-17T10:58:11Z","receivedAt":"2009-01-17T10:58:11Z","isPatch":false,"sender":{"key":"e@80x24.org","avatar":null},"body":"\"Tom G. Christensen\" <tgc@statsbiblioteket.dk> wrote:\n> Eric Wong wrote:\n>> \"Tom G. Christensen\" <tgc@statsbiblioteket.dk> wrote:\n>>> Hello,\n>>>\n>>> With git 1.6.0.5 I was able to run git-svn with subversion 1.1.4 on\n>>> RHEL4/i386 but with 1.6.0.6 and 1.6.1 the testsuite now fails in the new\n>>> test t9104.10:\n>>\n>> ...\n>>\n>>> With 1.6.1 I also see t9129.10-12 failing with subversion 1.1.4:\n>>> * FAIL 10: ISO-8859-1 should match UTF-8 in svn\n>>\n>> ...\n>>\n>>> * failed 3 among 12 test(s)\n>>> make[2]: Leaving directory `/builddir/build/BUILD/git-1.6.1/t'\n>>> make[2]: *** [t9129-git-svn-i18n-commitencoding.sh] Error 1\n>>>\n>>> I see in git-svn.perl that only SVN::Core 1.1.0 is required. Is it still\n>>> the intention that git-svn should work with subversion 1.1.x?\n>>>\n>>> If you're going to bump the minimum requirement I would ask that you\n>>> atleast keep 1.3.x as supported. This is the last release of subversion\n>>> where RHEL3 can satisfy the dependencies out of the box and I've\n>>> verified that the testsuite will pass with 1.3.2.\n>>\n>> It's still my intention that SVN 1.1.x is supported; but I haven't had\n>> the chance to test those versions in a while.\n>>\n>> Can you rerun the tests that failed with \"sh -x t91...\" ?\n>>\n> I've run the tests from 1.6.1 with -v, sh -x and sh -x + -v and dumped  \n> the results at http://jupiterrise.com/tmp\n>\n> You'll find results from one more test (t9106) which I didn't mention  \n> and which is also giving me problems but only with rhel4/x86_64 and svn  \n> 1.1.4. It should be noted that this test has never worked for me with  \n> this config.\n\nThanks, I'll try to setup an environment that lets me test older\nSVN builds over the weekend.\n\n-- \nEric Wong\n"},{"id":"101074","messageId":"20090119004556.GA25038@dcvr.yhbt.net","threadId":"17103","inReplyTo":"20090117105811.GB15801@dcvr.yhbt.net","subject":"[PATCH] git-svn: fix SVN 1.1.x compatibility","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-01-19T00:45:57Z","receivedAt":"2009-01-19T00:45:57Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"The get_log() function in the Perl SVN API introduced the limit\nparameter in 1.2.0.  However, this got discarded in our SVN::Ra\ncompatibility layer when used with SVN 1.1.x.  We now emulate\nthe limit functionality in older SVN versions by preventing the\noriginal callback from being called if the given limit has been\nreached.  This emulation is less bandwidth efficient, but SVN\n1.1.x is becoming rarer now.\n\nAdditionally, the --limit parameter in svn(1) uses the\naforementioned get_log() functionality change in SVN 1.2.x.\nt9129 no longer depends on --limit to work and instead uses\nPerl to parse out the commit message.\n\nThanks to Tom G. Christensen for the bug report.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\n---\n\n Hi Tom, this should fix things for you.  I've tested this in an old\n Debian Sarge chroot running SVN 1.1.4\n\n git-svn.perl                           |   15 ++++++++++++++-\n t/t9129-git-svn-i18n-commitencoding.sh |   13 +++++++++++--\n 2 files changed, 25 insertions(+), 3 deletions(-)\n\ndiff --git a/git-svn.perl b/git-svn.perl\nindex e3e125b..71b8ef4 100755\n--- a/git-svn.perl\n+++ b/git-svn.perl\n@@ -4130,10 +4130,23 @@ sub DESTROY {\n \t# do not call the real DESTROY since we store ourselves in $RA\n }\n \n+# get_log(paths, start, end, limit,\n+#         discover_changed_paths, strict_node_history, receiver)\n sub get_log {\n \tmy ($self, @args) = @_;\n \tmy $pool = SVN::Pool->new;\n-\tsplice(@args, 3, 1) if ($SVN::Core::VERSION le '1.2.0');\n+\n+\t# the limit parameter was not supported in SVN 1.1.x, so we\n+\t# drop it.  Therefore, the receiver callback passed to it\n+\t# is made aware of this limitation by being wrapped if\n+\t# the limit passed to is being wrapped.\n+\tif ($SVN::Core::VERSION le '1.2.0') {\n+\t\tmy $limit = splice(@args, 3, 1);\n+\t\tif ($limit > 0) {\n+\t\t\tmy $receiver = pop @args;\n+\t\t\tpush(@args, sub { &$receiver(@_) if (--$limit >= 0) });\n+\t\t}\n+\t}\n \tmy $ret = $self->SUPER::get_log(@args, $pool);\n \t$pool->clear;\n \t$ret;\ndiff --git a/t/t9129-git-svn-i18n-commitencoding.sh b/t/t9129-git-svn-i18n-commitencoding.sh\nindex 8a9dde4..9c7b1ad 100755\n--- a/t/t9129-git-svn-i18n-commitencoding.sh\n+++ b/t/t9129-git-svn-i18n-commitencoding.sh\n@@ -15,8 +15,17 @@ compare_git_head_with () {\n }\n \n compare_svn_head_with () {\n-\tLC_ALL=en_US.UTF-8 svn log --limit 1 `git svn info --url` | \\\n-\t\tsed -e 1,3d -e \"/^-\\{1,\\}\\$/d\" >current &&\n+\t# extract just the log message and strip out committer info.\n+\t# don't use --limit here since svn 1.1.x doesn't have it,\n+\tLC_ALL=en_US.UTF-8 svn log `git svn info --url` | perl -w -e '\n+\t\tuse bytes;\n+\t\t$/ = (\"-\"x72) . \"\\n\";\n+\t\tmy @x = <STDIN>;\n+\t\t@x = split(/\\n/, $x[1]);\n+\t\tsplice(@x, 0, 2);\n+\t\t$x[-1] = \"\";\n+\t\tprint join(\"\\n\", @x);\n+\t' > current &&\n \ttest_cmp current \"$1\"\n }\n \n-- \nEric Wong\n"},{"id":"101116","messageId":"4974450D.4090608@statsbiblioteket.dk","threadId":"17103","inReplyTo":"20090119004556.GA25038@dcvr.yhbt.net","subject":"Re: [PATCH] git-svn: fix SVN 1.1.x compatibility","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2009-01-19T09:17:01Z","receivedAt":"2009-01-19T09:17:01Z","isPatch":true,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"Eric Wong wrote:\n> The get_log() function in the Perl SVN API introduced the limit\n> parameter in 1.2.0.  However, this got discarded in our SVN::Ra\n> compatibility layer when used with SVN 1.1.x.  We now emulate\n> the limit functionality in older SVN versions by preventing the\n> original callback from being called if the given limit has been\n> reached.  This emulation is less bandwidth efficient, but SVN\n> 1.1.x is becoming rarer now.\n> \n> Additionally, the --limit parameter in svn(1) uses the\n> aforementioned get_log() functionality change in SVN 1.2.x.\n> t9129 no longer depends on --limit to work and instead uses\n> Perl to parse out the commit message.\n> \n> Thanks to Tom G. Christensen for the bug report.\n> \n> Signed-off-by: Eric Wong <normalperson@yhbt.net>\n\nI applied this to 1.6.1 and the testsuite now passes using SVN 1.1.4 on \nRHEL 4/i386 (t9106 still fails on RHEL 4/x86_64).\n\n-tgc\n"},{"id":"101200","messageId":"20090120012301.GA30236@dcvr.yhbt.net","threadId":"17103","inReplyTo":"4974450D.4090608@statsbiblioteket.dk","subject":"Re: [PATCH] git-svn: fix SVN 1.1.x compatibility","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2009-01-20T01:23:01Z","receivedAt":"2009-01-20T01:23:01Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"\"Tom G. Christensen\" <tgc@statsbiblioteket.dk> wrote:\n> Eric Wong wrote:\n>> The get_log() function in the Perl SVN API introduced the limit\n>> parameter in 1.2.0.  However, this got discarded in our SVN::Ra\n>> compatibility layer when used with SVN 1.1.x.  We now emulate\n>> the limit functionality in older SVN versions by preventing the\n>> original callback from being called if the given limit has been\n>> reached.  This emulation is less bandwidth efficient, but SVN\n>> 1.1.x is becoming rarer now.\n>>\n>> Additionally, the --limit parameter in svn(1) uses the\n>> aforementioned get_log() functionality change in SVN 1.2.x.\n>> t9129 no longer depends on --limit to work and instead uses\n>> Perl to parse out the commit message.\n>>\n>> Thanks to Tom G. Christensen for the bug report.\n>>\n>> Signed-off-by: Eric Wong <normalperson@yhbt.net>\n>\n> I applied this to 1.6.1 and the testsuite now passes using SVN 1.1.4 on  \n> RHEL 4/i386 (t9106 still fails on RHEL 4/x86_64).\n\nAny chance I could have access to that RHEL4/x86_64 environment?  I'll\ntry to work around bugs in older SVN as best I can, but can't guarantee\nanything.\n\n-- \nEric Wong\n"},{"id":"101231","messageId":"49758731.4010305@statsbiblioteket.dk","threadId":"17103","inReplyTo":"20090120012301.GA30236@dcvr.yhbt.net","subject":"Re: [PATCH] git-svn: fix SVN 1.1.x compatibility","fromName":"Tom G. Christensen","fromEmail":"tgc@statsbiblioteket.dk","sentAt":"2009-01-20T08:11:29Z","receivedAt":"2009-01-20T08:11:29Z","isPatch":true,"sender":{"key":"tgc@statsbiblioteket.dk","avatar":"https://avatars.githubusercontent.com/u/912180?v=4"},"body":"Eric Wong wrote:\n> \"Tom G. Christensen\" <tgc@statsbiblioteket.dk> wrote:\n>> Eric Wong wrote:\n>>> The get_log() function in the Perl SVN API introduced the limit\n>>> parameter in 1.2.0.  However, this got discarded in our SVN::Ra\n>>> compatibility layer when used with SVN 1.1.x.  We now emulate\n>>> the limit functionality in older SVN versions by preventing the\n>>> original callback from being called if the given limit has been\n>>> reached.  This emulation is less bandwidth efficient, but SVN\n>>> 1.1.x is becoming rarer now.\n>>>\n>>> Additionally, the --limit parameter in svn(1) uses the\n>>> aforementioned get_log() functionality change in SVN 1.2.x.\n>>> t9129 no longer depends on --limit to work and instead uses\n>>> Perl to parse out the commit message.\n>>>\n>>> Thanks to Tom G. Christensen for the bug report.\n>>>\n>>> Signed-off-by: Eric Wong <normalperson@yhbt.net>\n>> I applied this to 1.6.1 and the testsuite now passes using SVN 1.1.4 on  \n>> RHEL 4/i386 (t9106 still fails on RHEL 4/x86_64).\n> \n> Any chance I could have access to that RHEL4/x86_64 environment? \n\nUnfortunately I can't offer that.\nIt is really just a mock buildroot, and it should be possible to \nrecreate the problem with CentOS 4/x86_64.\nOn Fedora Linux the default mock install has a suitable config (epel-4).\nIf you're not a Fedora/CentOS person then I could possibly prepare a \nVMware image for you.\n\n> I'll\n> try to work around bugs in older SVN as best I can, but can't guarantee\n> anything.\n> \nI don't expect more than that.\n\n-tgc\n"}]}