merge(3p/git): Merge git subtree at v2.29.2

This also bumps the stable nixpkgs to 20.09 as of 2020-11-21, because
there is some breakage in the git build related to the netrc
credentials helper which someone has taken care of in nixpkgs.

The stable channel is not used for anything other than git, so this
should be fine.

Change-Id: I3575a19dab09e1e9556cf8231d717de9890484fb
This commit is contained in:
Vincent Ambo 2020-11-21 19:20:35 +01:00
parent 082c006c04
commit f4609b896f
1485 changed files with 241535 additions and 109418 deletions

View file

@ -215,4 +215,145 @@ test_expect_success 'shortlog --committer (external)' '
test_cmp expect actual
'
test_expect_success '--group=committer is the same as --committer' '
git shortlog -ns --group=committer HEAD >actual &&
test_cmp expect actual
'
test_expect_success 'shortlog --group=trailer:signed-off-by' '
git commit --allow-empty -m foo -s &&
GIT_COMMITTER_NAME="SOB One" \
GIT_COMMITTER_EMAIL=sob@example.com \
git commit --allow-empty -m foo -s &&
git commit --allow-empty --amend --no-edit -s &&
cat >expect <<-\EOF &&
2 C O Mitter <committer@example.com>
1 SOB One <sob@example.com>
EOF
git shortlog -nse --group=trailer:signed-off-by HEAD >actual &&
test_cmp expect actual
'
test_expect_success 'trailer idents are split' '
cat >expect <<-\EOF &&
2 C O Mitter
1 SOB One
EOF
git shortlog -ns --group=trailer:signed-off-by HEAD >actual &&
test_cmp expect actual
'
test_expect_success 'trailer idents are mailmapped' '
cat >expect <<-\EOF &&
2 C O Mitter
1 Another Name
EOF
echo "Another Name <sob@example.com>" >mail.map &&
git -c mailmap.file=mail.map shortlog -ns \
--group=trailer:signed-off-by HEAD >actual &&
test_cmp expect actual
'
test_expect_success 'shortlog de-duplicates trailers in a single commit' '
git commit --allow-empty -F - <<-\EOF &&
subject one
this message has two distinct values, plus a repeat
Repeated-trailer: Foo
Repeated-trailer: Bar
Repeated-trailer: Foo
EOF
git commit --allow-empty -F - <<-\EOF &&
subject two
similar to the previous, but without the second distinct value
Repeated-trailer: Foo
Repeated-trailer: Foo
EOF
cat >expect <<-\EOF &&
2 Foo
1 Bar
EOF
git shortlog -ns --group=trailer:repeated-trailer -2 HEAD >actual &&
test_cmp expect actual
'
test_expect_success 'shortlog can match multiple groups' '
git commit --allow-empty -F - <<-\EOF &&
subject one
this has two trailers that are distinct from the author; it will count
3 times in the output
Some-trailer: User A <a@example.com>
Another-trailer: User B <b@example.com>
EOF
git commit --allow-empty -F - <<-\EOF &&
subject two
this one has two trailers, one of which is a duplicate with the author;
it will only be counted once for them
Another-trailer: A U Thor <author@example.com>
Some-trailer: User B <b@example.com>
EOF
cat >expect <<-\EOF &&
2 A U Thor
2 User B
1 User A
EOF
git shortlog -ns \
--group=author \
--group=trailer:some-trailer \
--group=trailer:another-trailer \
-2 HEAD >actual &&
test_cmp expect actual
'
test_expect_success 'set up option selection tests' '
git commit --allow-empty -F - <<-\EOF
subject
body
Trailer-one: value-one
Trailer-two: value-two
EOF
'
test_expect_success '--no-group resets group list to author' '
cat >expect <<-\EOF &&
1 A U Thor
EOF
git shortlog -ns \
--group=committer \
--group=trailer:trailer-one \
--no-group \
-1 HEAD >actual &&
test_cmp expect actual
'
test_expect_success '--no-group resets trailer list' '
cat >expect <<-\EOF &&
1 value-two
EOF
git shortlog -ns \
--group=trailer:trailer-one \
--no-group \
--group=trailer:trailer-two \
-1 HEAD >actual &&
test_cmp expect actual
'
test_expect_success 'stdin with multiple groups reports error' '
git log >log &&
test_must_fail git shortlog --group=author --group=committer <log
'
test_done