{"thread":{"id":"37222","subject":"git diff-tree commit detail bug in 2.0.2 and 2.0.3","startedAt":"2014-07-28T09:42:16Z","lastAt":"2014-07-29T07:54:54Z","messageCount":14,"participants":["Bryan Turner","Ramsay Jones","Jeff King","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"246764","messageId":"CAGyf7-HKpfyi5OqXS9BhtfXUEZXbisawpTPK9UFOQObz1qhRUw@mail.gmail.com","threadId":"37222","inReplyTo":null,"subject":"git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Bryan Turner","fromEmail":"bturner@atlassian.com","sentAt":"2014-07-28T09:42:16Z","receivedAt":"2014-07-28T09:42:16Z","isPatch":false,"sender":{"key":"bturner@atlassian.com","avatar":"https://gravatar.com/avatar/16bcf3167981c1ef7c804e502642366d888a35b0d0b0a4ca01fdc442aa1acb1e?d=mp&s=160"},"body":"Using git diff-tree --stdin on 2.0.2 and 2.0.3 produces incorrect\ncommit messages.\n\nHere's an example to reproduce the issue:\n\nbturner@ubuntu:/tmp$ git init --bare test.git\nInitialized empty Git repository in /tmp/test.git/\nbturner@ubuntu:/tmp$ git clone test.git\nCloning into 'test'...\nwarning: You appear to have cloned an empty repository.\ndone.\nbturner@ubuntu:/tmp$ cd test\nbturner@ubuntu:/tmp/test$ echo \"Hello\" > file.txt\nbturner@ubuntu:/tmp/test$ git add file.txt\nbturner@ubuntu:/tmp/test$ git commit -m \"Initial commit\"\n[master (root-commit) c5e16f3] Initial commit\n 1 file changed, 1 insertion(+)\n create mode 100644 file.txt\nbturner@ubuntu:/tmp/test$ echo \"World\" >> file.txt\nbturner@ubuntu:/tmp/test$ git commit -am \"Second commit\"\n[master 9214ac7] Second commit\n 1 file changed, 1 insertion(+)\nbturner@ubuntu:/tmp/test$ git push origin HEAD\nCounting objects: 6, done.\nDelta compression using up to 4 threads.\nCompressing objects: 100% (2/2), done.\nWriting objects: 100% (6/6), 446 bytes | 0 bytes/s, done.\nTotal 6 (delta 0), reused 0 (delta 0)\nTo /tmp/test.git\n * [new branch]      HEAD -> master\nbturner@ubuntu:/tmp/test$ cd ../test.git/\nbturner@ubuntu:/tmp/test.git$ git rev-list -1\n--format=\"%H|%h|%P|%p|%aN|%aE|%at%n%B%n\" 9214ac7\ncommit 9214ac79728424a971244c34432c6d948754198d\n9214ac79728424a971244c34432c6d948754198d|9214ac7|c5e16f37164f1b7411685def64d7390775437f07|c5e16f3|Bryan\nTurner|bturner@atlassian.com|1406539558\nSecond commit\n\n\nbturner@ubuntu:/tmp/test.git$ /opt/git/2.0.3/bin/git diff-tree\n--no-renames --always --format=\"commit\n%H%n%H|%h|%P|%p|%aN|%aE|%at|%B%n\" --root\n9214ac79728424a971244c34432c6d948754198d\ncommit 9214ac79728424a971244c34432c6d948754198d\n9214ac79728424a971244c34432c6d948754198d|9214ac79728424a971244c34432c6d948754198d|c5e16f37164f1b7411685def64d7390775437f07|c5e16f37164f1b7411685def64d7390775437f07|Bryan\nTurner|bturner@atlassian.com|1406539558|Second commit\n\n\n\n:100644 100644 e965047ad7c57865823c7d992b1d046ea66edf78\nf9264f7fbd31ae7a18b7931ed8946fb0aebb0af3 M    file.txt\nbturner@ubuntu:/tmp/test.git$ /opt/git/2.0.3/bin/git diff-tree\n--no-renames --always --format=\"commit\n%H%n%H|%h|%P|%p|%aN|%aE|%at|%B%n\" --root --stdin\n--9214ac79728424a971244c34432c6d948754198d\ncommit 9214ac79728424a971244c34432c6d948754198d\n9214ac79728424a971244c34432c6d948754198d|9214ac79728424a971244c34432c6d948754198d|c5e16f37164f1b7411685def64d7390775437f07|c5e16f37164f1b7411685def64d7390775437f07|Bryan\nTurner|bturner@atlassian.com|1406539543|Initial commit\n\n\n\n:100644 100644 e965047ad7c57865823c7d992b1d046ea66edf78\nf9264f7fbd31ae7a18b7931ed8946fb0aebb0af3 M    file.txt\nbturner@ubuntu:/tmp/test.git$\n\nRunning a git bisect between v2.0.1, which does not manifest this\nissue, and v2.0.2 fingers the following commit:\nbturner@ubuntu:~/Development/oss/git/git$ git bisect bad\nc1b3c71f4b4571abb2b2a457122fd100dc9f7eb0 is the first bad commit\ncommit c1b3c71f4b4571abb2b2a457122fd100dc9f7eb0\nAuthor: Jeff King <peff@peff.net>\nDate:   Tue Jun 10 17:43:02 2014 -0400\n\n    commit: convert commit->buffer to a slab\n\nBryan Turner\n"},{"id":"246768","messageId":"53D6235C.90608@ramsay1.demon.co.uk","threadId":"37222","inReplyTo":"CAGyf7-HKpfyi5OqXS9BhtfXUEZXbisawpTPK9UFOQObz1qhRUw@mail.gmail.com","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Ramsay Jones","fromEmail":"ramsay@ramsay1.demon.co.uk","sentAt":"2014-07-28T10:18:04Z","receivedAt":"2014-07-28T10:18:04Z","isPatch":false,"sender":{"key":"ramsay@ramsayjones.plus.com","avatar":"https://avatars.githubusercontent.com/u/33702710?v=4"},"body":"On 28/07/14 10:42, Bryan Turner wrote:\n> Using git diff-tree --stdin on 2.0.2 and 2.0.3 produces incorrect\n> commit messages.\n> \n> Here's an example to reproduce the issue:\n> \n> bturner@ubuntu:/tmp$ git init --bare test.git\n> Initialized empty Git repository in /tmp/test.git/\n> bturner@ubuntu:/tmp$ git clone test.git\n> Cloning into 'test'...\n> warning: You appear to have cloned an empty repository.\n> done.\n> bturner@ubuntu:/tmp$ cd test\n> bturner@ubuntu:/tmp/test$ echo \"Hello\" > file.txt\n> bturner@ubuntu:/tmp/test$ git add file.txt\n> bturner@ubuntu:/tmp/test$ git commit -m \"Initial commit\"\n> [master (root-commit) c5e16f3] Initial commit\n>  1 file changed, 1 insertion(+)\n>  create mode 100644 file.txt\n> bturner@ubuntu:/tmp/test$ echo \"World\" >> file.txt\n> bturner@ubuntu:/tmp/test$ git commit -am \"Second commit\"\n> [master 9214ac7] Second commit\n>  1 file changed, 1 insertion(+)\n> bturner@ubuntu:/tmp/test$ git push origin HEAD\n> Counting objects: 6, done.\n> Delta compression using up to 4 threads.\n> Compressing objects: 100% (2/2), done.\n> Writing objects: 100% (6/6), 446 bytes | 0 bytes/s, done.\n> Total 6 (delta 0), reused 0 (delta 0)\n> To /tmp/test.git\n>  * [new branch]      HEAD -> master\n> bturner@ubuntu:/tmp/test$ cd ../test.git/\n> bturner@ubuntu:/tmp/test.git$ git rev-list -1\n> --format=\"%H|%h|%P|%p|%aN|%aE|%at%n%B%n\" 9214ac7\n> commit 9214ac79728424a971244c34432c6d948754198d\n> 9214ac79728424a971244c34432c6d948754198d|9214ac7|c5e16f37164f1b7411685def64d7390775437f07|c5e16f3|Bryan\n> Turner|bturner@atlassian.com|1406539558\n> Second commit\n> \n> \n> bturner@ubuntu:/tmp/test.git$ /opt/git/2.0.3/bin/git diff-tree\n----------------------------------------^^^^^^^\n\nYou appear to have used v2.0.3 on both invocations of diff-tree\n(see also below); cut-n-paste error?\n\n> --no-renames --always --format=\"commit\n> %H%n%H|%h|%P|%p|%aN|%aE|%at|%B%n\" --root\n> 9214ac79728424a971244c34432c6d948754198d\n> commit 9214ac79728424a971244c34432c6d948754198d\n> 9214ac79728424a971244c34432c6d948754198d|9214ac79728424a971244c34432c6d948754198d|c5e16f37164f1b7411685def64d7390775437f07|c5e16f37164f1b7411685def64d7390775437f07|Bryan\n> Turner|bturner@atlassian.com|1406539558|Second commit\n> \n> \n> \n> :100644 100644 e965047ad7c57865823c7d992b1d046ea66edf78\n> f9264f7fbd31ae7a18b7931ed8946fb0aebb0af3 M    file.txt\n> bturner@ubuntu:/tmp/test.git$ /opt/git/2.0.3/bin/git diff-tree\n> --no-renames --always --format=\"commit\n> %H%n%H|%h|%P|%p|%aN|%aE|%at|%B%n\" --root --stdin\n> --9214ac79728424a971244c34432c6d948754198d\n> commit 9214ac79728424a971244c34432c6d948754198d\n> 9214ac79728424a971244c34432c6d948754198d|9214ac79728424a971244c34432c6d948754198d|c5e16f37164f1b7411685def64d7390775437f07|c5e16f37164f1b7411685def64d7390775437f07|Bryan\n> Turner|bturner@atlassian.com|1406539543|Initial commit\n---------------------------------------^^\n\nThe timestamp is also different than the above.\n\n> \n> \n> \n> :100644 100644 e965047ad7c57865823c7d992b1d046ea66edf78\n> f9264f7fbd31ae7a18b7931ed8946fb0aebb0af3 M    file.txt\n> bturner@ubuntu:/tmp/test.git$\n> \n> Running a git bisect between v2.0.1, which does not manifest this\n> issue, and v2.0.2 fingers the following commit:\n> bturner@ubuntu:~/Development/oss/git/git$ git bisect bad\n> c1b3c71f4b4571abb2b2a457122fd100dc9f7eb0 is the first bad commit\n> commit c1b3c71f4b4571abb2b2a457122fd100dc9f7eb0\n> Author: Jeff King <peff@peff.net>\n> Date:   Tue Jun 10 17:43:02 2014 -0400\n> \n>     commit: convert commit->buffer to a slab\n> \n\nATB,\nRamsay Jones\n"},{"id":"246776","messageId":"20140728103504.GB10737@peff.net","threadId":"37222","inReplyTo":"CAGyf7-HKpfyi5OqXS9BhtfXUEZXbisawpTPK9UFOQObz1qhRUw@mail.gmail.com","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-07-28T10:35:04Z","receivedAt":"2014-07-28T10:35:04Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Jul 28, 2014 at 07:42:16PM +1000, Bryan Turner wrote:\n\n> Running a git bisect between v2.0.1, which does not manifest this\n> issue, and v2.0.2 fingers the following commit:\n> bturner@ubuntu:~/Development/oss/git/git$ git bisect bad\n> c1b3c71f4b4571abb2b2a457122fd100dc9f7eb0 is the first bad commit\n> commit c1b3c71f4b4571abb2b2a457122fd100dc9f7eb0\n> Author: Jeff King <peff@peff.net>\n> Date:   Tue Jun 10 17:43:02 2014 -0400\n> \n>     commit: convert commit->buffer to a slab\n\nI haven't reproduced here yet, but this is almost certainly the bug\nwhere lookup_unknown_object causes a bogus commit->index field (and\nprior to the commit you found, diff-tree did not use commit->index).\n\nThe series that Junio has in jk/alloc-commit-id should fix the problem\n(it's in master already, and slated for v2.1.0).\n\nJunio, we should consider a v2.0.4 with that series, I think. This is a\npretty serious regression in diff-tree (I didn't even realize that the\nbuffer-slab work went into the maint series; that may have been a little\nambitious).\n\n-Peff\n"},{"id":"246779","messageId":"20140728104409.GC10737@peff.net","threadId":"37222","inReplyTo":"20140728103504.GB10737@peff.net","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-07-28T10:44:09Z","receivedAt":"2014-07-28T10:44:09Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Jul 28, 2014 at 06:35:04AM -0400, Jeff King wrote:\n\n> I haven't reproduced here yet, but this is almost certainly the bug\n> where lookup_unknown_object causes a bogus commit->index field (and\n> prior to the commit you found, diff-tree did not use commit->index).\n> \n> The series that Junio has in jk/alloc-commit-id should fix the problem\n> (it's in master already, and slated for v2.1.0).\n\nYep, that's definitely it. Here's the minimum reproduction:\n\n  git init\n  git commit --allow-empty -m one\n  git commit --allow-empty -m two\n  git rev-list HEAD | git diff-tree --stdin --always --format=%s\n\nThat yields:\n\n  one\n  one\n\non v2.0.3, but merging in jk/alloc-commit-id yields:\n\n  two\n  one\n\n-Peff\n"},{"id":"246803","messageId":"CAGyf7-GVz8ME0Mq_DyHCSFCx5KN6qLGEgtgMSv2NkKb9AGEGdg@mail.gmail.com","threadId":"37222","inReplyTo":"20140728104409.GC10737@peff.net","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Bryan Turner","fromEmail":"bturner@atlassian.com","sentAt":"2014-07-28T12:08:20Z","receivedAt":"2014-07-28T12:08:20Z","isPatch":false,"sender":{"key":"bturner@atlassian.com","avatar":"https://gravatar.com/avatar/16bcf3167981c1ef7c804e502642366d888a35b0d0b0a4ca01fdc442aa1acb1e?d=mp&s=160"},"body":"On Mon, Jul 28, 2014 at 8:44 PM, Jeff King <peff@peff.net> wrote:\n> On Mon, Jul 28, 2014 at 06:35:04AM -0400, Jeff King wrote:\n>\n>> I haven't reproduced here yet, but this is almost certainly the bug\n>> where lookup_unknown_object causes a bogus commit->index field (and\n>> prior to the commit you found, diff-tree did not use commit->index).\n>>\n>> The series that Junio has in jk/alloc-commit-id should fix the problem\n>> (it's in master already, and slated for v2.1.0).\n>\n> Yep, that's definitely it. Here's the minimum reproduction:\n>\n>   git init\n>   git commit --allow-empty -m one\n>   git commit --allow-empty -m two\n>   git rev-list HEAD | git diff-tree --stdin --always --format=%s\n>\n> That yields:\n>\n>   one\n>   one\n>\n> on v2.0.3, but merging in jk/alloc-commit-id yields:\n>\n>   two\n>   one\n>\n> -Peff\n\nThanks for digging into it, Jeff. I should have tried it against 2.1.0\nmyself. I've run my entire matrix of tests now against 2.1.0-rc0 and\nthe diff-tree bug appears fixed on that tag. I noticed a different\nchange, though:\n\nbturner@ubuntu:~/tmp/test$ /opt/git/2.1.0-rc0/bin/git check-ref-format\nref/with/trailing/dot.\nbturner@ubuntu:~/tmp/test$ echo $?\n0\nbturner@ubuntu:~/tmp/test$ /opt/git/2.0.3/bin/git check-ref-format\nref/with/trailing/dot.\nbturner@ubuntu:~/tmp/test$ echo $?\n1\n\nIt looks like refs ending in a dot are now legal in 2.1.0? Is that\nintentional? A quick git bisect is fingering:\nbturner@ubuntu:~/Development/oss/git/git$ git bisect bad\n745224e04a03e4544c58d5d38d3c54f67100f8eb is the first bad commit\ncommit 745224e04a03e4544c58d5d38d3c54f67100f8eb\nAuthor: David Turner <dturner@twopensource.com>\nDate:   Wed Jun 18 01:54:42 2014 -0400\n\nBest regards,\nBryan Turner\n"},{"id":"246804","messageId":"xmqqy4vd4ht3.fsf@gitster.dls.corp.google.com","threadId":"37222","inReplyTo":"CAGyf7-GVz8ME0Mq_DyHCSFCx5KN6qLGEgtgMSv2NkKb9AGEGdg@mail.gmail.com","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-07-28T15:35:52Z","receivedAt":"2014-07-28T15:35:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Bryan Turner <bturner@atlassian.com> writes:\n\n> It looks like refs ending in a dot are now legal in 2.1.0? Is that\n> intentional? A quick git bisect is fingering:\n> bturner@ubuntu:~/Development/oss/git/git$ git bisect bad\n> 745224e04a03e4544c58d5d38d3c54f67100f8eb is the first bad commit\n> commit 745224e04a03e4544c58d5d38d3c54f67100f8eb\n> Author: David Turner <dturner@twopensource.com>\n> Date:   Wed Jun 18 01:54:42 2014 -0400\n\nThanks for a report.\n\nI am tempted to revert that series; it already caused \"oops, this\nneeds a further fix\" before it hit 'master' at least once, and we do\nnot want any more headaches at this point in the release cycle.\n"},{"id":"246805","messageId":"20140728154810.GA28576@peff.net","threadId":"37222","inReplyTo":"xmqqy4vd4ht3.fsf@gitster.dls.corp.google.com","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-07-28T15:48:11Z","receivedAt":"2014-07-28T15:48:11Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Jul 28, 2014 at 08:35:52AM -0700, Junio C Hamano wrote:\n\n> I am tempted to revert that series; it already caused \"oops, this\n> needs a further fix\" before it hit 'master' at least once, and we do\n> not want any more headaches at this point in the release cycle.\n\nYeah, that sounds reasonable to me. I'm a little doubtful of its value\n(and maintainability) at all, but certainly I do not think it would be a\nbig deal to push it off for one more cycle if David wants to rework it.\n\nIf you do revert it, we may want a test like below. That will make sure\nthe case is covered for future attempts.\n\n-- >8 --\nSubject: [PATCH] t1402: check for refs ending with a dot\n\nThis has been illegal since cbdffe4 (check_ref_format():\ntighten refname rules, 2009-03-21), but we never tested it.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n t/t1402-check-ref-format.sh | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/t/t1402-check-ref-format.sh b/t/t1402-check-ref-format.sh\nindex 9aeb352..8d2f75f 100755\n--- a/t/t1402-check-ref-format.sh\n+++ b/t/t1402-check-ref-format.sh\n@@ -48,6 +48,7 @@ invalid_ref './foo/bar'\n invalid_ref 'foo/./bar'\n invalid_ref 'foo/bar/.'\n invalid_ref '.refs/foo'\n+invalid_ref 'refs/heads/foo.'\n invalid_ref 'heads/foo..bar'\n invalid_ref 'heads/foo?bar'\n valid_ref 'foo./bar'\n-- \n2.0.0.566.gfe3e6b2\n"},{"id":"246807","messageId":"xmqqtx614cea.fsf@gitster.dls.corp.google.com","threadId":"37222","inReplyTo":"20140728103504.GB10737@peff.net","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-07-28T17:32:45Z","receivedAt":"2014-07-28T17:32:45Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Mon, Jul 28, 2014 at 07:42:16PM +1000, Bryan Turner wrote:\n>\n>> Running a git bisect between v2.0.1, which does not manifest this\n>> issue, and v2.0.2 fingers the following commit:\n>> bturner@ubuntu:~/Development/oss/git/git$ git bisect bad\n>> c1b3c71f4b4571abb2b2a457122fd100dc9f7eb0 is the first bad commit\n>> commit c1b3c71f4b4571abb2b2a457122fd100dc9f7eb0\n>> Author: Jeff King <peff@peff.net>\n>> Date:   Tue Jun 10 17:43:02 2014 -0400\n>> \n>>     commit: convert commit->buffer to a slab\n>\n> I haven't reproduced here yet, but this is almost certainly the bug\n> where lookup_unknown_object causes a bogus commit->index field (and\n> prior to the commit you found, diff-tree did not use commit->index).\n>\n> The series that Junio has in jk/alloc-commit-id should fix the problem\n> (it's in master already, and slated for v2.1.0).\n>\n> Junio, we should consider a v2.0.4 with that series, I think. This is a\n> pretty serious regression in diff-tree (I didn't even realize that the\n> buffer-slab work went into the maint series; that may have been a little\n> ambitious).\n\nOr v2.0.4 without that series, which is how we usually do things,\nbut let me see if jk/alloc-commit-id is easily applicable there\nfirst.\n\nThanks.\n"},{"id":"246808","messageId":"20140728173734.GA10309@peff.net","threadId":"37222","inReplyTo":"xmqqtx614cea.fsf@gitster.dls.corp.google.com","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-07-28T17:37:34Z","receivedAt":"2014-07-28T17:37:34Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Jul 28, 2014 at 10:32:45AM -0700, Junio C Hamano wrote:\n\n> > Junio, we should consider a v2.0.4 with that series, I think. This is a\n> > pretty serious regression in diff-tree (I didn't even realize that the\n> > buffer-slab work went into the maint series; that may have been a little\n> > ambitious).\n> \n> Or v2.0.4 without that series, which is how we usually do things,\n> but let me see if jk/alloc-commit-id is easily applicable there\n> first.\n\nYeah, I'm fine with a straight revert, too (I think it is fine to keep\nin master, though). I think jk/alloc-commit-id is built right on top of\nthe original commit-slab topic, so it should be easy to do either way.\n\nThanks for dealing with it.\n\n-Peff\n"},{"id":"246810","messageId":"20140728180157.GA11265@peff.net","threadId":"37222","inReplyTo":"20140728173734.GA10309@peff.net","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-07-28T18:01:57Z","receivedAt":"2014-07-28T18:01:57Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Jul 28, 2014 at 01:37:34PM -0400, Jeff King wrote:\n\n> On Mon, Jul 28, 2014 at 10:32:45AM -0700, Junio C Hamano wrote:\n> \n> > > Junio, we should consider a v2.0.4 with that series, I think. This is a\n> > > pretty serious regression in diff-tree (I didn't even realize that the\n> > > buffer-slab work went into the maint series; that may have been a little\n> > > ambitious).\n> > \n> > Or v2.0.4 without that series, which is how we usually do things,\n> > but let me see if jk/alloc-commit-id is easily applicable there\n> > first.\n> \n> Yeah, I'm fine with a straight revert, too (I think it is fine to keep\n> in master, though). I think jk/alloc-commit-id is built right on top of\n> the original commit-slab topic, so it should be easy to do either way.\n> \n> Thanks for dealing with it.\n\nWhatever we do, perhaps it is worth applying the test below on top?\n\n-- >8 --\nSubject: t4013: test diff-tree's --stdin commit formatting\n\nOnce upon a time, git-log was just \"rev-list | diff-tree\",\nand we did not bother to test it separately. These days git-log\nis implemented internally, but we want to make sure that the\nrev-list to diff-tree pipeline continues to function. Let's\nadd a basic sanity test.\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n t/t4013-diff-various.sh | 10 ++++++++++\n 1 file changed, 10 insertions(+)\n\ndiff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh\nindex 805b055..6ec6072 100755\n--- a/t/t4013-diff-various.sh\n+++ b/t/t4013-diff-various.sh\n@@ -324,4 +324,14 @@ test_expect_success 'diff --cached -- file on unborn branch' '\n \ttest_cmp \"$TEST_DIRECTORY/t4013/diff.diff_--cached_--_file0\" result\n '\n \n+test_expect_success 'diff-tree --stdin with log formatting' '\n+\tcat >expect <<-\\EOF &&\n+\tSide\n+\tThird\n+\tSecond\n+\tEOF\n+\tgit rev-list master | git diff-tree --stdin --format=%s -s >actual &&\n+\ttest_cmp expect actual\n+'\n+\n test_done\n-- \n2.0.0.566.gfe3e6b2\n"},{"id":"246811","messageId":"xmqqppgp4a7x.fsf@gitster.dls.corp.google.com","threadId":"37222","inReplyTo":"20140728180157.GA11265@peff.net","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-07-28T18:19:46Z","receivedAt":"2014-07-28T18:19:46Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> On Mon, Jul 28, 2014 at 01:37:34PM -0400, Jeff King wrote:\n>\n>> On Mon, Jul 28, 2014 at 10:32:45AM -0700, Junio C Hamano wrote:\n>> \n>> > > Junio, we should consider a v2.0.4 with that series, I think. This is a\n>> > > pretty serious regression in diff-tree (I didn't even realize that the\n>> > > buffer-slab work went into the maint series; that may have been a little\n>> > > ambitious).\n>> > \n>> > Or v2.0.4 without that series, which is how we usually do things,\n>> > but let me see if jk/alloc-commit-id is easily applicable there\n>> > first.\n>> \n>> Yeah, I'm fine with a straight revert, too (I think it is fine to keep\n>> in master, though). I think jk/alloc-commit-id is built right on top of\n>> the original commit-slab topic, so it should be easy to do either way.\n>> \n>> Thanks for dealing with it.\n>\n> Whatever we do, perhaps it is worth applying the test below on top?\n\nYeah, thanks.  I think that is a good idea.  I was preparing a patch\nto tuck your minimum reproduction at the end of 4202, but your version\nand placement makes good sense.\n\n> -- >8 --\n> Subject: t4013: test diff-tree's --stdin commit formatting\n>\n> Once upon a time, git-log was just \"rev-list | diff-tree\",\n> and we did not bother to test it separately. These days git-log\n> is implemented internally, but we want to make sure that the\n> rev-list to diff-tree pipeline continues to function. Let's\n> add a basic sanity test.\n>\n> Signed-off-by: Jeff King <peff@peff.net>\n> ---\n>  t/t4013-diff-various.sh | 10 ++++++++++\n>  1 file changed, 10 insertions(+)\n>\n> diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh\n> index 805b055..6ec6072 100755\n> --- a/t/t4013-diff-various.sh\n> +++ b/t/t4013-diff-various.sh\n> @@ -324,4 +324,14 @@ test_expect_success 'diff --cached -- file on unborn branch' '\n>  \ttest_cmp \"$TEST_DIRECTORY/t4013/diff.diff_--cached_--_file0\" result\n>  '\n>  \n> +test_expect_success 'diff-tree --stdin with log formatting' '\n> +\tcat >expect <<-\\EOF &&\n> +\tSide\n> +\tThird\n> +\tSecond\n> +\tEOF\n> +\tgit rev-list master | git diff-tree --stdin --format=%s -s >actual &&\n> +\ttest_cmp expect actual\n> +'\n> +\n>  test_done\n"},{"id":"246865","messageId":"xmqqegx53txe.fsf@gitster.dls.corp.google.com","threadId":"37222","inReplyTo":"xmqqppgp4a7x.fsf@gitster.dls.corp.google.com","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-07-29T00:11:41Z","receivedAt":"2014-07-29T00:11:41Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n>>> Yeah, I'm fine with a straight revert, too (I think it is fine to keep\n>>> in master, though). I think jk/alloc-commit-id is built right on top of\n>>> the original commit-slab topic, so it should be easy to do either way.\n>>> \n>>> Thanks for dealing with it.\n>>\n>> Whatever we do, perhaps it is worth applying the test below on top?\n>\n> Yeah, thanks.  I think that is a good idea.  I was preparing a patch\n> to tuck your minimum reproduction at the end of 4202, but your version\n> and placement makes good sense.\n\nOK, I pushed out updated 'maint' and 'master'.  The former merges\na rebased version of jk/alloc-commit-id in to make the \"reorganize\nthe way we manage the in-core commit data\" topic, and the latter\nreverts the \"Use SSE to micro-optimize a leaf function to check the\nformat of a ref string\".\n\nPlease give them some quick sanity check.\n\nThanks.\n"},{"id":"246868","messageId":"CAGyf7-HK74YuqhrRDJ46qti17UNAd6Bp6if4y+ZwUV_PZs2ujQ@mail.gmail.com","threadId":"37222","inReplyTo":"xmqqegx53txe.fsf@gitster.dls.corp.google.com","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Bryan Turner","fromEmail":"bturner@atlassian.com","sentAt":"2014-07-29T01:06:25Z","receivedAt":"2014-07-29T01:06:25Z","isPatch":false,"sender":{"key":"bturner@atlassian.com","avatar":"https://gravatar.com/avatar/16bcf3167981c1ef7c804e502642366d888a35b0d0b0a4ca01fdc442aa1acb1e?d=mp&s=160"},"body":"On Tue, Jul 29, 2014 at 10:11 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> Junio C Hamano <gitster@pobox.com> writes:\n>\n>>>> Yeah, I'm fine with a straight revert, too (I think it is fine to keep\n>>>> in master, though). I think jk/alloc-commit-id is built right on top of\n>>>> the original commit-slab topic, so it should be easy to do either way.\n>>>>\n>>>> Thanks for dealing with it.\n>>>\n>>> Whatever we do, perhaps it is worth applying the test below on top?\n>>\n>> Yeah, thanks.  I think that is a good idea.  I was preparing a patch\n>> to tuck your minimum reproduction at the end of 4202, but your version\n>> and placement makes good sense.\n>\n> OK, I pushed out updated 'maint' and 'master'.  The former merges\n> a rebased version of jk/alloc-commit-id in to make the \"reorganize\n> the way we manage the in-core commit data\" topic, and the latter\n> reverts the \"Use SSE to micro-optimize a leaf function to check the\n> format of a ref string\".\n>\n> Please give them some quick sanity check.\n>\n> Thanks.\n\nThanks both of you; I appreciate your efforts! I've run my suite of\ntests against the tips of master and maint and all 681 pass for each.\nLooks good to me.\n\nBest regards,\nBryan Turner\n"},{"id":"246878","messageId":"20140729075454.GA4114@peff.net","threadId":"37222","inReplyTo":"CAGyf7-HK74YuqhrRDJ46qti17UNAd6Bp6if4y+ZwUV_PZs2ujQ@mail.gmail.com","subject":"Re: git diff-tree commit detail bug in 2.0.2 and 2.0.3","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2014-07-29T07:54:54Z","receivedAt":"2014-07-29T07:54:54Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Jul 29, 2014 at 11:06:25AM +1000, Bryan Turner wrote:\n\n> On Tue, Jul 29, 2014 at 10:11 AM, Junio C Hamano <gitster@pobox.com> wrote:\n>\n> > OK, I pushed out updated 'maint' and 'master'.  The former merges\n> > a rebased version of jk/alloc-commit-id in to make the \"reorganize\n> > the way we manage the in-core commit data\" topic, and the latter\n> > reverts the \"Use SSE to micro-optimize a leaf function to check the\n> > format of a ref string\".\n> >\n> > Please give them some quick sanity check.\n\nThey both look OK to me.\n\n> Thanks both of you; I appreciate your efforts! I've run my suite of\n> tests against the tips of master and maint and all 681 pass for each.\n> Looks good to me.\n\nSo what suite of tests is this? Is it worth getting you to fold it into\nour regular test suite? :)\n\n-Peff\n"}]}