{"thread":{"id":"32690","subject":"Build broken for contrib/remote-helpers...","startedAt":"2013-01-22T05:49:31Z","lastAt":"2013-01-22T22:22:22Z","messageCount":4,"participants":["John Szakmeister","Jeff King","Torsten Bögershausen","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"207472","messageId":"CAEBDL5U+Yrny-YgN1fZj1T+XTJRVaiFvMixT13Zzb2DhhYgQsA@mail.gmail.com","threadId":"32690","inReplyTo":null,"subject":"Build broken for contrib/remote-helpers...","fromName":"John Szakmeister","fromEmail":"john@szakmeister.net","sentAt":"2013-01-22T05:49:31Z","receivedAt":"2013-01-22T05:49:31Z","isPatch":false,"sender":{"key":"john@szakmeister.net","avatar":"https://avatars.githubusercontent.com/u/448087?v=4"},"body":"I tried running make in contrib/remote-helpers and it died with:\n\n    :: make\n    make -e -C ../../t test\n    rm -f -r test-results\n    duplicate test numbers: /Users/jszakmeister/sources/git\n    make[1]: *** [test-lint-duplicates] Error 1\n    make: *** [test] Error 2\n\nThe path shown is not quite correct.  I have the sources extracted to\n/Users/jszakmeister/sources/git-1.8.1.1.  It appears that the Makefile\nin contrib/remote-helpers is exporting T, which is causing the\nduplicate test detection to fail.\n\nThought you'd like to know!\n\n-John\n"},{"id":"207522","messageId":"20130122194135.GA23521@sigill.intra.peff.net","threadId":"32690","inReplyTo":"CAEBDL5U+Yrny-YgN1fZj1T+XTJRVaiFvMixT13Zzb2DhhYgQsA@mail.gmail.com","subject":"Re: Build broken for contrib/remote-helpers...","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2013-01-22T19:41:35Z","receivedAt":"2013-01-22T19:41:35Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Jan 22, 2013 at 12:49:31AM -0500, John Szakmeister wrote:\n\n> I tried running make in contrib/remote-helpers and it died with:\n> \n>     :: make\n>     make -e -C ../../t test\n>     rm -f -r test-results\n>     duplicate test numbers: /Users/jszakmeister/sources/git\n>     make[1]: *** [test-lint-duplicates] Error 1\n>     make: *** [test] Error 2\n> \n> The path shown is not quite correct.  I have the sources extracted to\n> /Users/jszakmeister/sources/git-1.8.1.1.  It appears that the Makefile\n> in contrib/remote-helpers is exporting T, which is causing the\n> duplicate test detection to fail.\n\nIt has to set T, because that is how t/Makefile knows what the set of\ntests is. The problem is that test-lint-duplicates does not understand\nabsolute pathnames, as its regex is too simplistic:\n\n  sed 's/-.*//' | sort | uniq -d\n\nSo it finds whatever is before the first \"-\", which would be the test\nnumber in \"t0000-basic.sh\" or similar, and then looks for duplicates.\n\nWe can make the regex more strict to handle full paths, like:\n\n  perl -lne 'print $1 if m{(?:^|/)(t\\d{4})-}'\n\nbut that still would not help, as the tests in remote-helpers do not\nfollow the tXXXX convention. So I think even running\ntest-lint-duplicates on them is nonsensical.\n\nMaybe something like this would be more appropriate, though it kills off\nall test-lint checks, not just test-lint-duplicates:\n\ndiff --git a/contrib/remote-helpers/Makefile b/contrib/remote-helpers/Makefile\nindex 9a76575..9c18ed8 100644\n--- a/contrib/remote-helpers/Makefile\n+++ b/contrib/remote-helpers/Makefile\n@@ -3,6 +3,7 @@ export PATH := $(CURDIR):$(PATH)\n export T := $(addprefix $(CURDIR)/,$(TESTS))\n export MAKE := $(MAKE) -e\n export PATH := $(CURDIR):$(PATH)\n+export TEST_LINT :=\n \n test:\n \t$(MAKE) -C ../../t $@\n"},{"id":"207525","messageId":"50FEFCD7.2060402@web.de","threadId":"32690","inReplyTo":"20130122194135.GA23521@sigill.intra.peff.net","subject":"Re: Build broken for contrib/remote-helpers...","fromName":"Torsten Bögershausen","fromEmail":"tboegi@web.de","sentAt":"2013-01-22T20:55:51Z","receivedAt":"2013-01-22T20:55:51Z","isPatch":false,"sender":{"key":"tboegi@web.de","avatar":"https://avatars.githubusercontent.com/u/7138363?v=4"},"body":"On 22.01.13 20:41, Jeff King wrote:\n> On Tue, Jan 22, 2013 at 12:49:31AM -0500, John Szakmeister wrote:\n> \n>> I tried running make in contrib/remote-helpers and it died with:\n>>\n>>     :: make\n>>     make -e -C ../../t test\n>>     rm -f -r test-results\n>>     duplicate test numbers: /Users/jszakmeister/sources/git\n>>     make[1]: *** [test-lint-duplicates] Error 1\n>>     make: *** [test] Error 2\n>>\n>> The path shown is not quite correct.  I have the sources extracted to\n>> /Users/jszakmeister/sources/git-1.8.1.1.  It appears that the Makefile\n>> in contrib/remote-helpers is exporting T, which is causing the\n>> duplicate test detection to fail.\n> \n> It has to set T, because that is how t/Makefile knows what the set of\n> tests is. The problem is that test-lint-duplicates does not understand\n> absolute pathnames, as its regex is too simplistic:\n> \n>   sed 's/-.*//' | sort | uniq -d\n> \n> So it finds whatever is before the first \"-\", which would be the test\n> number in \"t0000-basic.sh\" or similar, and then looks for duplicates.\n\nwould it help to filter for numbered tests before sorting like this:\n\nsed 's/-.*//' | grep \"[0-9][0-9][0-9][0-9]\"| sort | uniq -d\n"},{"id":"207532","messageId":"7vehhcn9i9.fsf@alter.siamese.dyndns.org","threadId":"32690","inReplyTo":"50FEFCD7.2060402@web.de","subject":"Re: Build broken for contrib/remote-helpers...","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-01-22T22:22:22Z","receivedAt":"2013-01-22T22:22:22Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Torsten Bögershausen <tboegi@web.de> writes:\n\n>> So it finds whatever is before the first \"-\", which would be the test\n>> number in \"t0000-basic.sh\" or similar, and then looks for duplicates.\n>\n> would it help to filter for numbered tests before sorting like this:\n>\n> sed 's/-.*//' | grep \"[0-9][0-9][0-9][0-9]\"| sort | uniq -d\n\nIf you are using sed you do not need grep.  Just do that in a single\nprocess, perhaps like\n\n\tsed -ne 's|\\(.*/\\)*t\\([0-9][0-9][0-9][0-9]\\)-.*|\\2|p'\n\nBut more importantly, what do we want \"duplicate numbers\" sanity\ncheck to mean in this context?  Is this other directory allowed to\nhave a numbered test that shares the same number as the main test\nsuite?  Is uniqueness inside the contrib/remote-helpers/ directory\nsufficient?\n\nDo we envision that perhaps someday the contrib material becomes\nmature enough and will want to migrate to the main part of the tree?\nIf that is the case, perhaps should the check complain that these\ntests are not numbered, instead of ignoring?\n"}]}