mirror of
https://github.com/git/git.git
synced 2024-11-04 16:27:54 +01:00
Merge branch 'jm/mailmap'
* jm/mailmap: t4203: do not let "git shortlog" DWIM based on tty t4203 (mailmap): stop hardcoding commit ids and dates mailmap: fix use of freed memory
This commit is contained in:
commit
53b1708796
2 changed files with 61 additions and 16 deletions
10
mailmap.c
10
mailmap.c
|
@ -79,12 +79,14 @@ static void add_mapping(struct string_list *map,
|
|||
if (old_name == NULL) {
|
||||
debug_mm("mailmap: adding (simple) entry for %s at index %d\n", old_email, index);
|
||||
/* Replace current name and new email for simple entry */
|
||||
free(me->name);
|
||||
free(me->email);
|
||||
if (new_name)
|
||||
if (new_name) {
|
||||
free(me->name);
|
||||
me->name = xstrdup(new_name);
|
||||
if (new_email)
|
||||
}
|
||||
if (new_email) {
|
||||
free(me->email);
|
||||
me->email = xstrdup(new_email);
|
||||
}
|
||||
} else {
|
||||
struct mailmap_info *mi = xmalloc(sizeof(struct mailmap_info));
|
||||
debug_mm("mailmap: adding (complex) entry for %s at index %d\n", old_email, index);
|
||||
|
|
|
@ -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 '
|
|||
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):
|
|||
|
||||
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' '
|
|||
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):
|
|||
|
||||
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)' '
|
|||
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)' '
|
|||
|
||||
# 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
|
||||
|
|
Loading…
Reference in a new issue