Skip to content

Commit 1c04cb0

Browse files
bk2204gitster
authored andcommitted
ident: don't consider '.' a crud
When we process a user's name (as in user.name), we strip all leading and trailing crud from it. Right now, we consider a dot a crud character, and strip it off. However, this is unsuitable for many personal names because humans frequently have abbreviated suffixes, such as "Jr." or "Sr." at the end of their names, and this corrupts them. Some other users may wish to use an abbreviated name or initial, which will pose a problem especially in cultures that write the family name first, followed by the personal name. Since the current approach causes lots of practical problems, let's avoid it by no longer considering a dot to be crud. Note that "." in the name forces the entire name to be quoted to please mailers, but stripping "." only at the beginning and the end does not help a name with "." in the middle (like "brian m. carlson") so this change will not make it much worse. A name like "Given Family, Jr." that did not have to be quoted now would need to be, in order to be placed on the e-mail headers, though. This is based on a weather-balloon patch by Jeff King sent in Aug 2021 https://lore.kernel.org/git/[email protected]/ Signed-off-by: brian m. carlson <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent fb7d80e commit 1c04cb0

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

ident.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@ void reset_ident_date(void)
203203
static int crud(unsigned char c)
204204
{
205205
return c <= 32 ||
206-
c == '.' ||
207206
c == ',' ||
208207
c == ':' ||
209208
c == ';' ||

t/t4203-mailmap.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ test_expect_success 'gitmailmap(5) example output: example #1' '
466466
Author Jane Doe <jane@laptop.(none)> maps to Jane Doe <jane@laptop.(none)>
467467
Committer C O Mitter <[email protected]> maps to C O Mitter <[email protected]>
468468
469-
Author Jane D <jane@desktop.(none)> maps to Jane Doe <jane@desktop.(none)>
469+
Author Jane D. <jane@desktop.(none)> maps to Jane Doe <jane@desktop.(none)>
470470
Committer C O Mitter <[email protected]> maps to C O Mitter <[email protected]>
471471
EOF
472472
git -C doc log --reverse --pretty=format:"Author %an <%ae> maps to %aN <%aE>%nCommitter %cn <%ce> maps to %cN <%cE>%n" >actual &&
@@ -494,7 +494,7 @@ test_expect_success 'gitmailmap(5) example output: example #2' '
494494
Author Jane Doe <jane@laptop.(none)> maps to Jane Doe <[email protected]>
495495
Committer C O Mitter <[email protected]> maps to C O Mitter <[email protected]>
496496
497-
Author Jane D <jane@desktop.(none)> maps to Jane Doe <[email protected]>
497+
Author Jane D. <jane@desktop.(none)> maps to Jane Doe <[email protected]>
498498
Committer C O Mitter <[email protected]> maps to C O Mitter <[email protected]>
499499
EOF
500500
git -C doc log --reverse --pretty=format:"Author %an <%ae> maps to %aN <%aE>%nCommitter %cn <%ce> maps to %cN <%cE>%n" >actual &&

t/t7518-ident-corner-cases.sh

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,19 @@ test_expect_success 'empty name and missing email' '
2020
'
2121

2222
test_expect_success 'commit rejects all-crud name' '
23-
test_must_fail env GIT_AUTHOR_NAME=" .;<>" \
23+
test_must_fail env GIT_AUTHOR_NAME=" ,;<>" \
2424
git commit --allow-empty -m foo
2525
'
2626

27+
test_expect_success 'commit does not strip trailing dot' '
28+
author_name="Pat Doe Jr." &&
29+
env GIT_AUTHOR_NAME="$author_name" \
30+
git commit --allow-empty -m foo &&
31+
git log -1 --format=%an >actual &&
32+
echo "$author_name" >expected &&
33+
test_cmp actual expected
34+
'
35+
2736
# We must test the actual error message here, as an unwanted
2837
# auto-detection could fail for other reasons.
2938
test_expect_success 'empty configured name does not auto-detect' '

0 commit comments

Comments
 (0)