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:
parent
082c006c04
commit
f4609b896f
1485 changed files with 241535 additions and 109418 deletions
83
third_party/git/t/t4013-diff-various.sh
vendored
83
third_party/git/t/t4013-diff-various.sh
vendored
|
|
@ -7,9 +7,6 @@ test_description='Various diff formatting options'
|
|||
|
||||
. ./test-lib.sh
|
||||
|
||||
LF='
|
||||
'
|
||||
|
||||
test_expect_success setup '
|
||||
|
||||
GIT_AUTHOR_DATE="2006-06-26 00:00:00 +0000" &&
|
||||
|
|
@ -98,6 +95,15 @@ test_expect_success setup '
|
|||
git commit -m "update mode" &&
|
||||
git checkout -f master &&
|
||||
|
||||
GIT_AUTHOR_DATE="2006-06-26 00:06:00 +0000" &&
|
||||
GIT_COMMITTER_DATE="2006-06-26 00:06:00 +0000" &&
|
||||
export GIT_AUTHOR_DATE GIT_COMMITTER_DATE &&
|
||||
git checkout -b note initial &&
|
||||
git update-index --chmod=+x file2 &&
|
||||
git commit -m "update mode (file2)" &&
|
||||
git notes add -m "note" &&
|
||||
git checkout -f master &&
|
||||
|
||||
# Same merge as master, but with parents reversed. Hide it in a
|
||||
# pseudo-ref to avoid impacting tests with --all.
|
||||
commit=$(echo reverse |
|
||||
|
|
@ -123,6 +129,48 @@ test_expect_success setup '
|
|||
+*++ [initial] Initial
|
||||
EOF
|
||||
|
||||
process_diffs () {
|
||||
perl -e '
|
||||
my $oid_length = length($ARGV[0]);
|
||||
my $x40 = "[0-9a-f]{40}";
|
||||
my $xab = "[0-9a-f]{4,16}";
|
||||
my $orx = "[0-9a-f]" x $oid_length;
|
||||
|
||||
sub munge_oid {
|
||||
my ($oid) = @_;
|
||||
my $x;
|
||||
|
||||
return "" unless length $oid;
|
||||
|
||||
if ($oid =~ /^(100644|100755|120000)$/) {
|
||||
return $oid;
|
||||
}
|
||||
|
||||
if ($oid =~ /^0*$/) {
|
||||
$x = "0";
|
||||
} else {
|
||||
$x = "f";
|
||||
}
|
||||
|
||||
if (length($oid) == 40) {
|
||||
return $x x $oid_length;
|
||||
} else {
|
||||
return $x x length($oid);
|
||||
}
|
||||
}
|
||||
|
||||
while (<STDIN>) {
|
||||
s/($orx)/munge_oid($1)/ge;
|
||||
s/From ($x40)( |\))/"From " . munge_oid($1) . $2/ge;
|
||||
s/commit ($x40)($| \(from )($x40?)/"commit " . munge_oid($1) . $2 . munge_oid($3)/ge;
|
||||
s/\b($x40)( |\.\.|$)/munge_oid($1) . $2/ge;
|
||||
s/^($x40)($| )/munge_oid($1) . $2/e;
|
||||
s/($xab)(\.\.|,| |\.\.\.|$)/munge_oid($1) . $2/ge;
|
||||
print;
|
||||
}
|
||||
' "$ZERO_OID" <"$1"
|
||||
}
|
||||
|
||||
V=$(git version | sed -e 's/^git version //' -e 's/\./\\./g')
|
||||
while read magic cmd
|
||||
do
|
||||
|
|
@ -161,13 +209,15 @@ do
|
|||
} >"$actual" &&
|
||||
if test -f "$expect"
|
||||
then
|
||||
process_diffs "$actual" >actual &&
|
||||
process_diffs "$expect" >expect &&
|
||||
case $cmd in
|
||||
*format-patch* | *-stat*)
|
||||
test_i18ncmp "$expect" "$actual";;
|
||||
test_i18ncmp expect actual;;
|
||||
*)
|
||||
test_cmp "$expect" "$actual";;
|
||||
test_cmp expect actual;;
|
||||
esac &&
|
||||
rm -f "$actual"
|
||||
rm -f "$actual" actual expect
|
||||
else
|
||||
# this is to help developing new tests.
|
||||
cp "$actual" "$expect"
|
||||
|
|
@ -189,6 +239,9 @@ diff-tree --root -r --abbrev=4 initial
|
|||
:noellipses diff-tree --root -r --abbrev=4 initial
|
||||
diff-tree -p initial
|
||||
diff-tree --root -p initial
|
||||
diff-tree --root -p --abbrev=10 initial
|
||||
diff-tree --root -p --full-index initial
|
||||
diff-tree --root -p --full-index --abbrev=10 initial
|
||||
diff-tree --patch-with-stat initial
|
||||
diff-tree --root --patch-with-stat initial
|
||||
diff-tree --patch-with-raw initial
|
||||
|
|
@ -265,6 +318,9 @@ log --root --patch-with-stat --summary master
|
|||
log --root -c --patch-with-stat --summary master
|
||||
# improved by Timo's patch
|
||||
log --root --cc --patch-with-stat --summary master
|
||||
log --no-diff-merges -p --first-parent master
|
||||
log --diff-merges=off -p --first-parent master
|
||||
log --first-parent --diff-merges=off -p master
|
||||
log -p --first-parent master
|
||||
log -m -p --first-parent master
|
||||
log -m -p master
|
||||
|
|
@ -375,6 +431,9 @@ diff --no-index --raw --no-abbrev dir2 dir
|
|||
|
||||
diff-tree --pretty --root --stat --compact-summary initial
|
||||
diff-tree --pretty -R --root --stat --compact-summary initial
|
||||
diff-tree --pretty note
|
||||
diff-tree --pretty --notes note
|
||||
diff-tree --format=%N note
|
||||
diff-tree --stat --compact-summary initial mode
|
||||
diff-tree -R --stat --compact-summary initial mode
|
||||
EOF
|
||||
|
|
@ -386,16 +445,22 @@ test_expect_success 'log -S requires an argument' '
|
|||
test_expect_success 'diff --cached on unborn branch' '
|
||||
echo ref: refs/heads/unborn >.git/HEAD &&
|
||||
git diff --cached >result &&
|
||||
test_cmp "$TEST_DIRECTORY/t4013/diff.diff_--cached" result
|
||||
process_diffs result >actual &&
|
||||
process_diffs "$TEST_DIRECTORY/t4013/diff.diff_--cached" >expected &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'diff --cached -- file on unborn branch' '
|
||||
git diff --cached -- file0 >result &&
|
||||
test_cmp "$TEST_DIRECTORY/t4013/diff.diff_--cached_--_file0" result
|
||||
process_diffs result >actual &&
|
||||
process_diffs "$TEST_DIRECTORY/t4013/diff.diff_--cached_--_file0" >expected &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
test_expect_success 'diff --line-prefix with spaces' '
|
||||
git diff --line-prefix="| | | " --cached -- file0 >result &&
|
||||
test_cmp "$TEST_DIRECTORY/t4013/diff.diff_--line-prefix_--cached_--_file0" result
|
||||
process_diffs result >actual &&
|
||||
process_diffs "$TEST_DIRECTORY/t4013/diff.diff_--line-prefix_--cached_--_file0" >expected &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'diff-tree --stdin with log formatting' '
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue