@ -4,6 +4,14 @@ test_description='.mailmap configurations'
@@ -4,6 +4,14 @@ test_description='.mailmap configurations'
. ./test-lib.sh
fuzz_blame () {
sed "
s/$_x05[0-9a-f][0-9a-f][0-9a-f]/OBJID/g
s/$_x05[0-9a-f][0-9a-f]/OBJI/g
s/[-0-9]\{10\} [:0-9]\{8\} [-+][0-9]\{4\}/DATE/g
" "$@"
}
test_expect_success setup '
echo one >one &&
git add one &&
@ -11,6 +19,7 @@ test_expect_success setup '
@@ -11,6 +19,7 @@ test_expect_success setup '
git commit -m initial &&
echo two >>one &&
git add one &&
test_tick &&
git commit --author "nick1 <bugs@company.xx>" -m second
'
@ -54,7 +63,7 @@ Repo Guy (1):
@@ -54,7 +63,7 @@ Repo Guy (1):
EOF
test_expect_success 'mailmap.file set' '
mkdir internal_mailmap &&
mkdir -p internal_mailmap &&
echo "Internal Guy <bugs@company.xx>" > internal_mailmap/.mailmap &&
git config mailmap.file internal_mailmap/.mailmap &&
git shortlog HEAD >actual &&
@ -92,6 +101,40 @@ test_expect_success 'mailmap.file non-existant' '
@@ -92,6 +101,40 @@ test_expect_success 'mailmap.file non-existant' '
test_cmp expect actual
'
cat >expect <<\EOF
Internal Guy (1):
second
Repo Guy (1):
initial
EOF
test_expect_success 'name entry after email entry' '
mkdir -p internal_mailmap &&
echo "<bugs@company.xy> <bugs@company.xx>" >internal_mailmap/.mailmap &&
echo "Internal Guy <bugs@company.xx>" >>internal_mailmap/.mailmap &&
git shortlog HEAD >actual &&
test_cmp expect actual
'
cat >expect <<\EOF
Internal Guy (1):
second
Repo Guy (1):
initial
EOF
test_expect_success 'name entry after email entry, case-insensitive' '
mkdir -p internal_mailmap &&
echo "<bugs@company.xy> <bugs@company.xx>" >internal_mailmap/.mailmap &&
echo "Internal Guy <BUGS@Company.xx>" >>internal_mailmap/.mailmap &&
git shortlog HEAD >actual &&
test_cmp expect actual
'
cat >expect <<\EOF
A U Thor (1):
initial
@ -101,7 +144,7 @@ nick1 (1):
@@ -101,7 +144,7 @@ nick1 (1):
EOF
test_expect_success 'No mailmap files, but configured' '
rm .mailmap &&
rm -f .mailmap internal_mailmap/.mailmap &&
git shortlog HEAD >actual &&
test_cmp expect actual
'
@ -153,7 +196,7 @@ test_expect_success 'Shortlog output (complex mapping)' '
@@ -153,7 +196,7 @@ test_expect_success 'Shortlog output (complex mapping)' '
test_tick &&
git commit --author "CTO <cto@coompany.xx>" -m seventh &&
mkdir internal_mailmap &&
mkdir -p internal_mailmap &&
echo "Committed <committer@example.com>" > internal_mailmap/.mailmap &&
echo "<cto@company.xx> <cto@coompany.xx>" >> internal_mailmap/.mailmap &&
echo "Some Dude <some@dude.xx> nick1 <bugs@company.xx>" >> internal_mailmap/.mailmap &&
@ -198,18 +241,18 @@ test_expect_success 'Log output (complex mapping)' '
@@ -198,18 +241,18 @@ test_expect_success 'Log output (complex mapping)' '
# git blame
cat >expect <<\EOF
^3a2fdcb (A U Thor 2005-04-07 15:13:13 -0700 1) one
7de6f99b (Some Dude 2005-04-07 15:13:13 -0700 2) two
5815879d (Other Author 2005-04-07 15:14:13 -0700 3) three
ff859d96 (Other Author 2005-04-07 15:15:13 -0700 4) four
5ab6d4fa (Santa Claus 2005-04-07 15:16:13 -0700 5) five
38a42d8b (Santa Claus 2005-04-07 15:17:13 -0700 6) six
8ddc0386 (CTO 2005-04-07 15:18:13 -0700 7) seven
^OBJI (A U Thor DATE 1) one
OBJID (Some Dude DATE 2) two
OBJID (Other Author DATE 3) three
OBJID (Other Author DATE 4) four
OBJID (Santa Claus DATE 5) five
OBJID (Santa Claus DATE 6) six
OBJID (CTO DATE 7) seven
EOF
test_expect_success 'Blame output (complex mapping)' '
git blame one >actual &&
test_cmp expect actual
fuzz_blame actual >actual.fuzz &&
test_cmp expect actual.fuzz
'
test_done