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
64
third_party/git/t/t1404-update-ref-errors.sh
vendored
64
third_party/git/t/t1404-update-ref-errors.sh
vendored
|
@ -32,8 +32,6 @@ test_update_rejected () {
|
|||
test_cmp unchanged actual
|
||||
}
|
||||
|
||||
Q="'"
|
||||
|
||||
# Test adding and deleting D/F-conflicting references in a single
|
||||
# transaction.
|
||||
df_test() {
|
||||
|
@ -93,7 +91,7 @@ df_test() {
|
|||
delname="$delref"
|
||||
fi &&
|
||||
cat >expected-err <<-EOF &&
|
||||
fatal: cannot lock ref $Q$addname$Q: $Q$delref$Q exists; cannot create $Q$addref$Q
|
||||
fatal: cannot lock ref $SQ$addname$SQ: $SQ$delref$SQ exists; cannot create $SQ$addref$SQ
|
||||
EOF
|
||||
$pack &&
|
||||
if $add_del
|
||||
|
@ -123,7 +121,7 @@ test_expect_success 'existing loose ref is a simple prefix of new' '
|
|||
|
||||
prefix=refs/1l &&
|
||||
test_update_rejected "a c e" false "b c/x d" \
|
||||
"$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x$Q"
|
||||
"$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x$SQ"
|
||||
|
||||
'
|
||||
|
||||
|
@ -131,7 +129,7 @@ test_expect_success 'existing packed ref is a simple prefix of new' '
|
|||
|
||||
prefix=refs/1p &&
|
||||
test_update_rejected "a c e" true "b c/x d" \
|
||||
"$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x$Q"
|
||||
"$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x$SQ"
|
||||
|
||||
'
|
||||
|
||||
|
@ -139,7 +137,7 @@ test_expect_success 'existing loose ref is a deeper prefix of new' '
|
|||
|
||||
prefix=refs/2l &&
|
||||
test_update_rejected "a c e" false "b c/x/y d" \
|
||||
"$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x/y$Q"
|
||||
"$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x/y$SQ"
|
||||
|
||||
'
|
||||
|
||||
|
@ -147,7 +145,7 @@ test_expect_success 'existing packed ref is a deeper prefix of new' '
|
|||
|
||||
prefix=refs/2p &&
|
||||
test_update_rejected "a c e" true "b c/x/y d" \
|
||||
"$Q$prefix/c$Q exists; cannot create $Q$prefix/c/x/y$Q"
|
||||
"$SQ$prefix/c$SQ exists; cannot create $SQ$prefix/c/x/y$SQ"
|
||||
|
||||
'
|
||||
|
||||
|
@ -155,7 +153,7 @@ test_expect_success 'new ref is a simple prefix of existing loose' '
|
|||
|
||||
prefix=refs/3l &&
|
||||
test_update_rejected "a c/x e" false "b c d" \
|
||||
"$Q$prefix/c/x$Q exists; cannot create $Q$prefix/c$Q"
|
||||
"$SQ$prefix/c/x$SQ exists; cannot create $SQ$prefix/c$SQ"
|
||||
|
||||
'
|
||||
|
||||
|
@ -163,7 +161,7 @@ test_expect_success 'new ref is a simple prefix of existing packed' '
|
|||
|
||||
prefix=refs/3p &&
|
||||
test_update_rejected "a c/x e" true "b c d" \
|
||||
"$Q$prefix/c/x$Q exists; cannot create $Q$prefix/c$Q"
|
||||
"$SQ$prefix/c/x$SQ exists; cannot create $SQ$prefix/c$SQ"
|
||||
|
||||
'
|
||||
|
||||
|
@ -171,7 +169,7 @@ test_expect_success 'new ref is a deeper prefix of existing loose' '
|
|||
|
||||
prefix=refs/4l &&
|
||||
test_update_rejected "a c/x/y e" false "b c d" \
|
||||
"$Q$prefix/c/x/y$Q exists; cannot create $Q$prefix/c$Q"
|
||||
"$SQ$prefix/c/x/y$SQ exists; cannot create $SQ$prefix/c$SQ"
|
||||
|
||||
'
|
||||
|
||||
|
@ -179,7 +177,7 @@ test_expect_success 'new ref is a deeper prefix of existing packed' '
|
|||
|
||||
prefix=refs/4p &&
|
||||
test_update_rejected "a c/x/y e" true "b c d" \
|
||||
"$Q$prefix/c/x/y$Q exists; cannot create $Q$prefix/c$Q"
|
||||
"$SQ$prefix/c/x/y$SQ exists; cannot create $SQ$prefix/c$SQ"
|
||||
|
||||
'
|
||||
|
||||
|
@ -187,7 +185,7 @@ test_expect_success 'one new ref is a simple prefix of another' '
|
|||
|
||||
prefix=refs/5 &&
|
||||
test_update_rejected "a e" false "b c c/x d" \
|
||||
"cannot process $Q$prefix/c$Q and $Q$prefix/c/x$Q at the same time"
|
||||
"cannot process $SQ$prefix/c$SQ and $SQ$prefix/c/x$SQ at the same time"
|
||||
|
||||
'
|
||||
|
||||
|
@ -334,7 +332,7 @@ test_expect_success 'D/F conflict prevents indirect delete long packed + indirec
|
|||
test_expect_success 'missing old value blocks update' '
|
||||
prefix=refs/missing-update &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q
|
||||
fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/foo $E $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -345,7 +343,7 @@ test_expect_success 'incorrect old value blocks update' '
|
|||
prefix=refs/incorrect-update &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/foo$Q: is at $C but expected $D
|
||||
fatal: cannot lock ref $SQ$prefix/foo$SQ: is at $C but expected $D
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/foo $E $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -356,7 +354,7 @@ test_expect_success 'existing old value blocks create' '
|
|||
prefix=refs/existing-create &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/foo$Q: reference already exists
|
||||
fatal: cannot lock ref $SQ$prefix/foo$SQ: reference already exists
|
||||
EOF
|
||||
printf "%s\n" "create $prefix/foo $E" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -367,7 +365,7 @@ test_expect_success 'incorrect old value blocks delete' '
|
|||
prefix=refs/incorrect-delete &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/foo$Q: is at $C but expected $D
|
||||
fatal: cannot lock ref $SQ$prefix/foo$SQ: is at $C but expected $D
|
||||
EOF
|
||||
printf "%s\n" "delete $prefix/foo $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -378,7 +376,7 @@ test_expect_success 'missing old value blocks indirect update' '
|
|||
prefix=refs/missing-indirect-update &&
|
||||
git symbolic-ref $prefix/symref $prefix/foo &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/symref $E $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -390,7 +388,7 @@ test_expect_success 'incorrect old value blocks indirect update' '
|
|||
git symbolic-ref $prefix/symref $prefix/foo &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: is at $C but expected $D
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/symref $E $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -402,7 +400,7 @@ test_expect_success 'existing old value blocks indirect create' '
|
|||
git symbolic-ref $prefix/symref $prefix/foo &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: reference already exists
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: reference already exists
|
||||
EOF
|
||||
printf "%s\n" "create $prefix/symref $E" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -414,7 +412,7 @@ test_expect_success 'incorrect old value blocks indirect delete' '
|
|||
git symbolic-ref $prefix/symref $prefix/foo &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: is at $C but expected $D
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D
|
||||
EOF
|
||||
printf "%s\n" "delete $prefix/symref $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -425,7 +423,7 @@ test_expect_success 'missing old value blocks indirect no-deref update' '
|
|||
prefix=refs/missing-noderef-update &&
|
||||
git symbolic-ref $prefix/symref $prefix/foo &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: reference is missing but expected $D
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: reference is missing but expected $D
|
||||
EOF
|
||||
printf "%s\n" "option no-deref" "update $prefix/symref $E $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -437,7 +435,7 @@ test_expect_success 'incorrect old value blocks indirect no-deref update' '
|
|||
git symbolic-ref $prefix/symref $prefix/foo &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: is at $C but expected $D
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D
|
||||
EOF
|
||||
printf "%s\n" "option no-deref" "update $prefix/symref $E $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -449,7 +447,7 @@ test_expect_success 'existing old value blocks indirect no-deref create' '
|
|||
git symbolic-ref $prefix/symref $prefix/foo &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: reference already exists
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: reference already exists
|
||||
EOF
|
||||
printf "%s\n" "option no-deref" "create $prefix/symref $E" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -461,7 +459,7 @@ test_expect_success 'incorrect old value blocks indirect no-deref delete' '
|
|||
git symbolic-ref $prefix/symref $prefix/foo &&
|
||||
git update-ref $prefix/foo $C &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: is at $C but expected $D
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: is at $C but expected $D
|
||||
EOF
|
||||
printf "%s\n" "option no-deref" "delete $prefix/symref $D" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -474,13 +472,13 @@ test_expect_success 'non-empty directory blocks create' '
|
|||
: >.git/$prefix/foo/bar/baz.lock &&
|
||||
test_when_finished "rm -f .git/$prefix/foo/bar/baz.lock" &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/foo$Q: there is a non-empty directory $Q.git/$prefix/foo$Q blocking reference $Q$prefix/foo$Q
|
||||
fatal: cannot lock ref $SQ$prefix/foo$SQ: there is a non-empty directory $SQ.git/$prefix/foo$SQ blocking reference $SQ$prefix/foo$SQ
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/foo $C" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
test_cmp expected output.err &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q
|
||||
fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/foo $D $C" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -493,13 +491,13 @@ test_expect_success 'broken reference blocks create' '
|
|||
echo "gobbledigook" >.git/$prefix/foo &&
|
||||
test_when_finished "rm -f .git/$prefix/foo" &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q: reference broken
|
||||
fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/foo $C" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
test_cmp expected output.err &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/foo$Q: unable to resolve reference $Q$prefix/foo$Q: reference broken
|
||||
fatal: cannot lock ref $SQ$prefix/foo$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/foo $D $C" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -513,13 +511,13 @@ test_expect_success 'non-empty directory blocks indirect create' '
|
|||
: >.git/$prefix/foo/bar/baz.lock &&
|
||||
test_when_finished "rm -f .git/$prefix/foo/bar/baz.lock" &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: there is a non-empty directory $Q.git/$prefix/foo$Q blocking reference $Q$prefix/foo$Q
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: there is a non-empty directory $SQ.git/$prefix/foo$SQ blocking reference $SQ$prefix/foo$SQ
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/symref $C" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
test_cmp expected output.err &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/symref $D $C" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -532,13 +530,13 @@ test_expect_success 'broken reference blocks indirect create' '
|
|||
echo "gobbledigook" >.git/$prefix/foo &&
|
||||
test_when_finished "rm -f .git/$prefix/foo" &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q: reference broken
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/symref $C" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
test_cmp expected output.err &&
|
||||
cat >expected <<-EOF &&
|
||||
fatal: cannot lock ref $Q$prefix/symref$Q: unable to resolve reference $Q$prefix/foo$Q: reference broken
|
||||
fatal: cannot lock ref $SQ$prefix/symref$SQ: unable to resolve reference $SQ$prefix/foo$SQ: reference broken
|
||||
EOF
|
||||
printf "%s\n" "update $prefix/symref $D $C" |
|
||||
test_must_fail git update-ref --stdin 2>output.err &&
|
||||
|
@ -614,7 +612,7 @@ test_expect_success 'delete fails cleanly if packed-refs file is locked' '
|
|||
test_when_finished "rm -f .git/packed-refs.lock" &&
|
||||
test_must_fail git update-ref -d $prefix/foo >out 2>err &&
|
||||
git for-each-ref $prefix >actual &&
|
||||
test_i18ngrep "Unable to create $Q.*packed-refs.lock$Q: " err &&
|
||||
test_i18ngrep "Unable to create $SQ.*packed-refs.lock$SQ: " err &&
|
||||
test_cmp unchanged actual
|
||||
'
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue