From: Junio C Hamano Date: Thu, 11 Jul 2013 19:07:33 GMT Subject: Re: [PATCH v2 3/4] t4203: test mailmap functionality directly rather than indirectly Message-ID: <7vhag0rk3u.fsf@alter.siamese.dyndns.org> In-Reply-To: <1373554528-15775-4-git-send-email-sunshine@sunshineco.com> Eric Sunshine writes: > With the introduction of check-mailmap, it is now possible to check > .mailmap functionality directly rather than indirectly as a side-effect > of other commands (such as git-shortlog), therefore, do so. Does this patch mean that we will now ignore future breakages in shortlog and blame if their mailmap integration becomes buggy? I am not convinced it is a good idea if that is what is going on. > > Signed-off-by: Eric Sunshine > --- > t/t4203-mailmap.sh | 133 ++++++++++++++++++----------------------------------- > 1 file changed, 45 insertions(+), 88 deletions(-) > > diff --git a/t/t4203-mailmap.sh b/t/t4203-mailmap.sh > index 8645492..48a000b 100755 > --- a/t/t4203-mailmap.sh > +++ b/t/t4203-mailmap.sh > @@ -74,128 +74,96 @@ test_expect_success 'check-mailmap bogus contact' ' > ' > > cat >expect <<\EOF > -A U Thor (1): > - initial > - > -nick1 (1): > - second > - > +A U Thor > +nick1 > EOF > > test_expect_success 'No mailmap' ' > - git shortlog HEAD >actual && > + git check-mailmap --stdin actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -Repo Guy (1): > - initial > - > -nick1 (1): > - second > - > +Repo Guy > +nick1 > EOF > > test_expect_success 'default .mailmap' ' > echo "Repo Guy " > .mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin actual && > test_cmp expect actual > ' > > # Using a mailmap file in a subdirectory of the repo here, but > # could just as well have been a file outside of the repository > cat >expect <<\EOF > -Internal Guy (1): > - second > - > -Repo Guy (1): > - initial > - > +Repo Guy > +Internal Guy > EOF > test_expect_success 'mailmap.file set' ' > mkdir -p internal_mailmap && > echo "Internal Guy " > internal_mailmap/.mailmap && > git config mailmap.file internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -External Guy (1): > - initial > - > -Internal Guy (1): > - second > - > +External Guy > +Internal Guy > EOF > test_expect_success 'mailmap.file override' ' > echo "External Guy " >> internal_mailmap/.mailmap && > git config mailmap.file internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -Repo Guy (1): > - initial > - > -nick1 (1): > - second > - > +Repo Guy > +nick1 > EOF > > test_expect_success 'mailmap.file non-existent' ' > rm internal_mailmap/.mailmap && > rmdir internal_mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -Internal Guy (1): > - second > - > -Repo Guy (1): > - initial > - > +Repo Guy > +Internal Guy > EOF > > test_expect_success 'name entry after email entry' ' > mkdir -p internal_mailmap && > echo " " >internal_mailmap/.mailmap && > echo "Internal Guy " >>internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -Internal Guy (1): > - second > - > -Repo Guy (1): > - initial > - > +Repo Guy > +Internal Guy > EOF > > test_expect_success 'name entry after email entry, case-insensitive' ' > mkdir -p internal_mailmap && > echo " " >internal_mailmap/.mailmap && > echo "Internal Guy " >>internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -A U Thor (1): > - initial > - > -nick1 (1): > - second > - > +A U Thor > +nick1 > EOF > test_expect_success 'No mailmap files, but configured' ' > rm -f .mailmap internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin actual && > test_cmp expect actual > ' > > @@ -217,54 +185,43 @@ test_expect_success 'setup mailmap blob tests' ' > > test_expect_success 'mailmap.blob set' ' > cat >expect <<-\EOF && > - Blob Guy (1): > - second > - > - Repo Guy (1): > - initial > - > + Repo Guy > + Blob Guy > EOF > - git -c mailmap.blob=map:just-bugs shortlog HEAD >actual && > + git -c mailmap.blob=map:just-bugs check-mailmap --stdin \ > + actual && > test_cmp expect actual > ' > > test_expect_success 'mailmap.blob overrides .mailmap' ' > cat >expect <<-\EOF && > - Blob Guy (2): > - initial > - second > - > + Blob Guy > + Blob Guy > EOF > - git -c mailmap.blob=map:both shortlog HEAD >actual && > + git -c mailmap.blob=map:both check-mailmap --stdin \ > + actual && > test_cmp expect actual > ' > > test_expect_success 'mailmap.file overrides mailmap.blob' ' > cat >expect <<-\EOF && > - Blob Guy (1): > - second > - > - Internal Guy (1): > - initial > - > + Internal Guy > + Blob Guy > EOF > git \ > -c mailmap.blob=map:both \ > -c mailmap.file=internal.map \ > - shortlog HEAD >actual && > + check-mailmap --stdin actual && > test_cmp expect actual > ' > > test_expect_success 'mailmap.blob can be missing' ' > cat >expect <<-\EOF && > - Repo Guy (1): > - initial > - > - nick1 (1): > - second > - > + Repo Guy > + nick1 > EOF > - git -c mailmap.blob=map:nonexistent shortlog HEAD >actual && > + git -c mailmap.blob=map:nonexistent check-mailmap --stdin \ > + actual && > test_cmp expect actual > ' > > @@ -273,12 +230,12 @@ test_expect_success 'mailmap.blob defaults to off in non-bare repo' ' > ( > cd non-bare && > test_commit one .mailmap "Fake Name " && > - echo " 1 Fake Name" >expect && > - git shortlog -ns HEAD >actual && > + echo "Fake Name " >expect && > + git check-mailmap "A U Thor " >actual && > test_cmp expect actual && > rm .mailmap && > - echo " 1 A U Thor" >expect && > - git shortlog -ns HEAD >actual && > + echo "A U Thor " >expect && > + git check-mailmap "A U Thor " >actual && > test_cmp expect actual > ) > ' > @@ -287,8 +244,8 @@ test_expect_success 'mailmap.blob defaults to HEAD:.mailmap in bare repo' ' > git clone --bare non-bare bare && > ( > cd bare && > - echo " 1 Fake Name" >expect && > - git shortlog -ns HEAD >actual && > + echo "Fake Name " >expect && > + git check-mailmap "A U Thor " >actual && > test_cmp expect actual > ) > '