Eric Sunshine <sunsh...@sunshineco.com> 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 <sunsh...@sunshineco.com>
> ---
>  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 <aut...@example.com>
> +nick1 <b...@company.xx>
>  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 <aut...@example.com>
> +nick1 <b...@company.xx>
>  EOF
>  
>  test_expect_success 'default .mailmap' '
>       echo "Repo Guy <aut...@example.com>" > .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 <aut...@example.com>
> +Internal Guy <b...@company.xx>
>  EOF
>  test_expect_success 'mailmap.file set' '
>       mkdir -p internal_mailmap &&
>       echo "Internal Guy <b...@company.xx>" > 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 <aut...@example.com>
> +Internal Guy <b...@company.xx>
>  EOF
>  test_expect_success 'mailmap.file override' '
>       echo "External Guy <aut...@example.com>" >> 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 <aut...@example.com>
> +nick1 <b...@company.xx>
>  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 <aut...@example.com>
> +Internal Guy <b...@company.xy>
>  EOF
>  
>  test_expect_success 'name entry after email entry' '
>       mkdir -p internal_mailmap &&
>       echo "<b...@company.xy> <b...@company.xx>" >internal_mailmap/.mailmap &&
>       echo "Internal Guy <b...@company.xx>" >>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 <aut...@example.com>
> +Internal Guy <b...@company.xy>
>  EOF
>  
>  test_expect_success 'name entry after email entry, case-insensitive' '
>       mkdir -p internal_mailmap &&
>       echo "<b...@company.xy> <b...@company.xx>" >internal_mailmap/.mailmap &&
>       echo "Internal Guy <b...@company.xx>" >>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 <aut...@example.com>
> +nick1 <b...@company.xx>
>  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 <aut...@example.com>
> +     Blob Guy <b...@company.xx>
>       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 <aut...@example.com>
> +     Blob Guy <b...@company.xx>
>       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 <aut...@example.com>
> +     Blob Guy <b...@company.xx>
>       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 <aut...@example.com>
> +     nick1 <b...@company.xx>
>       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 <aut...@example.com>" &&
> -             echo "     1    Fake Name" >expect &&
> -             git shortlog -ns HEAD >actual &&
> +             echo "Fake Name <aut...@example.com>" >expect &&
> +             git check-mailmap "A U Thor <aut...@example.com>" >actual &&
>               test_cmp expect actual &&
>               rm .mailmap &&
> -             echo "     1    A U Thor" >expect &&
> -             git shortlog -ns HEAD >actual &&
> +             echo "A U Thor <aut...@example.com>" >expect &&
> +             git check-mailmap "A U Thor <aut...@example.com>" >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 <aut...@example.com>" >expect &&
> +             git check-mailmap "A U Thor <aut...@example.com>" >actual &&
>               test_cmp expect actual
>       )
>  '
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to