{"thread":{"id":"35318","subject":"[PATCH 0/7] remote-hg, remote-bzr fixes","startedAt":"2013-11-11T04:05:05Z","lastAt":"2013-11-18T21:47:07Z","messageCount":56,"participants":["Richard Hansen","Felipe Contreras","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":7},"messages":[{"id":"230378","messageId":"1384142712-2936-1-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":null,"subject":"[PATCH 0/7] remote-hg, remote-bzr fixes","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T04:05:05Z","receivedAt":"2013-11-11T04:05:05Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"A handful of fixes for the git-remote-hg and git-remote-bzr remote\nhelpers and their unit tests.\n\nRichard Hansen (7):\n  remote-hg:  don't decode UTF-8 paths into Unicode objects\n  test-bzr.sh, test-hg.sh: allow running from any dir\n  test-bzr.sh, test-hg.sh: prepare for change to push.default=simple\n  test-hg.sh: eliminate 'local' bashism\n  test-hg.sh: avoid obsolete 'test' syntax\n  test-hg.sh: help user correlate verbose output with email test\n  remote-bzr, remote-hg: fix email address regular expression\n\n contrib/remote-helpers/git-remote-bzr |  7 +++----\n contrib/remote-helpers/git-remote-hg  |  9 ++++-----\n contrib/remote-helpers/test-bzr.sh    |  6 +++++-\n contrib/remote-helpers/test-hg.sh     | 31 ++++++++++++++++++-------------\n 4 files changed, 30 insertions(+), 23 deletions(-)\n\n-- \n1.8.5.rc1.207.gc17dd22\n"},{"id":"230379","messageId":"1384142712-2936-2-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"[PATCH 1/7] remote-hg: don't decode UTF-8 paths into Unicode objects","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T04:05:06Z","receivedAt":"2013-11-11T04:05:06Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"The internal mercurial API expects ordinary 8-bit string objects, not\nUnicode string objects.  With this change, the test-hg.sh unit tests\npass again.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/git-remote-hg | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg\nindex 3222afd..c6026b9 100755\n--- a/contrib/remote-helpers/git-remote-hg\n+++ b/contrib/remote-helpers/git-remote-hg\n@@ -747,7 +747,7 @@ def parse_commit(parser):\n             f = { 'deleted' : True }\n         else:\n             die('Unknown file command: %s' % line)\n-        path = c_style_unescape(path).decode('utf-8')\n+        path = c_style_unescape(path)\n         files[path] = f\n \n     # only export the commits if we are on an internal proxy repo\n-- \n1.8.5.rc1.207.gc17dd22\n"},{"id":"230380","messageId":"1384142712-2936-3-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"[PATCH 2/7] test-bzr.sh, test-hg.sh: allow running from any dir","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T04:05:07Z","receivedAt":"2013-11-11T04:05:07Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"cd to the t/ subdirectory so that the user doesn't already have to be\nin the test directory to run these test scripts.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-bzr.sh | 1 +\n contrib/remote-helpers/test-hg.sh  | 1 +\n 2 files changed, 2 insertions(+)\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex 5c50251..094062c 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -5,6 +5,7 @@\n \n test_description='Test remote-bzr'\n \n+cd \"${0%/*}\"/../../t || exit 1\n . ./test-lib.sh\n \n if ! test_have_prereq PYTHON\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 72f745d..dbe0eec 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -8,6 +8,7 @@\n \n test_description='Test remote-hg'\n \n+cd \"${0%/*}\"/../../t || exit 1\n . ./test-lib.sh\n \n if ! test_have_prereq PYTHON\n-- \n1.8.5.rc1.207.gc17dd22\n"},{"id":"230381","messageId":"1384142712-2936-4-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"[PATCH 3/7] test-bzr.sh, test-hg.sh: prepare for change to push.default=simple","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T04:05:08Z","receivedAt":"2013-11-11T04:05:08Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Change 'git push' to 'git push -u <remote> <branch>' in one of the\ntest-bzr.sh tests to ensure that the test continues to pass when the\ndefault value of push.default changes to simple.\n\nAlso, explicitly set push.default to simple to silence warnings when\nusing --verbose.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-bzr.sh | 5 ++++-\n contrib/remote-helpers/test-hg.sh  | 3 +++\n 2 files changed, 7 insertions(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex 094062c..ea597b0 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -28,6 +28,9 @@ check () {\n \n bzr whoami \"A U Thor <author@example.com>\"\n \n+# silence warnings\n+git config --global push.default simple\n+\n test_expect_success 'cloning' '\n \t(\n \tbzr init bzrrepo &&\n@@ -379,7 +382,7 @@ test_expect_success 'export utf-8 authors' '\n \tgit add content &&\n \tgit commit -m one &&\n \tgit remote add bzr \"bzr::../bzrrepo\" &&\n-\tgit push bzr\n+\tgit push -u bzr master\n \t) &&\n \n \t(\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex dbe0eec..53f2bba 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -102,6 +102,9 @@ setup () {\n \tGIT_AUTHOR_DATE=\"2007-01-01 00:00:00 +0230\" &&\n \tGIT_COMMITTER_DATE=\"$GIT_AUTHOR_DATE\" &&\n \texport GIT_COMMITTER_DATE GIT_AUTHOR_DATE\n+\n+\t# silence warnings\n+\tgit config --global push.default simple\n }\n \n setup\n-- \n1.8.5.rc1.207.gc17dd22\n"},{"id":"230382","messageId":"1384142712-2936-5-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"[PATCH 4/7] test-hg.sh: eliminate 'local' bashism","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T04:05:09Z","receivedAt":"2013-11-11T04:05:09Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Unlike bash, POSIX shell does not specify a 'local' command for\ndeclaring function-local variable scope.  Except for IFS, the variable\nnames are not used anywhere else in the script so simply remove the\n'local'.  For IFS, move the assignment to the 'read' command to\nprevent it from affecting code outside the function.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-hg.sh | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 53f2bba..558a656 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -54,14 +54,14 @@ check_bookmark () {\n }\n \n check_push () {\n-\tlocal expected_ret=$1 ret=0 ref_ret=0 IFS=':'\n+\texpected_ret=$1 ret=0 ref_ret=0\n \n \tshift\n \tgit push origin \"$@\" 2>error\n \tret=$?\n \tcat error\n \n-\twhile read branch kind\n+\twhile IFS=':' read branch kind\n \tdo\n \t\tcase \"$kind\" in\n \t\t'new')\n-- \n1.8.5.rc1.207.gc17dd22\n"},{"id":"230383","messageId":"1384142712-2936-6-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"[PATCH 5/7] test-hg.sh: avoid obsolete 'test' syntax","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T04:05:10Z","receivedAt":"2013-11-11T04:05:10Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"The POSIX spec says that the '-a', '-o', and parentheses operands to\nthe 'test' utility are obsolete extensions due to the potential for\nambiguity.  Replace '-o' with '|| test' to avoid unspecified behavior.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-hg.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 558a656..84c67ff 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -83,7 +83,7 @@ check_push () {\n \t\ttest $ref_ret -ne 0 && echo \"match for '$branch' failed\" && break\n \tdone\n \n-\tif test $expected_ret -ne $ret -o $ref_ret -ne 0\n+\tif test $expected_ret -ne $ret || test $ref_ret -ne 0\n \tthen\n \t\treturn 1\n \tfi\n-- \n1.8.5.rc1.207.gc17dd22\n"},{"id":"230384","messageId":"1384142712-2936-7-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"[PATCH 6/7] test-hg.sh: help user correlate verbose output with email test","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T04:05:11Z","receivedAt":"2013-11-11T04:05:11Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"It's hard to tell which author conversion test failed when the email\naddresses look similar.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-hg.sh | 20 ++++++++++----------\n 1 file changed, 10 insertions(+), 10 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 84c67ff..5eda265 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -209,16 +209,16 @@ test_expect_success 'authors' '\n \n \t>../expected &&\n \tauthor_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n-\tauthor_test beta \"test\" \"test <unknown>\" &&\n-\tauthor_test beta \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n-\tauthor_test gamma \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n-\tauthor_test delta \"name<test@example.com>\" \"name <test@example.com>\" &&\n-\tauthor_test epsilon \"name <test@example.com\" \"name <test@example.com>\" &&\n-\tauthor_test zeta \" test \" \"test <unknown>\" &&\n-\tauthor_test eta \"test < test@example.com >\" \"test <test@example.com>\" &&\n-\tauthor_test theta \"test >test@example.com>\" \"test <test@example.com>\" &&\n-\tauthor_test iota \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n-\tauthor_test kappa \"test@example.com\" \"Unknown <test@example.com>\"\n+\tauthor_test beta \"beta\" \"beta <unknown>\" &&\n+\tauthor_test beta \"beta <test@example.com> (comment)\" \"beta <test@example.com>\" &&\n+\tauthor_test gamma \"<gamma@example.com>\" \"Unknown <gamma@example.com>\" &&\n+\tauthor_test delta \"delta<test@example.com>\" \"delta <test@example.com>\" &&\n+\tauthor_test epsilon \"epsilon <test@example.com\" \"epsilon <test@example.com>\" &&\n+\tauthor_test zeta \" zeta \" \"zeta <unknown>\" &&\n+\tauthor_test eta \"eta < test@example.com >\" \"eta <test@example.com>\" &&\n+\tauthor_test theta \"theta >test@example.com>\" \"theta <test@example.com>\" &&\n+\tauthor_test iota \"iota < test <at> example <dot> com>\" \"iota <unknown>\" &&\n+\tauthor_test kappa \"kappa@example.com\" \"Unknown <kappa@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\n-- \n1.8.5.rc1.207.gc17dd22\n"},{"id":"230385","messageId":"1384142712-2936-8-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"[PATCH 7/7] remote-bzr, remote-hg: fix email address regular expression","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T04:05:12Z","receivedAt":"2013-11-11T04:05:12Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Before, strings like \"foo.bar@example.com\" would be converted to\n\"foo. <bar@example.com>\" when they should be \"unknown\n<foo.bar@example.com>\".\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/git-remote-bzr | 7 +++----\n contrib/remote-helpers/git-remote-hg  | 7 +++----\n contrib/remote-helpers/test-hg.sh     | 3 ++-\n 3 files changed, 8 insertions(+), 9 deletions(-)\n\ndiff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr\nindex 054161a..7e34532 100755\n--- a/contrib/remote-helpers/git-remote-bzr\n+++ b/contrib/remote-helpers/git-remote-bzr\n@@ -44,8 +44,8 @@ import StringIO\n import atexit, shutil, hashlib, urlparse, subprocess\n \n NAME_RE = re.compile('^([^<>]+)')\n-AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')\n-EMAIL_RE = re.compile('^([^<>]+[^ \\\\\\t<>])?\\\\b(?:[ \\\\t<>]*?)\\\\b([^ \\\\t<>]+@[^ \\\\t<>]+)')\n+AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')\n+EMAIL_RE = re.compile(r'([^ \\t<>]+@[^ \\t<>]+)')\n RAW_AUTHOR_RE = re.compile('^(\\w+) (.+)? <(.*)> (\\d+) ([+-]\\d+)')\n \n def die(msg, *args):\n@@ -193,8 +193,7 @@ def fixup_user(user):\n     else:\n         m = EMAIL_RE.match(user)\n         if m:\n-            name = m.group(1)\n-            mail = m.group(2)\n+            mail = m.group(1)\n         else:\n             m = NAME_RE.match(user)\n             if m:\ndiff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg\nindex c6026b9..30402d5 100755\n--- a/contrib/remote-helpers/git-remote-hg\n+++ b/contrib/remote-helpers/git-remote-hg\n@@ -51,8 +51,8 @@ import time as ptime\n #\n \n NAME_RE = re.compile('^([^<>]+)')\n-AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')\n-EMAIL_RE = re.compile('^([^<>]+[^ \\\\\\t<>])?\\\\b(?:[ \\\\t<>]*?)\\\\b([^ \\\\t<>]+@[^ \\\\t<>]+)')\n+AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')\n+EMAIL_RE = re.compile(r'([^ \\t<>]+@[^ \\t<>]+)')\n AUTHOR_HG_RE = re.compile('^(.*?) ?<(.*?)(?:>(.+)?)?$')\n RAW_AUTHOR_RE = re.compile('^(\\w+) (?:(.+)? )?<(.*)> (\\d+) ([+-]\\d+)')\n \n@@ -316,8 +316,7 @@ def fixup_user_git(user):\n     else:\n         m = EMAIL_RE.match(user)\n         if m:\n-            name = m.group(1)\n-            mail = m.group(2)\n+            mail = m.group(1)\n         else:\n             m = NAME_RE.match(user)\n             if m:\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 5eda265..9f5066b 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -218,7 +218,8 @@ test_expect_success 'authors' '\n \tauthor_test eta \"eta < test@example.com >\" \"eta <test@example.com>\" &&\n \tauthor_test theta \"theta >test@example.com>\" \"theta <test@example.com>\" &&\n \tauthor_test iota \"iota < test <at> example <dot> com>\" \"iota <unknown>\" &&\n-\tauthor_test kappa \"kappa@example.com\" \"Unknown <kappa@example.com>\"\n+\tauthor_test kappa \"kappa@example.com\" \"Unknown <kappa@example.com>\" &&\n+\tauthor_test lambda \"lambda.lambda@example.com\" \"Unknown <lambda.lambda@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\n-- \n1.8.5.rc1.207.gc17dd22\n"},{"id":"230389","messageId":"5280b9d87f92c_6841541e786f@nysa.notmuch","threadId":"35318","inReplyTo":"1384142712-2936-2-git-send-email-rhansen@bbn.com","subject":"RE: [PATCH 1/7] remote-hg: don't decode UTF-8 paths into Unicode objects","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T11:04:56Z","receivedAt":"2013-11-11T11:04:56Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> The internal mercurial API expects ordinary 8-bit string objects, not\n> Unicode string objects.  With this change, the test-hg.sh unit tests\n> pass again.\n\nThis makes sense to me, but the tests are already passing for me. How are they\nfailing for you?\n\n-- \nFelipe Contreras\n"},{"id":"230390","messageId":"5280c108749d8_6841541e787e@nysa.notmuch","threadId":"35318","inReplyTo":"1384142712-2936-3-git-send-email-rhansen@bbn.com","subject":"RE: [PATCH 2/7] test-bzr.sh, test-hg.sh: allow running from any dir","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T11:35:36Z","receivedAt":"2013-11-11T11:35:36Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> cd to the t/ subdirectory so that the user doesn't already have to be\n> in the test directory to run these test scripts.\n> \n> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n> ---\n>  contrib/remote-helpers/test-bzr.sh | 1 +\n>  contrib/remote-helpers/test-hg.sh  | 1 +\n>  2 files changed, 2 insertions(+)\n> \n> diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\n> index 5c50251..094062c 100755\n> --- a/contrib/remote-helpers/test-bzr.sh\n> +++ b/contrib/remote-helpers/test-bzr.sh\n> @@ -5,6 +5,7 @@\n>  \n>  test_description='Test remote-bzr'\n>  \n> +cd \"${0%/*}\"/../../t || exit 1\n\nI think this should do the trick:\n\n  test -z \"$TEST_DIRECTORY\" && TEST_DIRECTORY=\"$(realpath ${0%/*}/../../t)\"\n  . \"$TEST_DIRECTORY\"/test-lib.sh\n\n-- \nFelipe Contreras\n"},{"id":"230391","messageId":"5280c17489798_6841541e7877@nysa.notmuch","threadId":"35318","inReplyTo":"1384142712-2936-4-git-send-email-rhansen@bbn.com","subject":"RE: [PATCH 3/7] test-bzr.sh, test-hg.sh: prepare for change to push.default=simple","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T11:37:24Z","receivedAt":"2013-11-11T11:37:24Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> Change 'git push' to 'git push -u <remote> <branch>' in one of the\n> test-bzr.sh tests to ensure that the test continues to pass when the\n> default value of push.default changes to simple.\n\nThis makes sense.\n\n> Also, explicitly set push.default to simple to silence warnings when\n> using --verbose.\n\nThis doesn't. Run the tests in t/* and you would seen tons and tons of those\nwarnings, if they should be avoided, they should be avoided for all the tests,\nwhy only these?\n\nI say drop the second part. Yes it's annoying, but we have to deal with it.\n\n-- \nFelipe Contreras\n"},{"id":"230392","messageId":"5280c24640449_6841541e7877@nysa.notmuch","threadId":"35318","inReplyTo":"1384142712-2936-5-git-send-email-rhansen@bbn.com","subject":"RE: [PATCH 4/7] test-hg.sh: eliminate 'local' bashism","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T11:40:54Z","receivedAt":"2013-11-11T11:40:54Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> Unlike bash, POSIX shell does not specify a 'local' command for\n> declaring function-local variable scope.  Except for IFS, the variable\n> names are not used anywhere else in the script so simply remove the\n> 'local'.  For IFS, move the assignment to the 'read' command to\n> prevent it from affecting code outside the function.\n\nMakes sense.\n\n-- \nFelipe Contreras\n"},{"id":"230393","messageId":"5280c2c3e066c_6841541e7824@nysa.notmuch","threadId":"35318","inReplyTo":"1384142712-2936-7-git-send-email-rhansen@bbn.com","subject":"RE: [PATCH 6/7] test-hg.sh: help user correlate verbose output with email test","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T11:42:59Z","receivedAt":"2013-11-11T11:42:59Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> It's hard to tell which author conversion test failed when the email\n> addresses look similar.\n> \n> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n> ---\n>  contrib/remote-helpers/test-hg.sh | 20 ++++++++++----------\n>  1 file changed, 10 insertions(+), 10 deletions(-)\n> \n> diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\n> index 84c67ff..5eda265 100755\n> --- a/contrib/remote-helpers/test-hg.sh\n> +++ b/contrib/remote-helpers/test-hg.sh\n> @@ -209,16 +209,16 @@ test_expect_success 'authors' '\n>  \n>  \t>../expected &&\n>  \tauthor_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n> -\tauthor_test beta \"test\" \"test <unknown>\" &&\n> -\tauthor_test beta \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n> -\tauthor_test gamma \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n> -\tauthor_test delta \"name<test@example.com>\" \"name <test@example.com>\" &&\n> -\tauthor_test epsilon \"name <test@example.com\" \"name <test@example.com>\" &&\n> -\tauthor_test zeta \" test \" \"test <unknown>\" &&\n> -\tauthor_test eta \"test < test@example.com >\" \"test <test@example.com>\" &&\n> -\tauthor_test theta \"test >test@example.com>\" \"test <test@example.com>\" &&\n> -\tauthor_test iota \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n> -\tauthor_test kappa \"test@example.com\" \"Unknown <test@example.com>\"\n> +\tauthor_test beta \"beta\" \"beta <unknown>\" &&\n> +\tauthor_test beta \"beta <test@example.com> (comment)\" \"beta <test@example.com>\" &&\n\nTwo betas?\n\n> +\tauthor_test gamma \"<gamma@example.com>\" \"Unknown <gamma@example.com>\" &&\n> +\tauthor_test delta \"delta<test@example.com>\" \"delta <test@example.com>\" &&\n> +\tauthor_test epsilon \"epsilon <test@example.com\" \"epsilon <test@example.com>\" &&\n> +\tauthor_test zeta \" zeta \" \"zeta <unknown>\" &&\n> +\tauthor_test eta \"eta < test@example.com >\" \"eta <test@example.com>\" &&\n> +\tauthor_test theta \"theta >test@example.com>\" \"theta <test@example.com>\" &&\n> +\tauthor_test iota \"iota < test <at> example <dot> com>\" \"iota <unknown>\" &&\n> +\tauthor_test kappa \"kappa@example.com\" \"Unknown <kappa@example.com>\"\n>  \t) &&\n>  \n>  \tgit clone \"hg::hgrepo\" gitrepo &&\n\n-- \nFelipe Contreras\n"},{"id":"230394","messageId":"5280c2ff2d16d_6841541e7846@nysa.notmuch","threadId":"35318","inReplyTo":"1384142712-2936-8-git-send-email-rhansen@bbn.com","subject":"RE: [PATCH 7/7] remote-bzr, remote-hg: fix email address regular expression","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T11:43:59Z","receivedAt":"2013-11-11T11:43:59Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> Before, strings like \"foo.bar@example.com\" would be converted to\n> \"foo. <bar@example.com>\" when they should be \"unknown\n> <foo.bar@example.com>\".\n\nIndeed. Thanks.\n\n-- \nFelipe Contreras\n"},{"id":"230395","messageId":"5280c31919c9_6841541e7851@nysa.notmuch","threadId":"35318","inReplyTo":"1384142712-2936-6-git-send-email-rhansen@bbn.com","subject":"RE: [PATCH 5/7] test-hg.sh: avoid obsolete 'test' syntax","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T11:44:25Z","receivedAt":"2013-11-11T11:44:25Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> The POSIX spec says that the '-a', '-o', and parentheses operands to\n> the 'test' utility are obsolete extensions due to the potential for\n> ambiguity.  Replace '-o' with '|| test' to avoid unspecified behavior.\n\nAll right, if you say so.\n\n-- \nFelipe Contreras\n"},{"id":"230408","messageId":"52812258.1060109@bbn.com","threadId":"35318","inReplyTo":"5280b9d87f92c_6841541e786f@nysa.notmuch","subject":"Re: [PATCH 1/7] remote-hg: don't decode UTF-8 paths into Unicode objects","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T18:30:48Z","receivedAt":"2013-11-11T18:30:48Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"On 2013-11-11 06:04, Felipe Contreras wrote:\n> Richard Hansen wrote:\n>> The internal mercurial API expects ordinary 8-bit string objects, not\n>> Unicode string objects.  With this change, the test-hg.sh unit tests\n>> pass again.\n> \n> This makes sense to me, but the tests are already passing for me. How are they\n> failing for you?\n\n$ hg --version | head -n 1\nMercurial Distributed SCM (version 2.2.2)\n$ cd ~/git/t\n$ ../contrib/remote-helpers/test-hg.sh --verbose --immediate\n...\nTraceback (most recent call last):\n  File \"~/git/contrib/remote-helpers/git-remote-hg\", line 1246, in <module>\n    sys.exit(main(sys.argv))\n  File \"~/git/contrib/remote-helpers/git-remote-hg\", line 1230, in main\n    do_export(parser)\n  File \"~/git/contrib/remote-helpers/git-remote-hg\", line 1031, in do_export\n    parse_commit(parser)\n  File \"~/git/contrib/remote-helpers/git-remote-hg\", line 822, in\nparse_commit\n    node = hghex(repo.commitctx(ctx))\n  File \"/usr/lib/python2.7/dist-packages/mercurial/localrepo.py\", line\n1270, in commitctx\n    p2.manifestnode(), (new, drop))\n  File \"/usr/lib/python2.7/dist-packages/mercurial/manifest.py\", line\n197, in add\n    cachedelta = (self.rev(p1), addlistdelta(addlist, delta))\n  File \"/usr/lib/python2.7/dist-packages/mercurial/manifest.py\", line\n124, in addlistdelta\n    addlist[start:end] = array.array('c', content)\nTypeError: array item must be char\nnot ok 4 - update bookmark\n\nI can put the above in the commit message if people would like it there.\n\n-Richard\n"},{"id":"230409","messageId":"xmqqsiv2lrig.fsf@gitster.dls.corp.google.com","threadId":"35318","inReplyTo":"5280c108749d8_6841541e787e@nysa.notmuch","subject":"Re: [PATCH 2/7] test-bzr.sh, test-hg.sh: allow running from any dir","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-11-11T18:31:19Z","receivedAt":"2013-11-11T18:31:19Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Felipe Contreras <felipe.contreras@gmail.com> writes:\n\n> Richard Hansen wrote:\n>> cd to the t/ subdirectory so that the user doesn't already have to be\n>> in the test directory to run these test scripts.\n>> \n>> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n>> ---\n>>  contrib/remote-helpers/test-bzr.sh | 1 +\n>>  contrib/remote-helpers/test-hg.sh  | 1 +\n>>  2 files changed, 2 insertions(+)\n>> \n>> diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\n>> index 5c50251..094062c 100755\n>> --- a/contrib/remote-helpers/test-bzr.sh\n>> +++ b/contrib/remote-helpers/test-bzr.sh\n>> @@ -5,6 +5,7 @@\n>>  \n>>  test_description='Test remote-bzr'\n>>  \n>> +cd \"${0%/*}\"/../../t || exit 1\n>\n> I think this should do the trick:\n>\n>   test -z \"$TEST_DIRECTORY\" && TEST_DIRECTORY=\"$(realpath ${0%/*}/../../t)\"\n>   . \"$TEST_DIRECTORY\"/test-lib.sh\n\nCan we do that without using realpath(1)? I do not think we use it\nanywhere in the main part of the project.\n"},{"id":"230410","messageId":"xmqqob5qlrbs.fsf@gitster.dls.corp.google.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"Re: [PATCH 0/7] remote-hg, remote-bzr fixes","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-11-11T18:35:19Z","receivedAt":"2013-11-11T18:35:19Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Richard Hansen <rhansen@bbn.com> writes:\n\n> A handful of fixes for the git-remote-hg and git-remote-bzr remote\n> helpers and their unit tests.\n>\n> Richard Hansen (7):\n>   remote-hg:  don't decode UTF-8 paths into Unicode objects\n>   test-bzr.sh, test-hg.sh: allow running from any dir\n>   test-bzr.sh, test-hg.sh: prepare for change to push.default=simple\n>   test-hg.sh: eliminate 'local' bashism\n>   test-hg.sh: avoid obsolete 'test' syntax\n>   test-hg.sh: help user correlate verbose output with email test\n>   remote-bzr, remote-hg: fix email address regular expression\n>\n>  contrib/remote-helpers/git-remote-bzr |  7 +++----\n>  contrib/remote-helpers/git-remote-hg  |  9 ++++-----\n>  contrib/remote-helpers/test-bzr.sh    |  6 +++++-\n>  contrib/remote-helpers/test-hg.sh     | 31 ++++++++++++++++++-------------\n>  4 files changed, 30 insertions(+), 23 deletions(-)\n\nI'll defer to Felipe for the meat of the logic in these scripts; the\nPOSIXify part of the fixes look all good to me.\n\nI see there already are review comments, so let me know when the\nreviews have settled with a final reroll.\n\nThanks.\n"},{"id":"230412","messageId":"CAMP44s1wc_1v2f9u0hV5VhjybZtF8tAs8-mxwEa+KuTiroLvsw@mail.gmail.com","threadId":"35318","inReplyTo":"xmqqsiv2lrig.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH 2/7] test-bzr.sh, test-hg.sh: allow running from any dir","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T18:58:11Z","receivedAt":"2013-11-11T18:58:11Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Mon, Nov 11, 2013 at 12:31 PM, Junio C Hamano <gitster@pobox.com> wrote:\n> Felipe Contreras <felipe.contreras@gmail.com> writes:\n>\n>> Richard Hansen wrote:\n>>> cd to the t/ subdirectory so that the user doesn't already have to be\n>>> in the test directory to run these test scripts.\n>>>\n>>> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n>>> ---\n>>>  contrib/remote-helpers/test-bzr.sh | 1 +\n>>>  contrib/remote-helpers/test-hg.sh  | 1 +\n>>>  2 files changed, 2 insertions(+)\n>>>\n>>> diff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\n>>> index 5c50251..094062c 100755\n>>> --- a/contrib/remote-helpers/test-bzr.sh\n>>> +++ b/contrib/remote-helpers/test-bzr.sh\n>>> @@ -5,6 +5,7 @@\n>>>\n>>>  test_description='Test remote-bzr'\n>>>\n>>> +cd \"${0%/*}\"/../../t || exit 1\n>>\n>> I think this should do the trick:\n>>\n>>   test -z \"$TEST_DIRECTORY\" && TEST_DIRECTORY=\"$(realpath ${0%/*}/../../t)\"\n>>   . \"$TEST_DIRECTORY\"/test-lib.sh\n>\n> Can we do that without using realpath(1)? I do not think we use it\n> anywhere in the main part of the project.\n\nSomething like this, probably:\n\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -26,6 +26,8 @@ then\n        # outside of t/, e.g. for running tests on the test library\n        # itself.\n        TEST_DIRECTORY=$(pwd)\n+else\n+       TEST_DIRECTORY=$(cd $TEST_DIRECTORY && pwd)\n fi\n if test -z \"$TEST_OUTPUT_DIRECTORY\"\n then\n\n\nThen we can do:\n\n test -z \"$TEST_DIRECTORY\" && TEST_DIRECTORY=\"${0%/*}/../../t\"\n . \"$TEST_DIRECTORY\"/test-lib.sh\n\n-- \nFelipe Contreras\n"},{"id":"230414","messageId":"CAMP44s2BcmuLeLOgA592g7F117LU--uhWVFNq1W6gn+uvURmvA@mail.gmail.com","threadId":"35318","inReplyTo":"52812258.1060109@bbn.com","subject":"Re: [PATCH 1/7] remote-hg: don't decode UTF-8 paths into Unicode objects","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T19:10:50Z","receivedAt":"2013-11-11T19:10:50Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Mon, Nov 11, 2013 at 12:30 PM, Richard Hansen <rhansen@bbn.com> wrote:\n> On 2013-11-11 06:04, Felipe Contreras wrote:\n>> Richard Hansen wrote:\n>>> The internal mercurial API expects ordinary 8-bit string objects, not\n>>> Unicode string objects.  With this change, the test-hg.sh unit tests\n>>> pass again.\n>>\n>> This makes sense to me, but the tests are already passing for me. How are they\n>> failing for you?\n>\n> $ hg --version | head -n 1\n> Mercurial Distributed SCM (version 2.2.2)\n> $ cd ~/git/t\n> $ ../contrib/remote-helpers/test-hg.sh --verbose --immediate\n\nAh, I see they are failing now (v 2.8). I don't know what I was testing.\n\nFWIW my tree doesn't have this problem [1].\n\n> I can put the above in the commit message if people would like it there.\n\nPersonally I think it's overkill. You mentioned the tests failed,\nthat's enough explanation. I just wanted to see if that was actually\nthe case.\n\n[1] https://travis-ci.org/felipec/git-travis\n\n-- \nFelipe Contreras\n"},{"id":"230417","messageId":"52812DD2.9030506@bbn.com","threadId":"35318","inReplyTo":"5280c2c3e066c_6841541e7824@nysa.notmuch","subject":"Re: [PATCH 6/7] test-hg.sh: help user correlate verbose output with email test","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T19:19:46Z","receivedAt":"2013-11-11T19:19:46Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"On 2013-11-11 06:42, Felipe Contreras wrote:\n> Richard Hansen wrote:\n>> It's hard to tell which author conversion test failed when the email\n>> addresses look similar.\n>>\n>> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n>> ---\n>>  contrib/remote-helpers/test-hg.sh | 20 ++++++++++----------\n>>  1 file changed, 10 insertions(+), 10 deletions(-)\n>>\n>> diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\n>> index 84c67ff..5eda265 100755\n>> --- a/contrib/remote-helpers/test-hg.sh\n>> +++ b/contrib/remote-helpers/test-hg.sh\n>> @@ -209,16 +209,16 @@ test_expect_success 'authors' '\n>>  \n>>  \t>../expected &&\n>>  \tauthor_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n>> -\tauthor_test beta \"test\" \"test <unknown>\" &&\n>> -\tauthor_test beta \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n\nNotice the two betas here in the original code.\n\n>> -\tauthor_test gamma \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n>> -\tauthor_test delta \"name<test@example.com>\" \"name <test@example.com>\" &&\n>> -\tauthor_test epsilon \"name <test@example.com\" \"name <test@example.com>\" &&\n>> -\tauthor_test zeta \" test \" \"test <unknown>\" &&\n>> -\tauthor_test eta \"test < test@example.com >\" \"test <test@example.com>\" &&\n>> -\tauthor_test theta \"test >test@example.com>\" \"test <test@example.com>\" &&\n>> -\tauthor_test iota \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n>> -\tauthor_test kappa \"test@example.com\" \"Unknown <test@example.com>\"\n>> +\tauthor_test beta \"beta\" \"beta <unknown>\" &&\n>> +\tauthor_test beta \"beta <test@example.com> (comment)\" \"beta <test@example.com>\" &&\n> \n> Two betas?\n\nSee above.  I can change them to beta1 and beta2, or if you'd prefer I\ncan change them to beta and gamma and increment the subsequent entries.\n\nThanks,\nRichard\n\n> \n>> +\tauthor_test gamma \"<gamma@example.com>\" \"Unknown <gamma@example.com>\" &&\n>> +\tauthor_test delta \"delta<test@example.com>\" \"delta <test@example.com>\" &&\n>> +\tauthor_test epsilon \"epsilon <test@example.com\" \"epsilon <test@example.com>\" &&\n>> +\tauthor_test zeta \" zeta \" \"zeta <unknown>\" &&\n>> +\tauthor_test eta \"eta < test@example.com >\" \"eta <test@example.com>\" &&\n>> +\tauthor_test theta \"theta >test@example.com>\" \"theta <test@example.com>\" &&\n>> +\tauthor_test iota \"iota < test <at> example <dot> com>\" \"iota <unknown>\" &&\n>> +\tauthor_test kappa \"kappa@example.com\" \"Unknown <kappa@example.com>\"\n>>  \t) &&\n>>  \n>>  \tgit clone \"hg::hgrepo\" gitrepo &&\n> \n"},{"id":"230418","messageId":"52812DEF.1010801@bbn.com","threadId":"35318","inReplyTo":"5280c17489798_6841541e7877@nysa.notmuch","subject":"Re: [PATCH 3/7] test-bzr.sh, test-hg.sh: prepare for change to push.default=simple","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T19:20:15Z","receivedAt":"2013-11-11T19:20:15Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"On 2013-11-11 06:37, Felipe Contreras wrote:\n> Richard Hansen wrote:\n>> Change 'git push' to 'git push -u <remote> <branch>' in one of the\n>> test-bzr.sh tests to ensure that the test continues to pass when the\n>> default value of push.default changes to simple.\n> \n> This makes sense.\n> \n>> Also, explicitly set push.default to simple to silence warnings when\n>> using --verbose.\n> \n> This doesn't. Run the tests in t/* and you would seen tons and tons of those\n> warnings, if they should be avoided, they should be avoided for all the tests,\n> why only these?\n> \n> I say drop the second part. Yes it's annoying, but we have to deal with it.\n\nOK, will do.\n\nThanks,\nRichard\n"},{"id":"230419","messageId":"CAMP44s00iTM00mU-+ESicBHeK=VH9MQTiZw6pFRXjTv2-xb_AQ@mail.gmail.com","threadId":"35318","inReplyTo":"52812DD2.9030506@bbn.com","subject":"Re: [PATCH 6/7] test-hg.sh: help user correlate verbose output with email test","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T19:29:08Z","receivedAt":"2013-11-11T19:29:08Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Mon, Nov 11, 2013 at 1:19 PM, Richard Hansen <rhansen@bbn.com> wrote:\n> On 2013-11-11 06:42, Felipe Contreras wrote:\n>> Richard Hansen wrote:\n>>> It's hard to tell which author conversion test failed when the email\n>>> addresses look similar.\n>>>\n>>> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n>>> ---\n>>>  contrib/remote-helpers/test-hg.sh | 20 ++++++++++----------\n>>>  1 file changed, 10 insertions(+), 10 deletions(-)\n>>>\n>>> diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\n>>> index 84c67ff..5eda265 100755\n>>> --- a/contrib/remote-helpers/test-hg.sh\n>>> +++ b/contrib/remote-helpers/test-hg.sh\n>>> @@ -209,16 +209,16 @@ test_expect_success 'authors' '\n>>>\n>>>      >../expected &&\n>>>      author_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n>>> -    author_test beta \"test\" \"test <unknown>\" &&\n>>> -    author_test beta \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n>\n> Notice the two betas here in the original code.\n\nAhh, that's a bug.\n\n>>> -    author_test gamma \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n>>> -    author_test delta \"name<test@example.com>\" \"name <test@example.com>\" &&\n>>> -    author_test epsilon \"name <test@example.com\" \"name <test@example.com>\" &&\n>>> -    author_test zeta \" test \" \"test <unknown>\" &&\n>>> -    author_test eta \"test < test@example.com >\" \"test <test@example.com>\" &&\n>>> -    author_test theta \"test >test@example.com>\" \"test <test@example.com>\" &&\n>>> -    author_test iota \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n>>> -    author_test kappa \"test@example.com\" \"Unknown <test@example.com>\"\n>>> +    author_test beta \"beta\" \"beta <unknown>\" &&\n>>> +    author_test beta \"beta <test@example.com> (comment)\" \"beta <test@example.com>\" &&\n>>\n>> Two betas?\n>\n> See above.  I can change them to beta1 and beta2, or if you'd prefer I\n> can change them to beta and gamma and increment the subsequent entries.\n\nYeah, I would prefer that in two patches, one that fixes the sequence,\nand the other one that changes the emails. If you don't have time for\nthat the original patch is OK by me. The problem with the sequence can\nbe fixed later.\n\nCheers.\n\n-- \nFelipe Contreras\n"},{"id":"230420","messageId":"CAMP44s1phHVjiETB3fK3FwjOcJ4+6YYCYt5pvOWJL+RM37QLfw@mail.gmail.com","threadId":"35318","inReplyTo":"1384142712-2936-4-git-send-email-rhansen@bbn.com","subject":"Re: [PATCH 3/7] test-bzr.sh, test-hg.sh: prepare for change to push.default=simple","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T19:31:58Z","receivedAt":"2013-11-11T19:31:58Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Sun, Nov 10, 2013 at 10:05 PM, Richard Hansen <rhansen@bbn.com> wrote:\n\n> @@ -379,7 +382,7 @@ test_expect_success 'export utf-8 authors' '\n>         git add content &&\n>         git commit -m one &&\n>         git remote add bzr \"bzr::../bzrrepo\" &&\n> -       git push bzr\n> +       git push -u bzr master\n>         ) &&\n\nActually, why -u? Isn't 'git push bzr master' enough?\n\n-- \nFelipe Contreras\n"},{"id":"230435","messageId":"5281491A.4050806@bbn.com","threadId":"35318","inReplyTo":"CAMP44s1phHVjiETB3fK3FwjOcJ4+6YYCYt5pvOWJL+RM37QLfw@mail.gmail.com","subject":"Re: [PATCH 3/7] test-bzr.sh, test-hg.sh: prepare for change to push.default=simple","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T21:16:10Z","receivedAt":"2013-11-11T21:16:10Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"On 2013-11-11 14:31, Felipe Contreras wrote:\n> On Sun, Nov 10, 2013 at 10:05 PM, Richard Hansen <rhansen@bbn.com> wrote:\n> \n>> @@ -379,7 +382,7 @@ test_expect_success 'export utf-8 authors' '\n>>         git add content &&\n>>         git commit -m one &&\n>>         git remote add bzr \"bzr::../bzrrepo\" &&\n>> -       git push bzr\n>> +       git push -u bzr master\n>>         ) &&\n> \n> Actually, why -u? Isn't 'git push bzr master' enough?\n\nIt's defensive in case that test is ever updated to do more pushing.  I\ncan leave it out in the reroll.\n\n-Richard\n"},{"id":"230436","messageId":"5281495A.3080607@bbn.com","threadId":"35318","inReplyTo":"CAMP44s00iTM00mU-+ESicBHeK=VH9MQTiZw6pFRXjTv2-xb_AQ@mail.gmail.com","subject":"Re: [PATCH 6/7] test-hg.sh: help user correlate verbose output with email test","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-11T21:17:14Z","receivedAt":"2013-11-11T21:17:14Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"On 2013-11-11 14:29, Felipe Contreras wrote:\n> On Mon, Nov 11, 2013 at 1:19 PM, Richard Hansen <rhansen@bbn.com> wrote:\n>> On 2013-11-11 06:42, Felipe Contreras wrote:\n>>> Richard Hansen wrote:\n>>>> It's hard to tell which author conversion test failed when the email\n>>>> addresses look similar.\n>>>>\n>>>> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n>>>> ---\n>>>>  contrib/remote-helpers/test-hg.sh | 20 ++++++++++----------\n>>>>  1 file changed, 10 insertions(+), 10 deletions(-)\n>>>>\n>>>> diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\n>>>> index 84c67ff..5eda265 100755\n>>>> --- a/contrib/remote-helpers/test-hg.sh\n>>>> +++ b/contrib/remote-helpers/test-hg.sh\n>>>> @@ -209,16 +209,16 @@ test_expect_success 'authors' '\n>>>>\n>>>>      >../expected &&\n>>>>      author_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n>>>> -    author_test beta \"test\" \"test <unknown>\" &&\n>>>> -    author_test beta \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n>>\n>> Notice the two betas here in the original code.\n> \n> Ahh, that's a bug.\n> \n>>>> -    author_test gamma \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n>>>> -    author_test delta \"name<test@example.com>\" \"name <test@example.com>\" &&\n>>>> -    author_test epsilon \"name <test@example.com\" \"name <test@example.com>\" &&\n>>>> -    author_test zeta \" test \" \"test <unknown>\" &&\n>>>> -    author_test eta \"test < test@example.com >\" \"test <test@example.com>\" &&\n>>>> -    author_test theta \"test >test@example.com>\" \"test <test@example.com>\" &&\n>>>> -    author_test iota \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n>>>> -    author_test kappa \"test@example.com\" \"Unknown <test@example.com>\"\n>>>> +    author_test beta \"beta\" \"beta <unknown>\" &&\n>>>> +    author_test beta \"beta <test@example.com> (comment)\" \"beta <test@example.com>\" &&\n>>>\n>>> Two betas?\n>>\n>> See above.  I can change them to beta1 and beta2, or if you'd prefer I\n>> can change them to beta and gamma and increment the subsequent entries.\n> \n> Yeah, I would prefer that in two patches, one that fixes the sequence,\n> and the other one that changes the emails.\n\nWill do.\n\nThanks,\nRichard\n\n> If you don't have time for\n> that the original patch is OK by me. The problem with the sequence can\n> be fixed later.\n> \n> Cheers.\n> \n"},{"id":"230437","messageId":"CAMP44s1fc2UMZE4Y5sdTuKuU_p1sLo02jiBppabywSjxFfR6Eg@mail.gmail.com","threadId":"35318","inReplyTo":"5281491A.4050806@bbn.com","subject":"Re: [PATCH 3/7] test-bzr.sh, test-hg.sh: prepare for change to push.default=simple","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-11T21:19:59Z","receivedAt":"2013-11-11T21:19:59Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"On Mon, Nov 11, 2013 at 3:16 PM, Richard Hansen <rhansen@bbn.com> wrote:\n> On 2013-11-11 14:31, Felipe Contreras wrote:\n>> On Sun, Nov 10, 2013 at 10:05 PM, Richard Hansen <rhansen@bbn.com> wrote:\n>>\n>>> @@ -379,7 +382,7 @@ test_expect_success 'export utf-8 authors' '\n>>>         git add content &&\n>>>         git commit -m one &&\n>>>         git remote add bzr \"bzr::../bzrrepo\" &&\n>>> -       git push bzr\n>>> +       git push -u bzr master\n>>>         ) &&\n>>\n>> Actually, why -u? Isn't 'git push bzr master' enough?\n>\n> It's defensive in case that test is ever updated to do more pushing.  I\n> can leave it out in the reroll.\n\nPlease do. If there's any need for that we can add it later, but even\nthen I would prefer that the push explicit again, like this one. And\nsuspect we will not need to update this in that direction.\n\n-- \nFelipe Contreras\n"},{"id":"230464","messageId":"5281BDD8.6040501@bbn.com","threadId":"35318","inReplyTo":"5280c31919c9_6841541e7851@nysa.notmuch","subject":"Re: [PATCH 5/7] test-hg.sh: avoid obsolete 'test' syntax","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:34:16Z","receivedAt":"2013-11-12T05:34:16Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"On 2013-11-11 06:44, Felipe Contreras wrote:\n> Richard Hansen wrote:\n>> The POSIX spec says that the '-a', '-o', and parentheses operands to\n>> the 'test' utility are obsolete extensions due to the potential for\n>> ambiguity.  Replace '-o' with '|| test' to avoid unspecified behavior.\n> \n> All right, if you say so.\n\nIn case you're curious about what the spec says:\n\nhttp://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16\n\n-Richard\n"},{"id":"230465","messageId":"1384235688-9655-1-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384142712-2936-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 0/9] remote-hg, remote-bzr fixes","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:39Z","receivedAt":"2013-11-12T05:54:39Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"A handful of fixes for the git-remote-hg and git-remote-bzr remote\nhelpers and their unit tests.\n\nChanges from v1:\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex ea597b0..1e53ff9 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -5,8 +5,8 @@\n \n test_description='Test remote-bzr'\n \n-cd \"${0%/*}\"/../../t || exit 1\n-. ./test-lib.sh\n+test -n \"$TEST_DIRECTORY\" || TEST_DIRECTORY=${0%/*}/../../t\n+. \"$TEST_DIRECTORY\"/test-lib.sh\n \n if ! test_have_prereq PYTHON\n then\n@@ -28,9 +28,6 @@ check () {\n \n bzr whoami \"A U Thor <author@example.com>\"\n \n-# silence warnings\n-git config --global push.default simple\n-\n test_expect_success 'cloning' '\n \t(\n \tbzr init bzrrepo &&\n@@ -382,7 +379,7 @@ test_expect_success 'export utf-8 authors' '\n \tgit add content &&\n \tgit commit -m one &&\n \tgit remote add bzr \"bzr::../bzrrepo\" &&\n-\tgit push -u bzr master\n+\tgit push bzr master\n \t) &&\n \n \t(\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 9f5066b..347e812 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -8,8 +8,8 @@\n \n test_description='Test remote-hg'\n \n-cd \"${0%/*}\"/../../t || exit 1\n-. ./test-lib.sh\n+test -n \"$TEST_DIRECTORY\" || TEST_DIRECTORY=${0%/*}/../../t\n+. \"$TEST_DIRECTORY\"/test-lib.sh\n \n if ! test_have_prereq PYTHON\n then\n@@ -102,9 +102,6 @@ setup () {\n \tGIT_AUTHOR_DATE=\"2007-01-01 00:00:00 +0230\" &&\n \tGIT_COMMITTER_DATE=\"$GIT_AUTHOR_DATE\" &&\n \texport GIT_COMMITTER_DATE GIT_AUTHOR_DATE\n-\n-\t# silence warnings\n-\tgit config --global push.default simple\n }\n \n setup\n@@ -210,16 +207,16 @@ test_expect_success 'authors' '\n \t>../expected &&\n \tauthor_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n \tauthor_test beta \"beta\" \"beta <unknown>\" &&\n-\tauthor_test beta \"beta <test@example.com> (comment)\" \"beta <test@example.com>\" &&\n-\tauthor_test gamma \"<gamma@example.com>\" \"Unknown <gamma@example.com>\" &&\n-\tauthor_test delta \"delta<test@example.com>\" \"delta <test@example.com>\" &&\n-\tauthor_test epsilon \"epsilon <test@example.com\" \"epsilon <test@example.com>\" &&\n-\tauthor_test zeta \" zeta \" \"zeta <unknown>\" &&\n-\tauthor_test eta \"eta < test@example.com >\" \"eta <test@example.com>\" &&\n-\tauthor_test theta \"theta >test@example.com>\" \"theta <test@example.com>\" &&\n-\tauthor_test iota \"iota < test <at> example <dot> com>\" \"iota <unknown>\" &&\n-\tauthor_test kappa \"kappa@example.com\" \"Unknown <kappa@example.com>\" &&\n-\tauthor_test lambda \"lambda.lambda@example.com\" \"Unknown <lambda.lambda@example.com>\"\n+\tauthor_test gamma \"gamma <test@example.com> (comment)\" \"gamma <test@example.com>\" &&\n+\tauthor_test delta \"<delta@example.com>\" \"Unknown <delta@example.com>\" &&\n+\tauthor_test epsilon \"epsilon<test@example.com>\" \"epsilon <test@example.com>\" &&\n+\tauthor_test zeta \"zeta <test@example.com\" \"zeta <test@example.com>\" &&\n+\tauthor_test eta \" eta \" \"eta <unknown>\" &&\n+\tauthor_test theta \"theta < test@example.com >\" \"theta <test@example.com>\" &&\n+\tauthor_test iota \"iota >test@example.com>\" \"iota <test@example.com>\" &&\n+\tauthor_test kappa \"kappa < test <at> example <dot> com>\" \"kappa <unknown>\" &&\n+\tauthor_test lambda \"lambda@example.com\" \"Unknown <lambda@example.com>\" &&\n+\tauthor_test mu \"mu.mu@example.com\" \"Unknown <mu.mu@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex b25249e..af172d9 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -26,6 +26,10 @@ then\n \t# outside of t/, e.g. for running tests on the test library\n \t# itself.\n \tTEST_DIRECTORY=$(pwd)\n+else\n+\t# ensure that TEST_DIRECTORY is an absolute path so that it\n+\t# works even if the current working directory is changed\n+\tTEST_DIRECTORY=$(cd \"$TEST_DIRECTORY\" && pwd) || exit 1\n fi\n if test -z \"$TEST_OUTPUT_DIRECTORY\"\n then\n\nRichard Hansen (9):\n  remote-hg:  don't decode UTF-8 paths into Unicode objects\n  test-lib.sh: convert $TEST_DIRECTORY to an absolute path\n  test-bzr.sh, test-hg.sh: allow running from any dir\n  test-bzr.sh, test-hg.sh: prepare for change to push.default=simple\n  test-hg.sh: eliminate 'local' bashism\n  test-hg.sh: avoid obsolete 'test' syntax\n  test-hg.sh: fix duplicate content strings in author tests\n  test-hg.sh: help user correlate verbose output with email test\n  remote-bzr, remote-hg: fix email address regular expression\n\n contrib/remote-helpers/git-remote-bzr |  7 +++----\n contrib/remote-helpers/git-remote-hg  |  9 ++++-----\n contrib/remote-helpers/test-bzr.sh    |  5 +++--\n contrib/remote-helpers/test-hg.sh     | 30 ++++++++++++++++--------------\n t/test-lib.sh                         |  4 ++++\n 5 files changed, 30 insertions(+), 25 deletions(-)\n\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230467","messageId":"1384235688-9655-2-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 1/9] remote-hg: don't decode UTF-8 paths into Unicode objects","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:40Z","receivedAt":"2013-11-12T05:54:40Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"The internal mercurial API expects ordinary 8-bit string objects, not\nUnicode string objects.  With this change, the test-hg.sh unit tests\npass again.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/git-remote-hg | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg\nindex 3222afd..c6026b9 100755\n--- a/contrib/remote-helpers/git-remote-hg\n+++ b/contrib/remote-helpers/git-remote-hg\n@@ -747,7 +747,7 @@ def parse_commit(parser):\n             f = { 'deleted' : True }\n         else:\n             die('Unknown file command: %s' % line)\n-        path = c_style_unescape(path).decode('utf-8')\n+        path = c_style_unescape(path)\n         files[path] = f\n \n     # only export the commits if we are on an internal proxy repo\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230468","messageId":"1384235688-9655-3-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 2/9] test-lib.sh: convert $TEST_DIRECTORY to an absolute path","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:41Z","receivedAt":"2013-11-12T05:54:41Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"If $TEST_DIRECTORY is specified in the environment, convert the value\nto an absolute path to ensure that it remains valid even when 'cd' is\nused.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n t/test-lib.sh | 4 ++++\n 1 file changed, 4 insertions(+)\n\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex b25249e..af172d9 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -26,6 +26,10 @@ then\n \t# outside of t/, e.g. for running tests on the test library\n \t# itself.\n \tTEST_DIRECTORY=$(pwd)\n+else\n+\t# ensure that TEST_DIRECTORY is an absolute path so that it\n+\t# works even if the current working directory is changed\n+\tTEST_DIRECTORY=$(cd \"$TEST_DIRECTORY\" && pwd) || exit 1\n fi\n if test -z \"$TEST_OUTPUT_DIRECTORY\"\n then\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230472","messageId":"1384235688-9655-4-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 3/9] test-bzr.sh, test-hg.sh: allow running from any dir","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:42Z","receivedAt":"2013-11-12T05:54:42Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Set TEST_DIRECTORY to the t/ directory (if TEST_DIRECTORY is not\nalready set) so that the user doesn't already have to be in the test\ndirectory to run these test scripts.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-bzr.sh | 3 ++-\n contrib/remote-helpers/test-hg.sh  | 3 ++-\n 2 files changed, 4 insertions(+), 2 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex 5c50251..1e850c3 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -5,7 +5,8 @@\n \n test_description='Test remote-bzr'\n \n-. ./test-lib.sh\n+test -n \"$TEST_DIRECTORY\" || TEST_DIRECTORY=${0%/*}/../../t\n+. \"$TEST_DIRECTORY\"/test-lib.sh\n \n if ! test_have_prereq PYTHON\n then\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 72f745d..fa7d17b 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -8,7 +8,8 @@\n \n test_description='Test remote-hg'\n \n-. ./test-lib.sh\n+test -n \"$TEST_DIRECTORY\" || TEST_DIRECTORY=${0%/*}/../../t\n+. \"$TEST_DIRECTORY\"/test-lib.sh\n \n if ! test_have_prereq PYTHON\n then\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230466","messageId":"1384235688-9655-5-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 4/9] test-bzr.sh, test-hg.sh: prepare for change to push.default=simple","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:43Z","receivedAt":"2013-11-12T05:54:43Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Change 'git push <remote>' to 'git push <remote> <branch>' in one of\nthe test-bzr.sh tests to ensure that the test continues to pass when\nthe default value of push.default changes to simple.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-bzr.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex 1e850c3..1e53ff9 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -379,7 +379,7 @@ test_expect_success 'export utf-8 authors' '\n \tgit add content &&\n \tgit commit -m one &&\n \tgit remote add bzr \"bzr::../bzrrepo\" &&\n-\tgit push bzr\n+\tgit push bzr master\n \t) &&\n \n \t(\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230470","messageId":"1384235688-9655-6-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 5/9] test-hg.sh: eliminate 'local' bashism","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:44Z","receivedAt":"2013-11-12T05:54:44Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Unlike bash, POSIX shell does not specify a 'local' command for\ndeclaring function-local variable scope.  Except for IFS, the variable\nnames are not used anywhere else in the script so simply remove the\n'local'.  For IFS, move the assignment to the 'read' command to\nprevent it from affecting code outside the function.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-hg.sh | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex fa7d17b..ceef6b1 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -54,14 +54,14 @@ check_bookmark () {\n }\n \n check_push () {\n-\tlocal expected_ret=$1 ret=0 ref_ret=0 IFS=':'\n+\texpected_ret=$1 ret=0 ref_ret=0\n \n \tshift\n \tgit push origin \"$@\" 2>error\n \tret=$?\n \tcat error\n \n-\twhile read branch kind\n+\twhile IFS=':' read branch kind\n \tdo\n \t\tcase \"$kind\" in\n \t\t'new')\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230473","messageId":"1384235688-9655-7-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 6/9] test-hg.sh: avoid obsolete 'test' syntax","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:45Z","receivedAt":"2013-11-12T05:54:45Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"The POSIX spec says that the '-a', '-o', and parentheses operands to\nthe 'test' utility are obsolete extensions due to the potential for\nambiguity.  Replace '-o' with '|| test' to avoid unspecified behavior.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-hg.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex ceef6b1..5535e8c 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -83,7 +83,7 @@ check_push () {\n \t\ttest $ref_ret -ne 0 && echo \"match for '$branch' failed\" && break\n \tdone\n \n-\tif test $expected_ret -ne $ret -o $ref_ret -ne 0\n+\tif test $expected_ret -ne $ret || test $ref_ret -ne 0\n \tthen\n \t\treturn 1\n \tfi\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230474","messageId":"1384235688-9655-8-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 7/9] test-hg.sh: fix duplicate content strings in author tests","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:46Z","receivedAt":"2013-11-12T05:54:46Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"\"beta\" was used twice.  Change the second copy to \"gamma\" and\nincrement the remaining content strings.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-hg.sh | 18 +++++++++---------\n 1 file changed, 9 insertions(+), 9 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 5535e8c..eb72db8 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -207,15 +207,15 @@ test_expect_success 'authors' '\n \t>../expected &&\n \tauthor_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n \tauthor_test beta \"test\" \"test <unknown>\" &&\n-\tauthor_test beta \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n-\tauthor_test gamma \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n-\tauthor_test delta \"name<test@example.com>\" \"name <test@example.com>\" &&\n-\tauthor_test epsilon \"name <test@example.com\" \"name <test@example.com>\" &&\n-\tauthor_test zeta \" test \" \"test <unknown>\" &&\n-\tauthor_test eta \"test < test@example.com >\" \"test <test@example.com>\" &&\n-\tauthor_test theta \"test >test@example.com>\" \"test <test@example.com>\" &&\n-\tauthor_test iota \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n-\tauthor_test kappa \"test@example.com\" \"Unknown <test@example.com>\"\n+\tauthor_test gamma \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n+\tauthor_test delta \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n+\tauthor_test epsilon \"name<test@example.com>\" \"name <test@example.com>\" &&\n+\tauthor_test zeta \"name <test@example.com\" \"name <test@example.com>\" &&\n+\tauthor_test eta \" test \" \"test <unknown>\" &&\n+\tauthor_test theta \"test < test@example.com >\" \"test <test@example.com>\" &&\n+\tauthor_test iota \"test >test@example.com>\" \"test <test@example.com>\" &&\n+\tauthor_test kappa \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n+\tauthor_test lambda \"test@example.com\" \"Unknown <test@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230469","messageId":"1384235688-9655-9-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 8/9] test-hg.sh: help user correlate verbose output with email test","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:47Z","receivedAt":"2013-11-12T05:54:47Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"It's hard to tell which author conversion test failed when the email\naddresses look similar.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-hg.sh | 20 ++++++++++----------\n 1 file changed, 10 insertions(+), 10 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex eb72db8..642ad93 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -206,16 +206,16 @@ test_expect_success 'authors' '\n \n \t>../expected &&\n \tauthor_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n-\tauthor_test beta \"test\" \"test <unknown>\" &&\n-\tauthor_test gamma \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n-\tauthor_test delta \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n-\tauthor_test epsilon \"name<test@example.com>\" \"name <test@example.com>\" &&\n-\tauthor_test zeta \"name <test@example.com\" \"name <test@example.com>\" &&\n-\tauthor_test eta \" test \" \"test <unknown>\" &&\n-\tauthor_test theta \"test < test@example.com >\" \"test <test@example.com>\" &&\n-\tauthor_test iota \"test >test@example.com>\" \"test <test@example.com>\" &&\n-\tauthor_test kappa \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n-\tauthor_test lambda \"test@example.com\" \"Unknown <test@example.com>\"\n+\tauthor_test beta \"beta\" \"beta <unknown>\" &&\n+\tauthor_test gamma \"gamma <test@example.com> (comment)\" \"gamma <test@example.com>\" &&\n+\tauthor_test delta \"<delta@example.com>\" \"Unknown <delta@example.com>\" &&\n+\tauthor_test epsilon \"epsilon<test@example.com>\" \"epsilon <test@example.com>\" &&\n+\tauthor_test zeta \"zeta <test@example.com\" \"zeta <test@example.com>\" &&\n+\tauthor_test eta \" eta \" \"eta <unknown>\" &&\n+\tauthor_test theta \"theta < test@example.com >\" \"theta <test@example.com>\" &&\n+\tauthor_test iota \"iota >test@example.com>\" \"iota <test@example.com>\" &&\n+\tauthor_test kappa \"kappa < test <at> example <dot> com>\" \"kappa <unknown>\" &&\n+\tauthor_test lambda \"lambda@example.com\" \"Unknown <lambda@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230471","messageId":"1384235688-9655-10-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v2 9/9] remote-bzr, remote-hg: fix email address regular expression","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T05:54:48Z","receivedAt":"2013-11-12T05:54:48Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Before, strings like \"foo.bar@example.com\" would be converted to\n\"foo. <bar@example.com>\" when they should be \"unknown\n<foo.bar@example.com>\".\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/git-remote-bzr | 7 +++----\n contrib/remote-helpers/git-remote-hg  | 7 +++----\n contrib/remote-helpers/test-hg.sh     | 3 ++-\n 3 files changed, 8 insertions(+), 9 deletions(-)\n\ndiff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr\nindex 054161a..7e34532 100755\n--- a/contrib/remote-helpers/git-remote-bzr\n+++ b/contrib/remote-helpers/git-remote-bzr\n@@ -44,8 +44,8 @@ import StringIO\n import atexit, shutil, hashlib, urlparse, subprocess\n \n NAME_RE = re.compile('^([^<>]+)')\n-AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')\n-EMAIL_RE = re.compile('^([^<>]+[^ \\\\\\t<>])?\\\\b(?:[ \\\\t<>]*?)\\\\b([^ \\\\t<>]+@[^ \\\\t<>]+)')\n+AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')\n+EMAIL_RE = re.compile(r'([^ \\t<>]+@[^ \\t<>]+)')\n RAW_AUTHOR_RE = re.compile('^(\\w+) (.+)? <(.*)> (\\d+) ([+-]\\d+)')\n \n def die(msg, *args):\n@@ -193,8 +193,7 @@ def fixup_user(user):\n     else:\n         m = EMAIL_RE.match(user)\n         if m:\n-            name = m.group(1)\n-            mail = m.group(2)\n+            mail = m.group(1)\n         else:\n             m = NAME_RE.match(user)\n             if m:\ndiff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg\nindex c6026b9..30402d5 100755\n--- a/contrib/remote-helpers/git-remote-hg\n+++ b/contrib/remote-helpers/git-remote-hg\n@@ -51,8 +51,8 @@ import time as ptime\n #\n \n NAME_RE = re.compile('^([^<>]+)')\n-AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')\n-EMAIL_RE = re.compile('^([^<>]+[^ \\\\\\t<>])?\\\\b(?:[ \\\\t<>]*?)\\\\b([^ \\\\t<>]+@[^ \\\\t<>]+)')\n+AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')\n+EMAIL_RE = re.compile(r'([^ \\t<>]+@[^ \\t<>]+)')\n AUTHOR_HG_RE = re.compile('^(.*?) ?<(.*?)(?:>(.+)?)?$')\n RAW_AUTHOR_RE = re.compile('^(\\w+) (?:(.+)? )?<(.*)> (\\d+) ([+-]\\d+)')\n \n@@ -316,8 +316,7 @@ def fixup_user_git(user):\n     else:\n         m = EMAIL_RE.match(user)\n         if m:\n-            name = m.group(1)\n-            mail = m.group(2)\n+            mail = m.group(1)\n         else:\n             m = NAME_RE.match(user)\n             if m:\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 642ad93..347e812 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -215,7 +215,8 @@ test_expect_success 'authors' '\n \tauthor_test theta \"theta < test@example.com >\" \"theta <test@example.com>\" &&\n \tauthor_test iota \"iota >test@example.com>\" \"iota <test@example.com>\" &&\n \tauthor_test kappa \"kappa < test <at> example <dot> com>\" \"kappa <unknown>\" &&\n-\tauthor_test lambda \"lambda@example.com\" \"Unknown <lambda@example.com>\"\n+\tauthor_test lambda \"lambda@example.com\" \"Unknown <lambda@example.com>\" &&\n+\tauthor_test mu \"mu.mu@example.com\" \"Unknown <mu.mu@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230475","messageId":"5281C522.7050403@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-3-git-send-email-rhansen@bbn.com","subject":"Re: [PATCH v2 2/9] test-lib.sh: convert $TEST_DIRECTORY to an absolute path","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-12T06:05:22Z","receivedAt":"2013-11-12T06:05:22Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"On 2013-11-12 00:54, Richard Hansen wrote:\n> If $TEST_DIRECTORY is specified in the environment, convert the value\n> to an absolute path to ensure that it remains valid even when 'cd' is\n> used.\n> \n> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n\nActually, credit for this and the next patch should go to Felipe.  How\nshould I note that?\n\nThanks,\nRichard\n\n\n> ---\n>  t/test-lib.sh | 4 ++++\n>  1 file changed, 4 insertions(+)\n> \n> diff --git a/t/test-lib.sh b/t/test-lib.sh\n> index b25249e..af172d9 100644\n> --- a/t/test-lib.sh\n> +++ b/t/test-lib.sh\n> @@ -26,6 +26,10 @@ then\n>  \t# outside of t/, e.g. for running tests on the test library\n>  \t# itself.\n>  \tTEST_DIRECTORY=$(pwd)\n> +else\n> +\t# ensure that TEST_DIRECTORY is an absolute path so that it\n> +\t# works even if the current working directory is changed\n> +\tTEST_DIRECTORY=$(cd \"$TEST_DIRECTORY\" && pwd) || exit 1\n>  fi\n>  if test -z \"$TEST_OUTPUT_DIRECTORY\"\n>  then\n"},{"id":"230504","messageId":"xmqqsiv1h57d.fsf@gitster.dls.corp.google.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"Re: [PATCH v2 0/9] remote-hg, remote-bzr fixes","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-11-12T17:59:02Z","receivedAt":"2013-11-12T17:59:02Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Richard Hansen <rhansen@bbn.com> writes:\n\n> A handful of fixes for the git-remote-hg and git-remote-bzr remote\n> helpers and their unit tests.\n\nThanks; could you arrange with Felipe so that we can have\nAcked-by: or Reviewed-by: after your Signed-off-by: lines\nof these patches?\n"},{"id":"230508","messageId":"xmqqfvr1gzbc.fsf@gitster.dls.corp.google.com","threadId":"35318","inReplyTo":"5281C522.7050403@bbn.com","subject":"Re: [PATCH v2 2/9] test-lib.sh: convert $TEST_DIRECTORY to an absolute path","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-11-12T20:06:14Z","receivedAt":"2013-11-12T20:06:14Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Richard Hansen <rhansen@bbn.com> writes:\n\n> On 2013-11-12 00:54, Richard Hansen wrote:\n>> If $TEST_DIRECTORY is specified in the environment, convert the value\n>> to an absolute path to ensure that it remains valid even when 'cd' is\n>> used.\n>> \n>> Signed-off-by: Richard Hansen <rhansen@bbn.com>\n>\n> Actually, credit for this and the next patch should go to Felipe.  How\n> should I note that?\n\nIf the patch text was copied from his response message, you would start\nthe _body_ of your e-mail as:\n\n\tFrom: F.. C.. <felipe.contreras@gmail.com>\n        \n\tIf $TEST_DIRECTORY is specified ...\n\n\tSigned-off-by: F.. C.. <felipe.contreras@gmail.com>\n\tSigned-off-by: R Hansen <rhansen@...>\n        \n_after_ getting him say it is OK to add his Sign-off.  The first\nline in the body of your e-mail, \"From: Real Author\", followed by a\nblank line, will signal to \"git am\" that you are forwarding a patch\nby somebody else, and we record that real author on the \"author\"\nline of the resulting commit object.\n\nOn the other hand, if the patch is based on the _idea_ you gained by\ndiscussing with him, you would just mention it near your sign-off,\nlike this:\n\n\tIf $TEST_DIRECTORY is specified ...\n\n\tHelped-by: F... C... <felipe.contreras@gmail.com>\n\tSigned-off-by: R... Hansen <rhansen@...>\n\n\n\t\n\n>\n> Thanks,\n> Richard\n>\n>\n>> ---\n>>  t/test-lib.sh | 4 ++++\n>>  1 file changed, 4 insertions(+)\n>> \n>> diff --git a/t/test-lib.sh b/t/test-lib.sh\n>> index b25249e..af172d9 100644\n>> --- a/t/test-lib.sh\n>> +++ b/t/test-lib.sh\n>> @@ -26,6 +26,10 @@ then\n>>  \t# outside of t/, e.g. for running tests on the test library\n>>  \t# itself.\n>>  \tTEST_DIRECTORY=$(pwd)\n>> +else\n>> +\t# ensure that TEST_DIRECTORY is an absolute path so that it\n>> +\t# works even if the current working directory is changed\n>> +\tTEST_DIRECTORY=$(cd \"$TEST_DIRECTORY\" && pwd) || exit 1\n>>  fi\n>>  if test -z \"$TEST_OUTPUT_DIRECTORY\"\n>>  then\n"},{"id":"230510","messageId":"52828e2bc5ce6_3b98795e78ab@nysa.notmuch","threadId":"35318","inReplyTo":"5281BDD8.6040501@bbn.com","subject":"Re: [PATCH 5/7] test-hg.sh: avoid obsolete 'test' syntax","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-12T20:23:07Z","receivedAt":"2013-11-12T20:23:07Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> On 2013-11-11 06:44, Felipe Contreras wrote:\n> > Richard Hansen wrote:\n> >> The POSIX spec says that the '-a', '-o', and parentheses operands to\n> >> the 'test' utility are obsolete extensions due to the potential for\n> >> ambiguity.  Replace '-o' with '|| test' to avoid unspecified behavior.\n> > \n> > All right, if you say so.\n> \n> In case you're curious about what the spec says:\n> \n> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html#tag_20_128_16\n\nThanks, I didn't know the POSIX spec was available publicly.\n\n-- \nFelipe Contreras\n"},{"id":"230511","messageId":"52828ec367a97_3b98795e78fc@nysa.notmuch","threadId":"35318","inReplyTo":"5281C522.7050403@bbn.com","subject":"Re: [PATCH v2 2/9] test-lib.sh: convert $TEST_DIRECTORY to an absolute path","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-12T20:25:39Z","receivedAt":"2013-11-12T20:25:39Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> On 2013-11-12 00:54, Richard Hansen wrote:\n> > If $TEST_DIRECTORY is specified in the environment, convert the value\n> > to an absolute path to ensure that it remains valid even when 'cd' is\n> > used.\n> > \n> > Signed-off-by: Richard Hansen <rhansen@bbn.com>\n> \n> Actually, credit for this and the next patch should go to Felipe.  How\n> should I note that?\n\nNormally what I would do is put myself as the author, but not s-o-b, but since\nnow I'm telling you you can add my s-o-b, you can do that.\n\nI would have sent those patches myself, if Junio agreed that was the way to go,\nbut I didn't see that.\n\nCheers.\n\n-- \nFelipe Contreras\n"},{"id":"230512","messageId":"52828f41a412b_3b98795e788b@nysa.notmuch","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"RE: [PATCH v2 0/9] remote-hg, remote-bzr fixes","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2013-11-12T20:27:45Z","receivedAt":"2013-11-12T20:27:45Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Richard Hansen wrote:\n> A handful of fixes for the git-remote-hg and git-remote-bzr remote\n> helpers and their unit tests.\n\nI'm OK with the whole series.\n\n-- \nFelipe Contreras\n"},{"id":"230736","messageId":"1384747970-25481-1-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384235688-9655-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 0/9] remote-hg, remote-bzr fixes","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:41Z","receivedAt":"2013-11-18T04:12:41Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"A handful of fixes for the git-remote-hg and git-remote-bzr remote\nhelpers and their unit tests.\n\nChanges from v2:\n  * changed the author on the following patches to Felipe Contreras:\n    - [2/9] test-lib.sh: convert $TEST_DIRECTORY to an absolute path\n    - [3/9] test-bzr.sh, test-hg.sh: allow running from any dir\n  * added 'Reviewed-by: Felipe Contreras <felipe.contreras@gmail.com>'\n    to the other patches\n  * made the following comment change:\n\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex af172d9..d303e6c 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -28,7 +28,7 @@ then\n \tTEST_DIRECTORY=$(pwd)\n else\n \t# ensure that TEST_DIRECTORY is an absolute path so that it\n-\t# works even if the current working directory is changed\n+\t# is valid even if the current working directory is changed\n \tTEST_DIRECTORY=$(cd \"$TEST_DIRECTORY\" && pwd) || exit 1\n fi\n if test -z \"$TEST_OUTPUT_DIRECTORY\"\n\nFelipe Contreras (2):\n  test-lib.sh: convert $TEST_DIRECTORY to an absolute path\n  test-bzr.sh, test-hg.sh: allow running from any dir\n\nRichard Hansen (7):\n  remote-hg:  don't decode UTF-8 paths into Unicode objects\n  test-bzr.sh, test-hg.sh: prepare for change to push.default=simple\n  test-hg.sh: eliminate 'local' bashism\n  test-hg.sh: avoid obsolete 'test' syntax\n  test-hg.sh: fix duplicate content strings in author tests\n  test-hg.sh: help user correlate verbose output with email test\n  remote-bzr, remote-hg: fix email address regular expression\n\n contrib/remote-helpers/git-remote-bzr |  7 +++----\n contrib/remote-helpers/git-remote-hg  |  9 ++++-----\n contrib/remote-helpers/test-bzr.sh    |  5 +++--\n contrib/remote-helpers/test-hg.sh     | 30 ++++++++++++++++--------------\n t/test-lib.sh                         |  4 ++++\n 5 files changed, 30 insertions(+), 25 deletions(-)\n\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230737","messageId":"1384747970-25481-2-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 1/9] remote-hg: don't decode UTF-8 paths into Unicode objects","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:42Z","receivedAt":"2013-11-18T04:12:42Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"The internal mercurial API expects ordinary 8-bit string objects, not\nUnicode string objects.  With this change, the test-hg.sh unit tests\npass again.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\nReviewed-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/git-remote-hg | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg\nindex 3222afd..c6026b9 100755\n--- a/contrib/remote-helpers/git-remote-hg\n+++ b/contrib/remote-helpers/git-remote-hg\n@@ -747,7 +747,7 @@ def parse_commit(parser):\n             f = { 'deleted' : True }\n         else:\n             die('Unknown file command: %s' % line)\n-        path = c_style_unescape(path).decode('utf-8')\n+        path = c_style_unescape(path)\n         files[path] = f\n \n     # only export the commits if we are on an internal proxy repo\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230735","messageId":"1384747970-25481-3-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 2/9] test-lib.sh: convert $TEST_DIRECTORY to an absolute path","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:43Z","receivedAt":"2013-11-18T04:12:43Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"From: Felipe Contreras <felipe.contreras@gmail.com>\n\nIf $TEST_DIRECTORY is specified in the environment, convert the value\nto an absolute path to ensure that it remains valid even when 'cd' is\nused.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\nReviewed-by: Richard Hansen <rhansen@bbn.com>\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n t/test-lib.sh | 4 ++++\n 1 file changed, 4 insertions(+)\n\ndiff --git a/t/test-lib.sh b/t/test-lib.sh\nindex b25249e..d303e6c 100644\n--- a/t/test-lib.sh\n+++ b/t/test-lib.sh\n@@ -26,6 +26,10 @@ then\n \t# outside of t/, e.g. for running tests on the test library\n \t# itself.\n \tTEST_DIRECTORY=$(pwd)\n+else\n+\t# ensure that TEST_DIRECTORY is an absolute path so that it\n+\t# is valid even if the current working directory is changed\n+\tTEST_DIRECTORY=$(cd \"$TEST_DIRECTORY\" && pwd) || exit 1\n fi\n if test -z \"$TEST_OUTPUT_DIRECTORY\"\n then\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230740","messageId":"1384747970-25481-4-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 3/9] test-bzr.sh, test-hg.sh: allow running from any dir","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:44Z","receivedAt":"2013-11-18T04:12:44Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"From: Felipe Contreras <felipe.contreras@gmail.com>\n\nSet TEST_DIRECTORY to the t/ directory (if TEST_DIRECTORY is not\nalready set) so that the user doesn't already have to be in the test\ndirectory to run these test scripts.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\nBased-on-patch-by: Richard Hansen <rhansen@bbn.com>\nReviewed-by: Richard Hansen <rhansen@bbn.com>\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\n---\n contrib/remote-helpers/test-bzr.sh | 3 ++-\n contrib/remote-helpers/test-hg.sh  | 3 ++-\n 2 files changed, 4 insertions(+), 2 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex 5c50251..1e850c3 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -5,7 +5,8 @@\n \n test_description='Test remote-bzr'\n \n-. ./test-lib.sh\n+test -n \"$TEST_DIRECTORY\" || TEST_DIRECTORY=${0%/*}/../../t\n+. \"$TEST_DIRECTORY\"/test-lib.sh\n \n if ! test_have_prereq PYTHON\n then\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 72f745d..fa7d17b 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -8,7 +8,8 @@\n \n test_description='Test remote-hg'\n \n-. ./test-lib.sh\n+test -n \"$TEST_DIRECTORY\" || TEST_DIRECTORY=${0%/*}/../../t\n+. \"$TEST_DIRECTORY\"/test-lib.sh\n \n if ! test_have_prereq PYTHON\n then\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230739","messageId":"1384747970-25481-5-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 4/9] test-bzr.sh, test-hg.sh: prepare for change to push.default=simple","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:45Z","receivedAt":"2013-11-18T04:12:45Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Change 'git push <remote>' to 'git push <remote> <branch>' in one of\nthe test-bzr.sh tests to ensure that the test continues to pass when\nthe default value of push.default changes to simple.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\nReviewed-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/test-bzr.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/test-bzr.sh b/contrib/remote-helpers/test-bzr.sh\nindex 1e850c3..1e53ff9 100755\n--- a/contrib/remote-helpers/test-bzr.sh\n+++ b/contrib/remote-helpers/test-bzr.sh\n@@ -379,7 +379,7 @@ test_expect_success 'export utf-8 authors' '\n \tgit add content &&\n \tgit commit -m one &&\n \tgit remote add bzr \"bzr::../bzrrepo\" &&\n-\tgit push bzr\n+\tgit push bzr master\n \t) &&\n \n \t(\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230738","messageId":"1384747970-25481-6-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 5/9] test-hg.sh: eliminate 'local' bashism","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:46Z","receivedAt":"2013-11-18T04:12:46Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Unlike bash, POSIX shell does not specify a 'local' command for\ndeclaring function-local variable scope.  Except for IFS, the variable\nnames are not used anywhere else in the script so simply remove the\n'local'.  For IFS, move the assignment to the 'read' command to\nprevent it from affecting code outside the function.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\nReviewed-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/test-hg.sh | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex fa7d17b..ceef6b1 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -54,14 +54,14 @@ check_bookmark () {\n }\n \n check_push () {\n-\tlocal expected_ret=$1 ret=0 ref_ret=0 IFS=':'\n+\texpected_ret=$1 ret=0 ref_ret=0\n \n \tshift\n \tgit push origin \"$@\" 2>error\n \tret=$?\n \tcat error\n \n-\twhile read branch kind\n+\twhile IFS=':' read branch kind\n \tdo\n \t\tcase \"$kind\" in\n \t\t'new')\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230741","messageId":"1384747970-25481-7-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 6/9] test-hg.sh: avoid obsolete 'test' syntax","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:47Z","receivedAt":"2013-11-18T04:12:47Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"The POSIX spec says that the '-a', '-o', and parentheses operands to\nthe 'test' utility are obsolete extensions due to the potential for\nambiguity.  Replace '-o' with '|| test' to avoid unspecified behavior.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\nReviewed-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/test-hg.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex ceef6b1..5535e8c 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -83,7 +83,7 @@ check_push () {\n \t\ttest $ref_ret -ne 0 && echo \"match for '$branch' failed\" && break\n \tdone\n \n-\tif test $expected_ret -ne $ret -o $ref_ret -ne 0\n+\tif test $expected_ret -ne $ret || test $ref_ret -ne 0\n \tthen\n \t\treturn 1\n \tfi\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230742","messageId":"1384747970-25481-8-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 7/9] test-hg.sh: fix duplicate content strings in author tests","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:48Z","receivedAt":"2013-11-18T04:12:48Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"\"beta\" was used twice.  Change the second copy to \"gamma\" and\nincrement the remaining content strings.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\nReviewed-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/test-hg.sh | 18 +++++++++---------\n 1 file changed, 9 insertions(+), 9 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 5535e8c..eb72db8 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -207,15 +207,15 @@ test_expect_success 'authors' '\n \t>../expected &&\n \tauthor_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n \tauthor_test beta \"test\" \"test <unknown>\" &&\n-\tauthor_test beta \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n-\tauthor_test gamma \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n-\tauthor_test delta \"name<test@example.com>\" \"name <test@example.com>\" &&\n-\tauthor_test epsilon \"name <test@example.com\" \"name <test@example.com>\" &&\n-\tauthor_test zeta \" test \" \"test <unknown>\" &&\n-\tauthor_test eta \"test < test@example.com >\" \"test <test@example.com>\" &&\n-\tauthor_test theta \"test >test@example.com>\" \"test <test@example.com>\" &&\n-\tauthor_test iota \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n-\tauthor_test kappa \"test@example.com\" \"Unknown <test@example.com>\"\n+\tauthor_test gamma \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n+\tauthor_test delta \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n+\tauthor_test epsilon \"name<test@example.com>\" \"name <test@example.com>\" &&\n+\tauthor_test zeta \"name <test@example.com\" \"name <test@example.com>\" &&\n+\tauthor_test eta \" test \" \"test <unknown>\" &&\n+\tauthor_test theta \"test < test@example.com >\" \"test <test@example.com>\" &&\n+\tauthor_test iota \"test >test@example.com>\" \"test <test@example.com>\" &&\n+\tauthor_test kappa \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n+\tauthor_test lambda \"test@example.com\" \"Unknown <test@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230744","messageId":"1384747970-25481-9-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 8/9] test-hg.sh: help user correlate verbose output with email test","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:49Z","receivedAt":"2013-11-18T04:12:49Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"It's hard to tell which author conversion test failed when the email\naddresses look similar.\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\nReviewed-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/test-hg.sh | 20 ++++++++++----------\n 1 file changed, 10 insertions(+), 10 deletions(-)\n\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex eb72db8..642ad93 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -206,16 +206,16 @@ test_expect_success 'authors' '\n \n \t>../expected &&\n \tauthor_test alpha \"\" \"H G Wells <wells@example.com>\" &&\n-\tauthor_test beta \"test\" \"test <unknown>\" &&\n-\tauthor_test gamma \"test <test@example.com> (comment)\" \"test <test@example.com>\" &&\n-\tauthor_test delta \"<test@example.com>\" \"Unknown <test@example.com>\" &&\n-\tauthor_test epsilon \"name<test@example.com>\" \"name <test@example.com>\" &&\n-\tauthor_test zeta \"name <test@example.com\" \"name <test@example.com>\" &&\n-\tauthor_test eta \" test \" \"test <unknown>\" &&\n-\tauthor_test theta \"test < test@example.com >\" \"test <test@example.com>\" &&\n-\tauthor_test iota \"test >test@example.com>\" \"test <test@example.com>\" &&\n-\tauthor_test kappa \"test < test <at> example <dot> com>\" \"test <unknown>\" &&\n-\tauthor_test lambda \"test@example.com\" \"Unknown <test@example.com>\"\n+\tauthor_test beta \"beta\" \"beta <unknown>\" &&\n+\tauthor_test gamma \"gamma <test@example.com> (comment)\" \"gamma <test@example.com>\" &&\n+\tauthor_test delta \"<delta@example.com>\" \"Unknown <delta@example.com>\" &&\n+\tauthor_test epsilon \"epsilon<test@example.com>\" \"epsilon <test@example.com>\" &&\n+\tauthor_test zeta \"zeta <test@example.com\" \"zeta <test@example.com>\" &&\n+\tauthor_test eta \" eta \" \"eta <unknown>\" &&\n+\tauthor_test theta \"theta < test@example.com >\" \"theta <test@example.com>\" &&\n+\tauthor_test iota \"iota >test@example.com>\" \"iota <test@example.com>\" &&\n+\tauthor_test kappa \"kappa < test <at> example <dot> com>\" \"kappa <unknown>\" &&\n+\tauthor_test lambda \"lambda@example.com\" \"Unknown <lambda@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230743","messageId":"1384747970-25481-10-git-send-email-rhansen@bbn.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"[PATCH v3 9/9] remote-bzr, remote-hg: fix email address regular expression","fromName":"Richard Hansen","fromEmail":"rhansen@bbn.com","sentAt":"2013-11-18T04:12:50Z","receivedAt":"2013-11-18T04:12:50Z","isPatch":true,"sender":{"key":"rhansen@rhansen.org","avatar":null},"body":"Before, strings like \"foo.bar@example.com\" would be converted to\n\"foo. <bar@example.com>\" when they should be \"unknown\n<foo.bar@example.com>\".\n\nSigned-off-by: Richard Hansen <rhansen@bbn.com>\nReviewed-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/git-remote-bzr | 7 +++----\n contrib/remote-helpers/git-remote-hg  | 7 +++----\n contrib/remote-helpers/test-hg.sh     | 3 ++-\n 3 files changed, 8 insertions(+), 9 deletions(-)\n\ndiff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr\nindex 054161a..7e34532 100755\n--- a/contrib/remote-helpers/git-remote-bzr\n+++ b/contrib/remote-helpers/git-remote-bzr\n@@ -44,8 +44,8 @@ import StringIO\n import atexit, shutil, hashlib, urlparse, subprocess\n \n NAME_RE = re.compile('^([^<>]+)')\n-AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')\n-EMAIL_RE = re.compile('^([^<>]+[^ \\\\\\t<>])?\\\\b(?:[ \\\\t<>]*?)\\\\b([^ \\\\t<>]+@[^ \\\\t<>]+)')\n+AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')\n+EMAIL_RE = re.compile(r'([^ \\t<>]+@[^ \\t<>]+)')\n RAW_AUTHOR_RE = re.compile('^(\\w+) (.+)? <(.*)> (\\d+) ([+-]\\d+)')\n \n def die(msg, *args):\n@@ -193,8 +193,7 @@ def fixup_user(user):\n     else:\n         m = EMAIL_RE.match(user)\n         if m:\n-            name = m.group(1)\n-            mail = m.group(2)\n+            mail = m.group(1)\n         else:\n             m = NAME_RE.match(user)\n             if m:\ndiff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg\nindex c6026b9..30402d5 100755\n--- a/contrib/remote-helpers/git-remote-hg\n+++ b/contrib/remote-helpers/git-remote-hg\n@@ -51,8 +51,8 @@ import time as ptime\n #\n \n NAME_RE = re.compile('^([^<>]+)')\n-AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$')\n-EMAIL_RE = re.compile('^([^<>]+[^ \\\\\\t<>])?\\\\b(?:[ \\\\t<>]*?)\\\\b([^ \\\\t<>]+@[^ \\\\t<>]+)')\n+AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')\n+EMAIL_RE = re.compile(r'([^ \\t<>]+@[^ \\t<>]+)')\n AUTHOR_HG_RE = re.compile('^(.*?) ?<(.*?)(?:>(.+)?)?$')\n RAW_AUTHOR_RE = re.compile('^(\\w+) (?:(.+)? )?<(.*)> (\\d+) ([+-]\\d+)')\n \n@@ -316,8 +316,7 @@ def fixup_user_git(user):\n     else:\n         m = EMAIL_RE.match(user)\n         if m:\n-            name = m.group(1)\n-            mail = m.group(2)\n+            mail = m.group(1)\n         else:\n             m = NAME_RE.match(user)\n             if m:\ndiff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh\nindex 642ad93..347e812 100755\n--- a/contrib/remote-helpers/test-hg.sh\n+++ b/contrib/remote-helpers/test-hg.sh\n@@ -215,7 +215,8 @@ test_expect_success 'authors' '\n \tauthor_test theta \"theta < test@example.com >\" \"theta <test@example.com>\" &&\n \tauthor_test iota \"iota >test@example.com>\" \"iota <test@example.com>\" &&\n \tauthor_test kappa \"kappa < test <at> example <dot> com>\" \"kappa <unknown>\" &&\n-\tauthor_test lambda \"lambda@example.com\" \"Unknown <lambda@example.com>\"\n+\tauthor_test lambda \"lambda@example.com\" \"Unknown <lambda@example.com>\" &&\n+\tauthor_test mu \"mu.mu@example.com\" \"Unknown <mu.mu@example.com>\"\n \t) &&\n \n \tgit clone \"hg::hgrepo\" gitrepo &&\n-- \n1.8.5.rc1.208.g8ff7964\n"},{"id":"230755","messageId":"xmqqbo1hd6xp.fsf@gitster.dls.corp.google.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"Re: [PATCH v3 0/9] remote-hg, remote-bzr fixes","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-11-18T16:13:22Z","receivedAt":"2013-11-18T16:13:22Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Richard Hansen <rhansen@bbn.com> writes:\n\n> A handful of fixes for the git-remote-hg and git-remote-bzr remote\n> helpers and their unit tests.\n>\n> Changes from v2:\n>   * changed the author on the following patches to Felipe Contreras:\n>     - [2/9] test-lib.sh: convert $TEST_DIRECTORY to an absolute path\n>     - [3/9] test-bzr.sh, test-hg.sh: allow running from any dir\n>   * added 'Reviewed-by: Felipe Contreras <felipe.contreras@gmail.com>'\n>     to the other patches\n>   * made the following comment change:\n\nThanks, both; will requeue.\n"},{"id":"230783","messageId":"xmqq61rpbcx0.fsf@gitster.dls.corp.google.com","threadId":"35318","inReplyTo":"1384747970-25481-1-git-send-email-rhansen@bbn.com","subject":"Re: [PATCH v3 0/9] remote-hg, remote-bzr fixes","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2013-11-18T21:47:07Z","receivedAt":"2013-11-18T21:47:07Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thanks, will requeue.\n"}]}