Eric Sunshine <sunshine@xxxxxxxxxxxxxx> 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 <sunshine@xxxxxxxxxxxxxx> > --- > 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 <author@xxxxxxxxxxx> > +nick1 <bugs@xxxxxxxxxx> > EOF > > test_expect_success 'No mailmap' ' > - git shortlog HEAD >actual && > + git check-mailmap --stdin <contacts >actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -Repo Guy (1): > - initial > - > -nick1 (1): > - second > - > +Repo Guy <author@xxxxxxxxxxx> > +nick1 <bugs@xxxxxxxxxx> > EOF > > test_expect_success 'default .mailmap' ' > echo "Repo Guy <author@xxxxxxxxxxx>" > .mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin <contacts >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 <author@xxxxxxxxxxx> > +Internal Guy <bugs@xxxxxxxxxx> > EOF > test_expect_success 'mailmap.file set' ' > mkdir -p internal_mailmap && > echo "Internal Guy <bugs@xxxxxxxxxx>" > internal_mailmap/.mailmap && > git config mailmap.file internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin <contacts >actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -External Guy (1): > - initial > - > -Internal Guy (1): > - second > - > +External Guy <author@xxxxxxxxxxx> > +Internal Guy <bugs@xxxxxxxxxx> > EOF > test_expect_success 'mailmap.file override' ' > echo "External Guy <author@xxxxxxxxxxx>" >> internal_mailmap/.mailmap && > git config mailmap.file internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin <contacts >actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -Repo Guy (1): > - initial > - > -nick1 (1): > - second > - > +Repo Guy <author@xxxxxxxxxxx> > +nick1 <bugs@xxxxxxxxxx> > EOF > > test_expect_success 'mailmap.file non-existent' ' > rm internal_mailmap/.mailmap && > rmdir internal_mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin <contacts >actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -Internal Guy (1): > - second > - > -Repo Guy (1): > - initial > - > +Repo Guy <author@xxxxxxxxxxx> > +Internal Guy <bugs@xxxxxxxxxx> > EOF > > test_expect_success 'name entry after email entry' ' > mkdir -p internal_mailmap && > echo "<bugs@xxxxxxxxxx> <bugs@xxxxxxxxxx>" >internal_mailmap/.mailmap && > echo "Internal Guy <bugs@xxxxxxxxxx>" >>internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin <contacts >actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -Internal Guy (1): > - second > - > -Repo Guy (1): > - initial > - > +Repo Guy <author@xxxxxxxxxxx> > +Internal Guy <bugs@xxxxxxxxxx> > EOF > > test_expect_success 'name entry after email entry, case-insensitive' ' > mkdir -p internal_mailmap && > echo "<bugs@xxxxxxxxxx> <bugs@xxxxxxxxxx>" >internal_mailmap/.mailmap && > echo "Internal Guy <BUGS@xxxxxxxxxx>" >>internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin <contacts >actual && > test_cmp expect actual > ' > > cat >expect <<\EOF > -A U Thor (1): > - initial > - > -nick1 (1): > - second > - > +A U Thor <author@xxxxxxxxxxx> > +nick1 <bugs@xxxxxxxxxx> > EOF > test_expect_success 'No mailmap files, but configured' ' > rm -f .mailmap internal_mailmap/.mailmap && > - git shortlog HEAD >actual && > + git check-mailmap --stdin <contacts >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 <author@xxxxxxxxxxx> > + Blob Guy <bugs@xxxxxxxxxx> > EOF > - git -c mailmap.blob=map:just-bugs shortlog HEAD >actual && > + git -c mailmap.blob=map:just-bugs check-mailmap --stdin \ > + <contacts >actual && > test_cmp expect actual > ' > > test_expect_success 'mailmap.blob overrides .mailmap' ' > cat >expect <<-\EOF && > - Blob Guy (2): > - initial > - second > - > + Blob Guy <author@xxxxxxxxxxx> > + Blob Guy <bugs@xxxxxxxxxx> > EOF > - git -c mailmap.blob=map:both shortlog HEAD >actual && > + git -c mailmap.blob=map:both check-mailmap --stdin \ > + <contacts >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 <author@xxxxxxxxxxx> > + Blob Guy <bugs@xxxxxxxxxx> > EOF > git \ > -c mailmap.blob=map:both \ > -c mailmap.file=internal.map \ > - shortlog HEAD >actual && > + check-mailmap --stdin <contacts >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 <author@xxxxxxxxxxx> > + nick1 <bugs@xxxxxxxxxx> > EOF > - git -c mailmap.blob=map:nonexistent shortlog HEAD >actual && > + git -c mailmap.blob=map:nonexistent check-mailmap --stdin \ > + <contacts >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 <author@xxxxxxxxxxx>" && > - echo " 1 Fake Name" >expect && > - git shortlog -ns HEAD >actual && > + echo "Fake Name <author@xxxxxxxxxxx>" >expect && > + git check-mailmap "A U Thor <author@xxxxxxxxxxx>" >actual && > test_cmp expect actual && > rm .mailmap && > - echo " 1 A U Thor" >expect && > - git shortlog -ns HEAD >actual && > + echo "A U Thor <author@xxxxxxxxxxx>" >expect && > + git check-mailmap "A U Thor <author@xxxxxxxxxxx>" >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 <author@xxxxxxxxxxx>" >expect && > + git check-mailmap "A U Thor <author@xxxxxxxxxxx>" >actual && > test_cmp expect actual > ) > ' -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html