{"thread":{"id":"26898","subject":"195b7ca6 breaks t9010 at current master","startedAt":"2011-03-29T02:08:36Z","lastAt":"2011-03-31T21:14:43Z","messageCount":7,"participants":["Øyvind A. Holm","Jonathan Nieder","Brian Gernhardt","Brandon Casey"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"164521","messageId":"AANLkTik0CNXY9bKGOa9Xmai_OPQgExfLsFs1yN2pCVr8@mail.gmail.com","threadId":"26898","inReplyTo":null,"subject":"195b7ca6 breaks t9010 at current master","fromName":"Øyvind A. Holm","fromEmail":"sunny@sunbase.org","sentAt":"2011-03-29T02:08:36Z","receivedAt":"2011-03-29T02:08:36Z","isPatch":false,"sender":{"key":"sunny@sunbase.org","avatar":"https://avatars.githubusercontent.com/u/113445?v=4"},"body":"When running \"make test\" at current master (v1.7.4.2-406-gbe919d5),\nt9010-svn-fe.sh fails. Bisecting shows that 195b7ca6 (\"vcs-svn: handle\nlog message with embedded NUL\") breaks the test. The test runs fine\nafter 195b7ca6 is reverted. These tests succeeds without the commit, but\nfails when it’s applied:\n\n  - empty properties\n  - author name and commit message\n  - unsupported properties are ignored\n  - directory with files\n  - NUL in property value\n  - change file mode and reiterate content\n  - property deltas supported\n  - properties on /\n  - deltas for typechange\n  - t9135/svn.dump\n\nIn addition, this test introduced in 195b7ca6 fails:\n\n  - NUL in log message, file content, and property name\n\nTested on four different Linux systems (two with the same Ubuntu\nversion), all with the same result. Tested with default Makefile and\nalso \"make configure\".\n\nSystem info:\n\n  Ubuntu 10.04.2 LTS\n    gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3\n    svn, version 1.6.6 (r40053)\n\n  DebianEdu/Skolelinux (terra) (Based on Debian release 5.0.8, lenny)\n    gcc (Debian 4.3.2-1.1) 4.3.2\n    svn, version 1.5.1 (r32289)\n\n  Debian GNU/Linux 5.0.8 (lenny)\n    gcc (Debian 4.3.2-1.1) 4.3.2\n    svn, version 1.5.1 (r32289)\n\nOutput from t9010-svn-fe.sh at current master (v1.7.4.2-406-gbe919d5):\n\n  ok 93 - --force sends cover letter template anyway\n  # passed all 93 test(s)\n  1..93\n  *** t9010-svn-fe.sh ***\n  ok 1 - empty dump\n  ok 2 - v4 dumps not supported\n  not ok 3 - empty revision # TODO known breakage\n  not ok - 4 empty properties\n  #\n  #               reinit_git &&\n  #               printf \"rev <nobody, nobody@local>: %s\n  #       \" \"\" \"\" >expect &&\n  #               cat >emptyprop.dump <<-\\EOF &&\n  #               SVN-fs-dump-format-version: 3\n  #\n  #               Revision-number: 1\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Revision-number: 2\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #               EOF\n  #               test-svn-fe emptyprop.dump >stream &&\n  #               git fast-import <stream &&\n  #               git log -p --format=\"rev <%an, %ae>: %s\" HEAD >actual &&\n  #               test_cmp expect actual\n  #\n  not ok - 5 author name and commit message\n  #\n  #               reinit_git &&\n  #               echo \"<author@example.com,\nauthor@example.com@local>\" >expect.author &&\n  #               cat >message <<-\\EOF &&\n  #               A concise summary of the change\n  #\n  #               A detailed description of the change, why it is needed, what\n  #               was broken and why applying this is the best course of action.\n  #\n  #               * file.c\n  #                   Details pertaining to an individual file.\n  #               EOF\n  #               {\n  #                       properties \\\n  #                               svn:author author@example.com \\\n  #                               svn:log \"$(cat message)\" &&\n  #                       echo PROPS-END\n  #               } >props &&\n  #               {\n  #                       echo \"SVN-fs-dump-format-version: 3\" &&\n  #                       echo &&\n  #                       echo \"Revision-number: 1\" &&\n  #                       echo Prop-content-length: $(wc -c <props) &&\n  #                       echo Content-length: $(wc -c <props) &&\n  #                       echo &&\n  #                       cat props\n  #               } >log.dump &&\n  #               test-svn-fe log.dump >stream &&\n  #               git fast-import <stream &&\n  #               git log -p --format=\"%B\" HEAD >actual.log &&\n  #               git log --format=\"<%an, %ae>\" >actual.author &&\n  #               test_cmp message actual.log &&\n  #               test_cmp expect.author actual.author\n  #\n  not ok - 6 unsupported properties are ignored\n  #\n  #               reinit_git &&\n  #               echo author >expect &&\n  #               cat >extraprop.dump <<-\\EOF &&\n  #               SVN-fs-dump-format-version: 3\n  #\n  #               Revision-number: 1\n  #               Prop-content-length: 56\n  #               Content-length: 56\n  #\n  #               K 8\n  #               nonsense\n  #               V 1\n  #               y\n  #               K 10\n  #               svn:author\n  #               V 6\n  #               author\n  #               PROPS-END\n  #               EOF\n  #               test-svn-fe extraprop.dump >stream &&\n  #               git fast-import <stream &&\n  #               git log -p --format=%an HEAD >actual &&\n  #               test_cmp expect actual\n  #\n  not ok 7 - timestamp and empty file # TODO known breakage\n  not ok - 8 directory with files\n  #\n  #               reinit_git &&\n  #               printf \"%s\n  #       \" directory/file1 directory/file2 >expect.files &&\n  #               echo hi >hi &&\n  #               echo hello >hello &&\n  #               {\n  #                       properties \\\n  #                               svn:author author@example.com \\\n  #                               svn:date \"1999-02-01T00:01:002.000000Z\" \\\n  #                               svn:log \"add directory with some\nfiles in it\" &&\n  #                       echo PROPS-END\n  #               } >props &&\n  #               {\n  #                       cat <<-EOF &&\n  #                       SVN-fs-dump-format-version: 3\n  #\n  #                       Revision-number: 1\n  #                       EOF\n  #                       echo Prop-content-length: $(wc -c <props) &&\n  #                       echo Content-length: $(wc -c <props) &&\n  #                       echo &&\n  #                       cat props &&\n  #                       cat <<-\\EOF &&\n  #\n  #                       Node-path: directory\n  #                       Node-kind: dir\n  #                       Node-action: add\n  #                       Prop-content-length: 10\n  #                       Content-length: 10\n  #\n  #                       PROPS-END\n  #\n  #                       Node-path: directory/file1\n  #                       Node-kind: file\n  #                       Node-action: add\n  #                       EOF\n  #                       text_no_props hello &&\n  #                       cat <<-\\EOF &&\n  #                       Node-path: directory/file2\n  #                       Node-kind: file\n  #                       Node-action: add\n  #                       EOF\n  #                       text_no_props hi\n  #               } >directory.dump &&\n  #               test-svn-fe directory.dump >stream &&\n  #               git fast-import <stream &&\n  #\n  #               git ls-tree -r --name-only HEAD >actual.files &&\n  #               git checkout HEAD directory &&\n  #               test_cmp expect.files actual.files &&\n  #               test_cmp hello directory/file1 &&\n  #               test_cmp hi directory/file2\n  #\n  ok 9 - node without action\n  ok 10 - action: add node without text\n  not ok 11 - change file mode but keep old content # TODO known breakage\n  not ok - 12 NUL in property value\n  #\n  #               reinit_git &&\n  #               echo \"commit message\" >expect.message &&\n  #               {\n  #                       properties \\\n  #                               unimportant \"something with a NUL (Q)\" \\\n  #                               svn:log \"commit message\"&&\n  #                       echo PROPS-END\n  #               } |\n  #               q_to_nul >props &&\n  #               {\n  #                       cat <<-\\EOF &&\n  #                       SVN-fs-dump-format-version: 3\n  #\n  #                       Revision-number: 1\n  #                       EOF\n  #                       echo Prop-content-length: $(wc -c <props) &&\n  #                       echo Content-length: $(wc -c <props) &&\n  #                       echo &&\n  #                       cat props\n  #               } >nulprop.dump &&\n  #               test-svn-fe nulprop.dump >stream &&\n  #               git fast-import <stream &&\n  #               git diff-tree --always -s --format=%s HEAD >actual.message &&\n  #               test_cmp expect.message actual.message\n  #\n  not ok - 13 NUL in log message, file content, and property name\n  #\n  #               # Caveat: svnadmin 1.6.16 (r1073529) truncates at\n  not ok - 14 change file mode and reiterate content\n  #\n  #               reinit_git &&\n  #               cat >expect <<-\\EOF &&\n  #               OBJID\n  #               :120000 100644 OBJID OBJID T    greeting\n  #               OBJID\n  #               :100644 120000 OBJID OBJID T    greeting\n  #               OBJID\n  #               :000000 100644 OBJID OBJID A    greeting\n  #               EOF\n  #               echo \"link hello\" >expect.blob &&\n  #               echo hello >hello &&\n  #               cat >filemode.dump <<-\\EOF &&\n  #               SVN-fs-dump-format-version: 3\n  #\n  #               Revision-number: 1\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Node-path: greeting\n  #               Node-kind: file\n  #               Node-action: add\n  #               Prop-content-length: 10\n  #               Text-content-length: 11\n  #               Content-length: 21\n  #\n  #               PROPS-END\n  #               link hello\n  #\n  #               Revision-number: 2\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Node-path: greeting\n  #               Node-kind: file\n  #               Node-action: change\n  #               Prop-content-length: 33\n  #               Text-content-length: 11\n  #               Content-length: 44\n  #\n  #               K 11\n  #               svn:special\n  #               V 1\n  #               *\n  #               PROPS-END\n  #               link hello\n  #\n  #               Revision-number: 3\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Node-path: greeting\n  #               Node-kind: file\n  #               Node-action: change\n  #               Prop-content-length: 10\n  #               Text-content-length: 11\n  #               Content-length: 21\n  #\n  #               PROPS-END\n  #               link hello\n  #               EOF\n  #               test-svn-fe filemode.dump >stream &&\n  #               git fast-import <stream &&\n  #               {\n  #                       git rev-list HEAD |\n  #                       git diff-tree --root --stdin |\n  #                       sed \"s/$_x40/OBJID/g\"\n  #               } >actual &&\n  #               git show HEAD:greeting >actual.blob &&\n  #               git show HEAD^:greeting >actual.target &&\n  #               test_cmp expect actual &&\n  #               test_cmp expect.blob actual.blob &&\n  #               test_cmp hello actual.target\n  #\n  ok 15 - deltas not supported\n  not ok - 16 property deltas supported\n  #\n  #               reinit_git &&\n  #               cat >expect <<-\\EOF &&\n  #               OBJID\n  #               :100755 100644 OBJID OBJID M    script.sh\n  #               EOF\n  #               {\n  #                       properties \\\n  #                               svn:author author@example.com \\\n  #                               svn:date \"1999-03-06T00:01:002.000000Z\" \\\n  #                               svn:log \"make an executable, or\nchmod -x it\" &&\n  #                       echo PROPS-END\n  #               } >revprops &&\n  #               {\n  #                       echo SVN-fs-dump-format-version: 3 &&\n  #                       echo &&\n  #                       echo Revision-number: 1 &&\n  #                       echo Prop-content-length: $(wc -c <revprops) &&\n  #                       echo Content-length: $(wc -c <revprops) &&\n  #                       echo &&\n  #                       cat revprops &&\n  #                       echo &&\n  #                       cat <<-\\EOF &&\n  #                       Node-path: script.sh\n  #                       Node-kind: file\n  #                       Node-action: add\n  #                       Text-content-length: 0\n  #                       Prop-content-length: 39\n  #                       Content-length: 39\n  #\n  #                       K 14\n  #                       svn:executable\n  #                       V 4\n  #                       true\n  #                       PROPS-END\n  #\n  #                       EOF\n  #                       echo Revision-number: 2 &&\n  #                       echo Prop-content-length: $(wc -c <revprops) &&\n  #                       echo Content-length: $(wc -c <revprops) &&\n  #                       echo &&\n  #                       cat revprops &&\n  #                       echo &&\n  #                       cat <<-\\EOF\n  #                       Node-path: script.sh\n  #                       Node-kind: file\n  #                       Node-action: change\n  #                       Prop-delta: true\n  #                       Prop-content-length: 30\n  #                       Content-length: 30\n  #\n  #                       D 14\n  #                       svn:executable\n  #                       PROPS-END\n  #                       EOF\n  #               } >propdelta.dump &&\n  #               test-svn-fe propdelta.dump >stream &&\n  #               git fast-import <stream &&\n  #               {\n  #                       git rev-list HEAD |\n  #                       git diff-tree --stdin |\n  #                       sed \"s/$_x40/OBJID/g\"\n  #               } >actual &&\n  #               test_cmp expect actual\n  #\n  not ok - 17 properties on /\n  #\n  #               reinit_git &&\n  #               cat <<-\\EOF >expect &&\n  #               OBJID\n  #               OBJID\n  #               :000000 100644 OBJID OBJID A    greeting\n  #               EOF\n  #               sed -e \"s/X$//\" <<-\\EOF >changeroot.dump &&\n  #               SVN-fs-dump-format-version: 3\n  #\n  #               Revision-number: 1\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Node-path: greeting\n  #               Node-kind: file\n  #               Node-action: add\n  #               Text-content-length: 0\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Revision-number: 2\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Node-path: X\n  #               Node-kind: dir\n  #               Node-action: change\n  #               Prop-delta: true\n  #               Prop-content-length: 43\n  #               Content-length: 43\n  #\n  #               K 10\n  #               svn:ignore\n  #               V 11\n  #               build-area\n  #\n  #               PROPS-END\n  #               EOF\n  #               test-svn-fe changeroot.dump >stream &&\n  #               git fast-import <stream &&\n  #               {\n  #                       git rev-list HEAD |\n  #                       git diff-tree --root --always --stdin |\n  #                       sed \"s/$_x40/OBJID/g\"\n  #               } >actual &&\n  #               test_cmp expect actual\n  #\n  not ok - 18 deltas for typechange\n  #\n  #               reinit_git &&\n  #               cat >expect <<-\\EOF &&\n  #               OBJID\n  #               :120000 100644 OBJID OBJID T    test-file\n  #               OBJID\n  #               :100755 120000 OBJID OBJID T    test-file\n  #               OBJID\n  #               :000000 100755 OBJID OBJID A    test-file\n  #               EOF\n  #               cat >deleteprop.dump <<-\\EOF &&\n  #               SVN-fs-dump-format-version: 3\n  #\n  #               Revision-number: 1\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Node-path: test-file\n  #               Node-kind: file\n  #               Node-action: add\n  #               Prop-delta: true\n  #               Prop-content-length: 35\n  #               Text-content-length: 17\n  #               Content-length: 52\n  #\n  #               K 14\n  #               svn:executable\n  #               V 0\n  #\n  #               PROPS-END\n  #               link testing 123\n  #\n  #               Revision-number: 2\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Node-path: test-file\n  #               Node-kind: file\n  #               Node-action: change\n  #               Prop-delta: true\n  #               Prop-content-length: 53\n  #               Text-content-length: 17\n  #               Content-length: 70\n  #\n  #               K 11\n  #               svn:special\n  #               V 1\n  #               *\n  #               D 14\n  #               svn:executable\n  #               PROPS-END\n  #               link testing 231\n  #\n  #               Revision-number: 3\n  #               Prop-content-length: 10\n  #               Content-length: 10\n  #\n  #               PROPS-END\n  #\n  #               Node-path: test-file\n  #               Node-kind: file\n  #               Node-action: change\n  #               Prop-delta: true\n  #               Prop-content-length: 27\n  #               Text-content-length: 17\n  #               Content-length: 44\n  #\n  #               D 11\n  #               svn:special\n  #               PROPS-END\n  #               link testing 321\n  #               EOF\n  #               test-svn-fe deleteprop.dump >stream &&\n  #               git fast-import <stream &&\n  #               {\n  #                       git rev-list HEAD |\n  #                       git diff-tree --root --stdin |\n  #                       sed \"s/$_x40/OBJID/g\"\n  #               } >actual &&\n  #               test_cmp expect actual\n  #\n  ok 19 - set up svn repo\n  not ok - 20 t9135/svn.dump\n  #\n  #               git init simple-git &&\n  #               test-svn-fe \"$TEST_DIRECTORY/t9135/svn.dump\" >simple.fe &&\n  #               (\n  #                       cd simple-git &&\n  #                       git fast-import <../simple.fe\n  #               ) &&\n  #               (\n  #                       cd simple-svnco &&\n  #                       git init &&\n  #                       git add . &&\n  #                       git fetch ../simple-git master &&\n  #                       git diff --exit-code FETCH_HEAD\n  #               )\n  #\n  # still have 3 known breakage(s)\n  # failed 11 among remaining 17 test(s)\n  1..20\n  make[2]: *** [t9010-svn-fe.sh] Error 1\n  make[2]: Leaving directory `/home/sunny/src/other/git/build-git/t'\n  make[1]: *** [test] Error 2\n  make[1]: Leaving directory `/home/sunny/src/other/git/build-git/t'\n  make: *** [test] Error 2\n\nAlso posted at https://gist.github.com/891690 in case Gmail messes up\nthe formatting.\n\nRegards,\nØyvind\n"},{"id":"164525","messageId":"20110329042446.GB25693@elie","threadId":"26898","inReplyTo":"AANLkTik0CNXY9bKGOa9Xmai_OPQgExfLsFs1yN2pCVr8@mail.gmail.com","subject":"Re: 195b7ca6 breaks t9010 at current master","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-03-29T04:24:46Z","receivedAt":"2011-03-29T04:24:46Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nØyvind A. Holm wrote:\n\n> When running \"make test\" at current master (v1.7.4.2-406-gbe919d5),\n> t9010-svn-fe.sh fails. Bisecting shows that 195b7ca6 (\"vcs-svn: handle\n> log message with embedded NUL\") breaks the test.\n\nCould you try with the following patch applied?  It comes from\nsquashing the last two patches from the svn-fe branch:\n\n* tests: make sure input to sed is newline terminated\n* vcs-svn: add missing cast to printf argument\n\nSorry for the breakage.\n---\ndiff --git a/t/t9010-svn-fe.sh b/t/t9010-svn-fe.sh\nindex 478c860..6f6175a 100755\n--- a/t/t9010-svn-fe.sh\n+++ b/t/t9010-svn-fe.sh\n@@ -407,7 +407,7 @@ test_expect_success 'NUL in log message, file content, and property name' '\n \tOBJID\n \t:000000 100644 OBJID OBJID A\tgreeting\n \tEOF\n-\tprintf \"\\n%s\" \"something with an ASCII NUL (Q)\" >expect.message &&\n+\tprintf \"\\n%s\\n\" \"something with an ASCII NUL (Q)\" >expect.message &&\n \tprintf \"%s\\n\" \"helQo\" >expect.hello1 &&\n \tprintf \"%s\\n\" \"link hello\" >expect.hello2 &&\n \t{\n@@ -465,7 +465,11 @@ test_expect_success 'NUL in log message, file content, and property name' '\n \t\tgit diff-tree --root --stdin |\n \t\tsed \"s/$_x40/OBJID/g\"\n \t} >actual &&\n-\tgit cat-file commit HEAD | nul_to_q | sed -ne \"/^\\$/,\\$ p\" >actual.message &&\n+\t{\n+\t\tgit cat-file commit HEAD | nul_to_q &&\n+\t\techo\n+\t} |\n+\tsed -ne \"/^\\$/,\\$ p\" >actual.message &&\n \tgit cat-file blob HEAD^:greeting | nul_to_q >actual.hello1 &&\n \tgit cat-file blob HEAD:greeting | nul_to_q >actual.hello2 &&\n \ttest_cmp expect actual &&\ndiff --git a/vcs-svn/fast_export.c b/vcs-svn/fast_export.c\nindex 2e5bb67..99ed70b 100644\n--- a/vcs-svn/fast_export.c\n+++ b/vcs-svn/fast_export.c\n@@ -51,7 +51,8 @@ void fast_export_commit(uint32_t revision, const char *author,\n \t\t   *author ? author : \"nobody\",\n \t\t   *author ? author : \"nobody\",\n \t\t   *uuid ? uuid : \"local\", timestamp);\n-\tprintf(\"data %\"PRIuMAX\"\\n\", log->len + strlen(gitsvnline));\n+\tprintf(\"data %\"PRIuMAX\"\\n\",\n+\t\t(uintmax_t) (log->len + strlen(gitsvnline)));\n \tfwrite(log->buf, log->len, 1, stdout);\n \tprintf(\"%s\\n\", gitsvnline);\n \tif (!first_commit_done) {\n-- \n"},{"id":"164538","messageId":"08D5E94F-23F7-4F18-9E3F-A92722F70C70@silverinsanity.com","threadId":"26898","inReplyTo":"20110329042446.GB25693@elie","subject":"Re: 195b7ca6 breaks t9010 at current master","fromName":"Brian Gernhardt","fromEmail":"benji@silverinsanity.com","sentAt":"2011-03-29T07:06:20Z","receivedAt":"2011-03-29T07:06:20Z","isPatch":false,"sender":{"key":"benji@silverinsanity.com","avatar":"https://gravatar.com/avatar/e06c101dbc25c68114d859b4a9ec7cf8a2c52fd2b0270ef0eac0e2e63ff22311?d=mp&s=160"},"body":"\nOn Mar 29, 2011, at 12:24 AM, Jonathan Nieder wrote:\n\n> Øyvind A. Holm wrote:\n> \n>> When running \"make test\" at current master (v1.7.4.2-406-gbe919d5),\n>> t9010-svn-fe.sh fails. Bisecting shows that 195b7ca6 (\"vcs-svn: handle\n>> log message with embedded NUL\") breaks the test.\n> \n> Could you try with the following patch applied?  It comes from\n> squashing the last two patches from the svn-fe branch:\n\nBreakage also seen on OS X 10.6.7, the provided patch does fix.\n\n~~ Brian"},{"id":"164544","messageId":"20110329072431.GC25693@elie","threadId":"26898","inReplyTo":"08D5E94F-23F7-4F18-9E3F-A92722F70C70@silverinsanity.com","subject":"[PULL svn-fe] Re: 195b7ca6 breaks t9010 at current master","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-03-29T07:24:31Z","receivedAt":"2011-03-29T07:24:31Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Brian Gernhardt wrote:\n\n> Breakage also seen on OS X 10.6.7, the provided patch does fix.\n\nThanks.  repo.or.cz doesn't seem to be accepting pushes, so\nthe following changes are available from\n\n  git://git.debian.org/users/jrnieder-guest/git.git svn-fe\n\nSorry for the trouble.\n\nJonathan Nieder (2):\n      vcs-svn: add missing cast to printf argument\n      tests: make sure input to sed is newline terminated\n\n t/t9010-svn-fe.sh     |    8 ++++++--\n vcs-svn/fast_export.c |    3 ++-\n 2 files changed, 8 insertions(+), 3 deletions(-)\n"},{"id":"164572","messageId":"AANLkTi=pDM2AXwLWtQQmp77dAzhooFSMXHtKAoN_S8_a@mail.gmail.com","threadId":"26898","inReplyTo":"20110329042446.GB25693@elie","subject":"Re: 195b7ca6 breaks t9010 at current master","fromName":"Øyvind A. Holm","fromEmail":"sunny@sunbase.org","sentAt":"2011-03-29T13:37:10Z","receivedAt":"2011-03-29T13:37:10Z","isPatch":false,"sender":{"key":"sunny@sunbase.org","avatar":"https://avatars.githubusercontent.com/u/113445?v=4"},"body":"On 29 March 2011 06:24, Jonathan Nieder <jrnieder@gmail.com> wrote:\n> Øyvind A. Holm wrote:\n> > When running \"make test\" at current master (v1.7.4.2-406-gbe919d5),\n> > t9010-svn-fe.sh fails. Bisecting shows that 195b7ca6 (\"vcs-svn:\n> > handle log message with embedded NUL\") breaks the test.\n>\n> Could you try with the following patch applied?  It comes from\n> squashing the last two patches from the svn-fe branch:\n>\n> * tests: make sure input to sed is newline terminated\n> * vcs-svn: add missing cast to printf argument\n\nThanks a lot. Yes, that works. It seems as it's \"vcs-svn: add missing\ncast to printf argument\" that does the trick, at least t9010 doesn't\nfail after that's applied. ... And it has reached the official master\nnow (as 8cc299d), seems it got pushed after I went to bed. I'm running a\ntest on current master (07514c8) now, and things look fine so far.\n\nRegards,\nØyvind\n"},{"id":"164806","messageId":"YHiIPkNCiU3RcX-PxtGuaAPfpIMSLtDzcuGX-pUHbb_4SC5aAQu_WQ@cipher.nrlssc.navy.mil","threadId":"26898","inReplyTo":"20110329042446.GB25693@elie","subject":"Re: 195b7ca6 breaks t9010 at current master","fromName":"Brandon Casey","fromEmail":"brandon.casey.ctr@nrlssc.navy.mil","sentAt":"2011-03-31T16:11:25Z","receivedAt":"2011-03-31T16:11:25Z","isPatch":false,"sender":{"key":"brandon.casey.ctr@nrlssc.navy.mil","avatar":null},"body":"\n[removed Junio from cc]\n\nOn 03/28/2011 11:24 PM, Jonathan Nieder wrote:\n> Hi,\n> \n> Øyvind A. Holm wrote:\n> \n>> When running \"make test\" at current master (v1.7.4.2-406-gbe919d5),\n>> t9010-svn-fe.sh fails. Bisecting shows that 195b7ca6 (\"vcs-svn: handle\n>> log message with embedded NUL\") breaks the test.\n> \n> Could you try with the following patch applied?  It comes from\n> squashing the last two patches from the svn-fe branch:\n> \n> * tests: make sure input to sed is newline terminated\n> * vcs-svn: add missing cast to printf argument\n> \n> Sorry for the breakage.\n> ---\n> diff --git a/t/t9010-svn-fe.sh b/t/t9010-svn-fe.sh\n> index 478c860..6f6175a 100755\n> --- a/t/t9010-svn-fe.sh\n> +++ b/t/t9010-svn-fe.sh\n> @@ -407,7 +407,7 @@ test_expect_success 'NUL in log message, file content, and property name' '\n>  \tOBJID\n>  \t:000000 100644 OBJID OBJID A\tgreeting\n>  \tEOF\n> -\tprintf \"\\n%s\" \"something with an ASCII NUL (Q)\" >expect.message &&\n> +\tprintf \"\\n%s\\n\" \"something with an ASCII NUL (Q)\" >expect.message &&\n>  \tprintf \"%s\\n\" \"helQo\" >expect.hello1 &&\n>  \tprintf \"%s\\n\" \"link hello\" >expect.hello2 &&\n>  \t{\n> @@ -465,7 +465,11 @@ test_expect_success 'NUL in log message, file content, and property name' '\n>  \t\tgit diff-tree --root --stdin |\n>  \t\tsed \"s/$_x40/OBJID/g\"\n>  \t} >actual &&\n> -\tgit cat-file commit HEAD | nul_to_q | sed -ne \"/^\\$/,\\$ p\" >actual.message &&\n> +\t{\n> +\t\tgit cat-file commit HEAD | nul_to_q &&\n> +\t\techo\n> +\t} |\n> +\tsed -ne \"/^\\$/,\\$ p\" >actual.message &&\n>  \tgit cat-file blob HEAD^:greeting | nul_to_q >actual.hello1 &&\n>  \tgit cat-file blob HEAD:greeting | nul_to_q >actual.hello2 &&\n>  \ttest_cmp expect actual &&\n\nI was just about to send a patch for this, when I noticed it has\nalready been worked around in master by the above.\n\nI'll still share my one-liner for informational purposes which uses perl\nand in my opinion is a little simpler:\n\ndiff --git a/t/t9010-svn-fe.sh b/t/t9010-svn-fe.sh\nindex 478c860..0dcffaa 100755\n--- a/t/t9010-svn-fe.sh\n+++ b/t/t9010-svn-fe.sh\n@@ -465,7 +465,7 @@ test_expect_success 'NUL in log message, file content, and property name' '\n                git diff-tree --root --stdin |\n                sed \"s/$_x40/OBJID/g\"\n        } >actual &&\n-       git cat-file commit HEAD | nul_to_q | sed -ne \"/^\\$/,\\$ p\" >actual.message &&\n+       git cat-file commit HEAD | nul_to_q | perl -ne \"print if (/^$/..eof())\" >actual.message &&\n        git cat-file blob HEAD^:greeting | nul_to_q >actual.hello1 &&\n        git cat-file blob HEAD:greeting | nul_to_q >actual.hello2 &&\n        test_cmp expect actual &&\n\n-Brandon\n"},{"id":"164833","messageId":"20110331211443.GC19932@elie","threadId":"26898","inReplyTo":"YHiIPkNCiU3RcX-PxtGuaAPfpIMSLtDzcuGX-pUHbb_4SC5aAQu_WQ@cipher.nrlssc.navy.mil","subject":"Re: 195b7ca6 breaks t9010 at current master","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-03-31T21:14:43Z","receivedAt":"2011-03-31T21:14:43Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nBrandon Casey wrote:\n\n> I was just about to send a patch for this, when I noticed it has\n> already been worked around in master by the above.\n>\n> I'll still share my one-liner for informational purposes which uses perl\n> and in my opinion is a little simpler:\n>\n> --- a/t/t9010-svn-fe.sh\n> +++ b/t/t9010-svn-fe.sh\n> @@ -465,7 +465,7 @@ test_expect_success 'NUL in log message, file content, and property name' '\n>                 git diff-tree --root --stdin |\n>                 sed \"s/$_x40/OBJID/g\"\n>         } >actual &&\n> -       git cat-file commit HEAD | nul_to_q | sed -ne \"/^\\$/,\\$ p\" >actual.message &&\n> +       git cat-file commit HEAD | nul_to_q | perl -ne \"print if (/^$/..eof())\" >actual.message &&\n>         git cat-file blob HEAD^:greeting | nul_to_q >actual.hello1 &&\n>         git cat-file blob HEAD:greeting | nul_to_q >actual.hello2 &&\n>         test_cmp expect actual &&\n\nThanks.  I'll definitely use that idiom the next time this sed gotcha\ncomes up.\n\nAlso if you're interested, I'd be happy to take a patch on top to\nmake it so as a cleanup (probably splitting the line at the same time,\nsince it's getting pretty long).\n"}]}