{"thread":{"id":"33623","subject":"[PATCH 1/2] t/Makefile: fix result handling with TEST_OUTPUT_DIRECTORY","startedAt":"2013-04-26T18:55:52Z","lastAt":"2013-04-29T18:27:22Z","messageCount":7,"participants":["John Keeping","Thomas Rast","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"215614","messageId":"7c0618f3fa7f68b963bf483f1e97afed835bdb74.1367002553.git.john@keeping.me.uk","threadId":"33623","inReplyTo":null,"subject":"[PATCH 1/2] t/Makefile: fix result handling with TEST_OUTPUT_DIRECTORY","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-04-26T18:55:52Z","receivedAt":"2013-04-26T18:55:52Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"When TEST_OUTPUT_DIRECTORY is set, the test results will be generated in\n\"$TEST_OUTPUT_DIRECTORY/test-results\", which may not be the same as\n\"test-results\" in t/Makefile.  This causes the aggregate-results target\nto fail as it finds no count files.\n\nFix this by introducing TEST_RESULTS_DIRECTORY and using it wherever\ntest-results is referenced.\n\nSigned-off-by: John Keeping <john@keeping.me.uk>\n---\n t/Makefile | 13 ++++++++++---\n 1 file changed, 10 insertions(+), 3 deletions(-)\n\ndiff --git a/t/Makefile b/t/Makefile\nindex 44ca7d3..0e1408d 100644\n--- a/t/Makefile\n+++ b/t/Makefile\n@@ -15,9 +15,16 @@ PROVE ?= prove\n DEFAULT_TEST_TARGET ?= test\n TEST_LINT ?= test-lint-duplicates test-lint-executable\n \n+ifdef TEST_OUTPUT_DIRECTORY\n+TEST_RESULTS_DIRECTORY = $(TEST_RESULTS_DIRECTORY)/test-results\n+else\n+TEST_RESULTS_DIRECTORY = test-results\n+endif\n+\n # Shell quote;\n SHELL_PATH_SQ = $(subst ','\\'',$(SHELL_PATH))\n PERL_PATH_SQ = $(subst ','\\'',$(PERL_PATH))\n+TEST_RESULTS_DIRECTORY_SQ = $(subst ','\\'',$(TEST_RESULTS_DIRECTORY))\n \n T = $(sort $(wildcard t[0-9][0-9][0-9][0-9]-*.sh))\n TSVN = $(sort $(wildcard t91[0-9][0-9]-*.sh))\n@@ -36,10 +43,10 @@ $(T):\n \t@echo \"*** $@ ***\"; GIT_CONFIG=.git/config '$(SHELL_PATH_SQ)' $@ $(GIT_TEST_OPTS)\n \n pre-clean:\n-\t$(RM) -r test-results\n+\t$(RM) -r '$(TEST_RESULTS_DIRECTORY_SQ)'\n \n clean-except-prove-cache:\n-\t$(RM) -r 'trash directory'.* test-results\n+\t$(RM) -r 'trash directory'.* '$(TEST_RESULTS_DIRECTORY_SQ)'\n \t$(RM) -r valgrind/bin\n \n clean: clean-except-prove-cache\n@@ -65,7 +72,7 @@ aggregate-results-and-cleanup: $(T)\n \t$(MAKE) clean\n \n aggregate-results:\n-\tfor f in test-results/t*-*.counts; do \\\n+\tfor f in '$(TEST_RESULTS_DIRECTORY_SQ)'/t*-*.counts; do \\\n \t\techo \"$$f\"; \\\n \tdone | '$(SHELL_PATH_SQ)' ./aggregate-results.sh\n \n-- \n1.8.2.1.715.gb260f47\n"},{"id":"215615","messageId":"47c9ba4200a22e865040208628357d9bc4bcf3f4.1367002553.git.john@keeping.me.uk","threadId":"33623","inReplyTo":"7c0618f3fa7f68b963bf483f1e97afed835bdb74.1367002553.git.john@keeping.me.uk","subject":"[PATCH 2/2] test output: respect $TEST_OUTPUT_DIRECTORY","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-04-26T18:55:53Z","receivedAt":"2013-04-26T18:55:53Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"Most test results go in $TEST_OUTPUT_DIRECTORY, but the output files for\ntests run with --tee or --valgrind just use bare \"test-results\".\nChanges these so that they do respect $TEST_OUTPUT_DIRECTORY.\n\nAs a result of this, the valgrind/analyze.sh script may no longer\ninspect the correct files so it is also updated to respect\n$TEST_OUTPUT_DIRECTORY by adding it to GIT-BUILD-OPTIONS.  This may be a\nregression for people who have TEST_OUTPUT_DIRECTORY in their config.mak\nbut want to override it in the environment, but this change merely\nbrings it into line with GIT_TEST_OPTS which already cannot be\noverridden if it is specified in config.mak.\n\nSigned-off-by: John Keeping <john@keeping.me.uk>\n---\n Makefile              | 3 +++\n t/test-lib.sh         | 4 ++--\n t/valgrind/analyze.sh | 8 ++++++--\n 3 files changed, 11 insertions(+), 4 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 90661a2..d4d95fa 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -2166,6 +2166,9 @@ GIT-BUILD-OPTIONS: FORCE\n \t@echo NO_PERL=\\''$(subst ','\\'',$(subst ','\\'',$(NO_PERL)))'\\' >>$@\n \t@echo NO_PYTHON=\\''$(subst ','\\'',$(subst ','\\'',$(NO_PYTHON)))'\\' >>$@\n \t@echo NO_UNIX_SOCKETS=\\''$(subst ','\\'',$(subst ','\\'',$(NO_UNIX_SOCKETS)))'\\' >>$@\n+ifdef TEST_OUTPUT_DIRECTORY\n+\t@echo TEST_OUTPUT_DIRECTORY=\\''$(subst ','\\'',$(subst ','\\'',$(TEST_OUTPUT_DIRECTORY)))'\\' >>$@\n+endif\n ifdef GIT_TEST_OPTS\n \t@echo GIT_TEST_OPTS=\\''$(subst ','\\'',$(subst ','\\'',$(GIT_TEST_OPTS)))'\\' >>$@\n endif\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex ca6bdef..70ad085 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -54,8 +54,8 @@ done,*)\n \t# do not redirect again\n \t;;\n *' --tee '*|*' --va'*)\n-\tmkdir -p test-results\n-\tBASE=test-results/$(basename \"$0\" .sh)\n+\tmkdir -p \"$(TEST_OUTPUT_DIRECTORY)/test-results\"\n+\tBASE=\"$(TEST_OUTPUT_DIRECTORY)/test-results/$(basename \"$0\" .sh)\"\n \t(GIT_TEST_TEE_STARTED=done ${SHELL_PATH} \"$0\" \"$@\" 2>&1;\n \t echo $? > $BASE.exit) | tee $BASE.out\n \ttest \"$(cat $BASE.exit)\" = 0\ndiff --git a/t/valgrind/analyze.sh b/t/valgrind/analyze.sh\nindex d8105d9..7b58f01 100755\n--- a/t/valgrind/analyze.sh\n+++ b/t/valgrind/analyze.sh\n@@ -1,6 +1,10 @@\n #!/bin/sh\n \n-out_prefix=$(dirname \"$0\")/../test-results/valgrind.out\n+# Get TEST_OUTPUT_DIRECTORY from GIT-BUILD-OPTIONS if it's there...\n+. \"$(dirname \"$0\")/../../GIT-BUILD-OPTIONS\"\n+# ... otherwise set it to the default value.\n+: ${TEST_OUTPUT_DIRECTORY=$(dirname \"$0\")/..}\n+\n output=\n count=0\n total_count=0\n@@ -115,7 +119,7 @@ handle_one () {\n \tfinish_output\n }\n \n-for test_script in \"$(dirname \"$0\")\"/../test-results/*.out\n+for test_script in \"$(TEST_OUTPUT_DIRECTORY)\"/test-results/*.out\n do\n \thandle_one $test_script\n done\n-- \n1.8.2.1.715.gb260f47\n"},{"id":"215885","messageId":"87fvy9dxok.fsf@hexa.v.cablecom.net","threadId":"33623","inReplyTo":"47c9ba4200a22e865040208628357d9bc4bcf3f4.1367002553.git.john@keeping.me.uk","subject":"Re: [PATCH 2/2] test output: respect $TEST_OUTPUT_DIRECTORY","fromName":"Thomas Rast","fromEmail":"trast@inf.ethz.ch","sentAt":"2013-04-29T18:00:27Z","receivedAt":"2013-04-29T18:00:27Z","isPatch":true,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"John Keeping <john@keeping.me.uk> writes:\n> diff --git a/t/test-lib.sh b/t/test-lib.sh\n> index ca6bdef..70ad085 100644\n> --- a/t/test-lib.sh\n> +++ b/t/test-lib.sh\n> @@ -54,8 +54,8 @@ done,*)\n>  \t# do not redirect again\n>  \t;;\n>  *' --tee '*|*' --va'*)\n> -\tmkdir -p test-results\n> -\tBASE=test-results/$(basename \"$0\" .sh)\n> +\tmkdir -p \"$(TEST_OUTPUT_DIRECTORY)/test-results\"\n> +\tBASE=\"$(TEST_OUTPUT_DIRECTORY)/test-results/$(basename \"$0\" .sh)\"\n>  \t(GIT_TEST_TEE_STARTED=done ${SHELL_PATH} \"$0\" \"$@\" 2>&1;\n>  \t echo $? > $BASE.exit) | tee $BASE.out\n>  \ttest \"$(cat $BASE.exit)\" = 0\n\nHmm, I initially was too lazy to review this change, and now it's biting\nme.  The above is Makefile-quoted, which to the shell reads like a\ncommand substitution.\n\n-- \nThomas Rast\ntrast@{inf,student}.ethz.ch\n"},{"id":"215890","messageId":"20130429181621.GL472@serenity.lan","threadId":"33623","inReplyTo":"87fvy9dxok.fsf@hexa.v.cablecom.net","subject":"[PATCH 2/2 v2] test output: respect $TEST_OUTPUT_DIRECTORY","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-04-29T18:16:21Z","receivedAt":"2013-04-29T18:16:21Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"Most test results go in $TEST_OUTPUT_DIRECTORY, but the output files for\ntests run with --tee or --valgrind just use bare \"test-results\".\nChanges these so that they do respect $TEST_OUTPUT_DIRECTORY.\n\nAs a result of this, the valgrind/analyze.sh script may no longer\ninspect the correct files so it is also updated to respect\n$TEST_OUTPUT_DIRECTORY by adding it to GIT-BUILD-OPTIONS.  This may be a\nregression for people who have TEST_OUTPUT_DIRECTORY in their config.mak\nbut want to override it in the environment, but this change merely\nbrings it into line with GIT_TEST_OPTS which already cannot be\noverridden if it is specified in config.mak.\n\nSigned-off-by: John Keeping <john@keeping.me.uk>\n---\nOn Mon, Apr 29, 2013 at 08:00:27PM +0200, Thomas Rast wrote:\n> John Keeping <john@keeping.me.uk> writes:\n> > diff --git a/t/test-lib.sh b/t/test-lib.sh\n> > index ca6bdef..70ad085 100644\n> > --- a/t/test-lib.sh\n> > +++ b/t/test-lib.sh\n> > @@ -54,8 +54,8 @@ done,*)\n> >  \t# do not redirect again\n> >  \t;;\n> >  *' --tee '*|*' --va'*)\n> > -\tmkdir -p test-results\n> > -\tBASE=test-results/$(basename \"$0\" .sh)\n> > +\tmkdir -p \"$(TEST_OUTPUT_DIRECTORY)/test-results\"\n> > +\tBASE=\"$(TEST_OUTPUT_DIRECTORY)/test-results/$(basename \"$0\" .sh)\"\n> >  \t(GIT_TEST_TEE_STARTED=done ${SHELL_PATH} \"$0\" \"$@\" 2>&1;\n> >  \t echo $? > $BASE.exit) | tee $BASE.out\n> >  \ttest \"$(cat $BASE.exit)\" = 0\n> \n> Hmm, I initially was too lazy to review this change, and now it's biting\n> me.  The above is Makefile-quoted, which to the shell reads like a\n> command substitution.\n\nYeah, that's completely wrong - clearly it was too late on Friday\nevening when I wrote this.  There was another case of the same in\nt/valgrind/analyze.sh.\n\nAll fixed in this version.\n\n Makefile              | 3 +++\n t/test-lib.sh         | 4 ++--\n t/valgrind/analyze.sh | 8 ++++++--\n 3 files changed, 11 insertions(+), 4 deletions(-)\n\ndiff --git a/Makefile b/Makefile\nindex 598d631..ef5be0f 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -2153,6 +2153,9 @@ GIT-BUILD-OPTIONS: FORCE\n \t@echo NO_PERL=\\''$(subst ','\\'',$(subst ','\\'',$(NO_PERL)))'\\' >>$@\n \t@echo NO_PYTHON=\\''$(subst ','\\'',$(subst ','\\'',$(NO_PYTHON)))'\\' >>$@\n \t@echo NO_UNIX_SOCKETS=\\''$(subst ','\\'',$(subst ','\\'',$(NO_UNIX_SOCKETS)))'\\' >>$@\n+ifdef TEST_OUTPUT_DIRECTORY\n+\t@echo TEST_OUTPUT_DIRECTORY=\\''$(subst ','\\'',$(subst ','\\'',$(TEST_OUTPUT_DIRECTORY)))'\\' >>$@\n+endif\n ifdef GIT_TEST_OPTS\n \t@echo GIT_TEST_OPTS=\\''$(subst ','\\'',$(subst ','\\'',$(GIT_TEST_OPTS)))'\\' >>$@\n endif\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex 657b0bd..e7d169c 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -54,8 +54,8 @@ done,*)\n \t# do not redirect again\n \t;;\n *' --tee '*|*' --va'*)\n-\tmkdir -p test-results\n-\tBASE=test-results/$(basename \"$0\" .sh)\n+\tmkdir -p \"$TEST_OUTPUT_DIRECTORY/test-results\"\n+\tBASE=\"$TEST_OUTPUT_DIRECTORY/test-results/$(basename \"$0\" .sh)\"\n \t(GIT_TEST_TEE_STARTED=done ${SHELL_PATH} \"$0\" \"$@\" 2>&1;\n \t echo $? > $BASE.exit) | tee $BASE.out\n \ttest \"$(cat $BASE.exit)\" = 0\ndiff --git a/t/valgrind/analyze.sh b/t/valgrind/analyze.sh\nindex d8105d9..2ffc80f 100755\n--- a/t/valgrind/analyze.sh\n+++ b/t/valgrind/analyze.sh\n@@ -1,6 +1,10 @@\n #!/bin/sh\n \n-out_prefix=$(dirname \"$0\")/../test-results/valgrind.out\n+# Get TEST_OUTPUT_DIRECTORY from GIT-BUILD-OPTIONS if it's there...\n+. \"$(dirname \"$0\")/../../GIT-BUILD-OPTIONS\"\n+# ... otherwise set it to the default value.\n+: ${TEST_OUTPUT_DIRECTORY=$(dirname \"$0\")/..}\n+\n output=\n count=0\n total_count=0\n@@ -115,7 +119,7 @@ handle_one () {\n \tfinish_output\n }\n \n-for test_script in \"$(dirname \"$0\")\"/../test-results/*.out\n+for test_script in \"$TEST_OUTPUT_DIRECTORY\"/test-results/*.out\n do\n \thandle_one $test_script\n done\n-- \n1.8.3.rc0.149.g98a72f2.dirty\n"},{"id":"215891","messageId":"7vwqrli4mb.fsf@alter.siamese.dyndns.org","threadId":"33623","inReplyTo":"87fvy9dxok.fsf@hexa.v.cablecom.net","subject":"Re: [PATCH 2/2] test output: respect $TEST_OUTPUT_DIRECTORY","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-04-29T18:17:00Z","receivedAt":"2013-04-29T18:17:00Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thomas Rast <trast@inf.ethz.ch> writes:\n\n> John Keeping <john@keeping.me.uk> writes:\n>> diff --git a/t/test-lib.sh b/t/test-lib.sh\n>> index ca6bdef..70ad085 100644\n>> --- a/t/test-lib.sh\n>> +++ b/t/test-lib.sh\n>> @@ -54,8 +54,8 @@ done,*)\n>>  \t# do not redirect again\n>>  \t;;\n>>  *' --tee '*|*' --va'*)\n>> -\tmkdir -p test-results\n>> -\tBASE=test-results/$(basename \"$0\" .sh)\n>> +\tmkdir -p \"$(TEST_OUTPUT_DIRECTORY)/test-results\"\n>> +\tBASE=\"$(TEST_OUTPUT_DIRECTORY)/test-results/$(basename \"$0\" .sh)\"\n>>  \t(GIT_TEST_TEE_STARTED=done ${SHELL_PATH} \"$0\" \"$@\" 2>&1;\n>>  \t echo $? > $BASE.exit) | tee $BASE.out\n>>  \ttest \"$(cat $BASE.exit)\" = 0\n>\n> Hmm, I initially was too lazy to review this change, and now it's biting\n> me.  The above is Makefile-quoted, which to the shell reads like a\n> command substitution.\n\nHeh, when I let my eyes coast over it I didn't notice them either.\nEverything in that patch is bad.\n\nThis squashed in?\n\n t/test-lib.sh         | 4 ++--\n t/valgrind/analyze.sh | 2 +-\n 2 files changed, 3 insertions(+), 3 deletions(-)\n\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex 1b1e843..e7d169c 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -54,8 +54,8 @@ done,*)\n \t# do not redirect again\n \t;;\n *' --tee '*|*' --va'*)\n-\tmkdir -p \"$(TEST_OUTPUT_DIRECTORY)/test-results\"\n-\tBASE=\"$(TEST_OUTPUT_DIRECTORY)/test-results/$(basename \"$0\" .sh)\"\n+\tmkdir -p \"$TEST_OUTPUT_DIRECTORY/test-results\"\n+\tBASE=\"$TEST_OUTPUT_DIRECTORY/test-results/$(basename \"$0\" .sh)\"\n \t(GIT_TEST_TEE_STARTED=done ${SHELL_PATH} \"$0\" \"$@\" 2>&1;\n \t echo $? > $BASE.exit) | tee $BASE.out\n \ttest \"$(cat $BASE.exit)\" = 0\ndiff --git a/t/valgrind/analyze.sh b/t/valgrind/analyze.sh\nindex 7b58f01..2ffc80f 100755\n--- a/t/valgrind/analyze.sh\n+++ b/t/valgrind/analyze.sh\n@@ -119,7 +119,7 @@ handle_one () {\n \tfinish_output\n }\n \n-for test_script in \"$(TEST_OUTPUT_DIRECTORY)\"/test-results/*.out\n+for test_script in \"$TEST_OUTPUT_DIRECTORY\"/test-results/*.out\n do\n \thandle_one $test_script\n done\n"},{"id":"215893","messageId":"20130429181950.GM472@serenity.lan","threadId":"33623","inReplyTo":"7vwqrli4mb.fsf@alter.siamese.dyndns.org","subject":"Re: [PATCH 2/2] test output: respect $TEST_OUTPUT_DIRECTORY","fromName":"John Keeping","fromEmail":"john@keeping.me.uk","sentAt":"2013-04-29T18:19:50Z","receivedAt":"2013-04-29T18:19:50Z","isPatch":true,"sender":{"key":"john@keeping.me.uk","avatar":"https://avatars.githubusercontent.com/u/1702081?v=4"},"body":"On Mon, Apr 29, 2013 at 11:17:00AM -0700, Junio C Hamano wrote:\n> Thomas Rast <trast@inf.ethz.ch> writes:\n> \n> > John Keeping <john@keeping.me.uk> writes:\n> >> diff --git a/t/test-lib.sh b/t/test-lib.sh\n> >> index ca6bdef..70ad085 100644\n> >> --- a/t/test-lib.sh\n> >> +++ b/t/test-lib.sh\n> >> @@ -54,8 +54,8 @@ done,*)\n> >>  \t# do not redirect again\n> >>  \t;;\n> >>  *' --tee '*|*' --va'*)\n> >> -\tmkdir -p test-results\n> >> -\tBASE=test-results/$(basename \"$0\" .sh)\n> >> +\tmkdir -p \"$(TEST_OUTPUT_DIRECTORY)/test-results\"\n> >> +\tBASE=\"$(TEST_OUTPUT_DIRECTORY)/test-results/$(basename \"$0\" .sh)\"\n> >>  \t(GIT_TEST_TEE_STARTED=done ${SHELL_PATH} \"$0\" \"$@\" 2>&1;\n> >>  \t echo $? > $BASE.exit) | tee $BASE.out\n> >>  \ttest \"$(cat $BASE.exit)\" = 0\n> >\n> > Hmm, I initially was too lazy to review this change, and now it's biting\n> > me.  The above is Makefile-quoted, which to the shell reads like a\n> > command substitution.\n> \n> Heh, when I let my eyes coast over it I didn't notice them either.\n> Everything in that patch is bad.\n> \n> This squashed in?\n\nThis is identical to the interdiff of what I posted at the same time, so\nit obviously looks good to me.\n\n>  t/test-lib.sh         | 4 ++--\n>  t/valgrind/analyze.sh | 2 +-\n>  2 files changed, 3 insertions(+), 3 deletions(-)\n> \n> diff --git a/t/test-lib.sh b/t/test-lib.sh\n> index 1b1e843..e7d169c 100644\n> --- a/t/test-lib.sh\n> +++ b/t/test-lib.sh\n> @@ -54,8 +54,8 @@ done,*)\n>  \t# do not redirect again\n>  \t;;\n>  *' --tee '*|*' --va'*)\n> -\tmkdir -p \"$(TEST_OUTPUT_DIRECTORY)/test-results\"\n> -\tBASE=\"$(TEST_OUTPUT_DIRECTORY)/test-results/$(basename \"$0\" .sh)\"\n> +\tmkdir -p \"$TEST_OUTPUT_DIRECTORY/test-results\"\n> +\tBASE=\"$TEST_OUTPUT_DIRECTORY/test-results/$(basename \"$0\" .sh)\"\n>  \t(GIT_TEST_TEE_STARTED=done ${SHELL_PATH} \"$0\" \"$@\" 2>&1;\n>  \t echo $? > $BASE.exit) | tee $BASE.out\n>  \ttest \"$(cat $BASE.exit)\" = 0\n> diff --git a/t/valgrind/analyze.sh b/t/valgrind/analyze.sh\n> index 7b58f01..2ffc80f 100755\n> --- a/t/valgrind/analyze.sh\n> +++ b/t/valgrind/analyze.sh\n> @@ -119,7 +119,7 @@ handle_one () {\n>  \tfinish_output\n>  }\n>  \n> -for test_script in \"$(TEST_OUTPUT_DIRECTORY)\"/test-results/*.out\n> +for test_script in \"$TEST_OUTPUT_DIRECTORY\"/test-results/*.out\n>  do\n>  \thandle_one $test_script\n>  done\n"},{"id":"215896","messageId":"7vsj29i451.fsf@alter.siamese.dyndns.org","threadId":"33623","inReplyTo":"20130429181950.GM472@serenity.lan","subject":"Re: [PATCH 2/2] test output: respect $TEST_OUTPUT_DIRECTORY","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-04-29T18:27:22Z","receivedAt":"2013-04-29T18:27:22Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"John Keeping <john@keeping.me.uk> writes:\n\n> This is identical to the interdiff of what I posted at the same time, so\n> it obviously looks good to me.\n\nThanks.  I've replaced the old tip with your version.\n"}]}