merge(3p/git): Merge git upstream at v2.26.2
This commit is contained in:
commit
5229c9b232
1006 changed files with 149006 additions and 60819 deletions
132
third_party/git/t/t9300-fast-import.sh
vendored
132
third_party/git/t/t9300-fast-import.sh
vendored
|
@ -85,6 +85,36 @@ test_expect_success 'A: create pack from stdin' '
|
|||
An annotated tag that annotates a blob.
|
||||
EOF
|
||||
|
||||
tag to-be-deleted
|
||||
from :3
|
||||
data <<EOF
|
||||
Another annotated tag that annotates a blob.
|
||||
EOF
|
||||
|
||||
reset refs/tags/to-be-deleted
|
||||
from 0000000000000000000000000000000000000000
|
||||
|
||||
tag nested
|
||||
mark :6
|
||||
from :4
|
||||
data <<EOF
|
||||
Tag of our lovely commit
|
||||
EOF
|
||||
|
||||
reset refs/tags/nested
|
||||
from 0000000000000000000000000000000000000000
|
||||
|
||||
tag nested
|
||||
mark :7
|
||||
from :6
|
||||
data <<EOF
|
||||
Tag of tag of our lovely commit
|
||||
EOF
|
||||
|
||||
alias
|
||||
mark :8
|
||||
to :5
|
||||
|
||||
INPUT_END
|
||||
git fast-import --export-marks=marks.out <input &&
|
||||
git whatchanged master
|
||||
|
@ -157,12 +187,19 @@ test_expect_success 'A: verify tag/series-A-blob' '
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'A: verify tag deletion is successful' '
|
||||
test_must_fail git rev-parse --verify refs/tags/to-be-deleted
|
||||
'
|
||||
|
||||
test_expect_success 'A: verify marks output' '
|
||||
cat >expect <<-EOF &&
|
||||
:2 $(git rev-parse --verify master:file2)
|
||||
:3 $(git rev-parse --verify master:file3)
|
||||
:4 $(git rev-parse --verify master:file4)
|
||||
:5 $(git rev-parse --verify master^0)
|
||||
:6 $(git cat-file tag nested | grep object | cut -d" " -f 2)
|
||||
:7 $(git rev-parse --verify nested)
|
||||
:8 $(git rev-parse --verify master^0)
|
||||
EOF
|
||||
test_cmp expect marks.out
|
||||
'
|
||||
|
@ -1010,7 +1047,6 @@ test_expect_success 'M: rename root to subdirectory' '
|
|||
EOF
|
||||
git fast-import <input &&
|
||||
git diff-tree -M -r M4^ M4 >actual &&
|
||||
cat actual &&
|
||||
compare_diff_raw expect actual
|
||||
'
|
||||
|
||||
|
@ -2106,12 +2142,27 @@ test_expect_success 'R: abort on receiving feature after data command' '
|
|||
test_must_fail git fast-import <input
|
||||
'
|
||||
|
||||
test_expect_success 'R: import-marks features forbidden by default' '
|
||||
>git.marks &&
|
||||
echo "feature import-marks=git.marks" >input &&
|
||||
test_must_fail git fast-import <input &&
|
||||
echo "feature import-marks-if-exists=git.marks" >input &&
|
||||
test_must_fail git fast-import <input
|
||||
'
|
||||
|
||||
test_expect_success 'R: only one import-marks feature allowed per stream' '
|
||||
>git.marks &&
|
||||
>git2.marks &&
|
||||
cat >input <<-EOF &&
|
||||
feature import-marks=git.marks
|
||||
feature import-marks=git2.marks
|
||||
EOF
|
||||
|
||||
test_must_fail git fast-import --allow-unsafe-features <input
|
||||
'
|
||||
|
||||
test_expect_success 'R: export-marks feature forbidden by default' '
|
||||
echo "feature export-marks=git.marks" >input &&
|
||||
test_must_fail git fast-import <input
|
||||
'
|
||||
|
||||
|
@ -2125,19 +2176,29 @@ test_expect_success 'R: export-marks feature results in a marks file being creat
|
|||
|
||||
EOF
|
||||
|
||||
cat input | git fast-import &&
|
||||
git fast-import --allow-unsafe-features <input &&
|
||||
grep :1 git.marks
|
||||
'
|
||||
|
||||
test_expect_success 'R: export-marks options can be overridden by commandline options' '
|
||||
cat input | git fast-import --export-marks=other.marks &&
|
||||
grep :1 other.marks
|
||||
cat >input <<-\EOF &&
|
||||
feature export-marks=feature-sub/git.marks
|
||||
blob
|
||||
mark :1
|
||||
data 3
|
||||
hi
|
||||
|
||||
EOF
|
||||
git fast-import --allow-unsafe-features \
|
||||
--export-marks=cmdline-sub/other.marks <input &&
|
||||
grep :1 cmdline-sub/other.marks &&
|
||||
test_path_is_missing feature-sub
|
||||
'
|
||||
|
||||
test_expect_success 'R: catch typo in marks file name' '
|
||||
test_must_fail git fast-import --import-marks=nonexistent.marks </dev/null &&
|
||||
echo "feature import-marks=nonexistent.marks" |
|
||||
test_must_fail git fast-import
|
||||
test_must_fail git fast-import --allow-unsafe-features
|
||||
'
|
||||
|
||||
test_expect_success 'R: import and output marks can be the same file' '
|
||||
|
@ -2192,7 +2253,8 @@ test_expect_success 'R: --import-marks-if-exists' '
|
|||
test_expect_success 'R: feature import-marks-if-exists' '
|
||||
rm -f io.marks &&
|
||||
|
||||
git fast-import --export-marks=io.marks <<-\EOF &&
|
||||
git fast-import --export-marks=io.marks \
|
||||
--allow-unsafe-features <<-\EOF &&
|
||||
feature import-marks-if-exists=not_io.marks
|
||||
EOF
|
||||
test_must_be_empty io.marks &&
|
||||
|
@ -2203,7 +2265,8 @@ test_expect_success 'R: feature import-marks-if-exists' '
|
|||
echo ":1 $blob" >expect &&
|
||||
echo ":2 $blob" >>expect &&
|
||||
|
||||
git fast-import --export-marks=io.marks <<-\EOF &&
|
||||
git fast-import --export-marks=io.marks \
|
||||
--allow-unsafe-features <<-\EOF &&
|
||||
feature import-marks-if-exists=io.marks
|
||||
blob
|
||||
mark :2
|
||||
|
@ -2216,7 +2279,8 @@ test_expect_success 'R: feature import-marks-if-exists' '
|
|||
echo ":3 $blob" >>expect &&
|
||||
|
||||
git fast-import --import-marks=io.marks \
|
||||
--export-marks=io.marks <<-\EOF &&
|
||||
--export-marks=io.marks \
|
||||
--allow-unsafe-features <<-\EOF &&
|
||||
feature import-marks-if-exists=not_io.marks
|
||||
blob
|
||||
mark :3
|
||||
|
@ -2227,7 +2291,8 @@ test_expect_success 'R: feature import-marks-if-exists' '
|
|||
test_cmp expect io.marks &&
|
||||
|
||||
git fast-import --import-marks-if-exists=not_io.marks \
|
||||
--export-marks=io.marks <<-\EOF &&
|
||||
--export-marks=io.marks \
|
||||
--allow-unsafe-features <<-\EOF &&
|
||||
feature import-marks-if-exists=io.marks
|
||||
EOF
|
||||
test_must_be_empty io.marks
|
||||
|
@ -2239,7 +2304,7 @@ test_expect_success 'R: import to output marks works without any content' '
|
|||
feature export-marks=marks.new
|
||||
EOF
|
||||
|
||||
cat input | git fast-import &&
|
||||
git fast-import --allow-unsafe-features <input &&
|
||||
test_cmp marks.out marks.new
|
||||
'
|
||||
|
||||
|
@ -2249,7 +2314,7 @@ test_expect_success 'R: import marks prefers commandline marks file over the str
|
|||
feature export-marks=marks.new
|
||||
EOF
|
||||
|
||||
cat input | git fast-import --import-marks=marks.out &&
|
||||
git fast-import --import-marks=marks.out --allow-unsafe-features <input &&
|
||||
test_cmp marks.out marks.new
|
||||
'
|
||||
|
||||
|
@ -2262,7 +2327,8 @@ test_expect_success 'R: multiple --import-marks= should be honoured' '
|
|||
|
||||
head -n2 marks.out > one.marks &&
|
||||
tail -n +3 marks.out > two.marks &&
|
||||
git fast-import --import-marks=one.marks --import-marks=two.marks <input &&
|
||||
git fast-import --import-marks=one.marks --import-marks=two.marks \
|
||||
--allow-unsafe-features <input &&
|
||||
test_cmp marks.out combined.marks
|
||||
'
|
||||
|
||||
|
@ -2275,7 +2341,7 @@ test_expect_success 'R: feature relative-marks should be honoured' '
|
|||
|
||||
mkdir -p .git/info/fast-import/ &&
|
||||
cp marks.new .git/info/fast-import/relative.in &&
|
||||
git fast-import <input &&
|
||||
git fast-import --allow-unsafe-features <input &&
|
||||
test_cmp marks.new .git/info/fast-import/relative.out
|
||||
'
|
||||
|
||||
|
@ -2287,7 +2353,7 @@ test_expect_success 'R: feature no-relative-marks should be honoured' '
|
|||
feature export-marks=non-relative.out
|
||||
EOF
|
||||
|
||||
git fast-import <input &&
|
||||
git fast-import --allow-unsafe-features <input &&
|
||||
test_cmp marks.new non-relative.out
|
||||
'
|
||||
|
||||
|
@ -2440,9 +2506,6 @@ test_expect_success PIPE 'R: copy using cat-file' '
|
|||
echo $expect_id blob $expect_len >expect.response &&
|
||||
|
||||
rm -f blobs &&
|
||||
cat >frontend <<-\FRONTEND_END &&
|
||||
#!/bin/sh
|
||||
FRONTEND_END
|
||||
|
||||
mkfifo blobs &&
|
||||
(
|
||||
|
@ -2557,7 +2620,7 @@ test_expect_success 'R: quiet option results in no stats being output' '
|
|||
|
||||
EOF
|
||||
|
||||
cat input | git fast-import 2> output &&
|
||||
git fast-import 2>output <input &&
|
||||
test_must_be_empty output
|
||||
'
|
||||
|
||||
|
@ -2781,7 +2844,6 @@ test_expect_success 'S: filemodify with garbage after mark must fail' '
|
|||
COMMIT
|
||||
M 100644 :403x hello.c
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "space after mark" err
|
||||
'
|
||||
|
||||
|
@ -2798,7 +2860,6 @@ test_expect_success 'S: filemodify with garbage after inline must fail' '
|
|||
inline
|
||||
BLOB
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "nvalid dataref" err
|
||||
'
|
||||
|
||||
|
@ -2812,7 +2873,6 @@ test_expect_success 'S: filemodify with garbage after sha1 must fail' '
|
|||
COMMIT
|
||||
M 100644 ${sha1}x hello.c
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "space after SHA1" err
|
||||
'
|
||||
|
||||
|
@ -2828,7 +2888,6 @@ test_expect_success 'S: notemodify with garbage after mark dataref must fail' '
|
|||
COMMIT
|
||||
N :202x :302
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "space after mark" err
|
||||
'
|
||||
|
||||
|
@ -2844,7 +2903,6 @@ test_expect_success 'S: notemodify with garbage after inline dataref must fail'
|
|||
note blob
|
||||
BLOB
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "nvalid dataref" err
|
||||
'
|
||||
|
||||
|
@ -2858,7 +2916,6 @@ test_expect_success 'S: notemodify with garbage after sha1 dataref must fail' '
|
|||
COMMIT
|
||||
N ${sha1}x :302
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "space after SHA1" err
|
||||
'
|
||||
|
||||
|
@ -2874,7 +2931,6 @@ test_expect_success 'S: notemodify with garbage after mark commit-ish must fail'
|
|||
COMMIT
|
||||
N :202 :302x
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "after mark" err
|
||||
'
|
||||
|
||||
|
@ -2908,7 +2964,6 @@ test_expect_success 'S: from with garbage after mark must fail' '
|
|||
EOF
|
||||
|
||||
# now evaluate the error
|
||||
cat err &&
|
||||
test_i18ngrep "after mark" err
|
||||
'
|
||||
|
||||
|
@ -2928,7 +2983,6 @@ test_expect_success 'S: merge with garbage after mark must fail' '
|
|||
merge :303x
|
||||
M 100644 :403 hello.c
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "after mark" err
|
||||
'
|
||||
|
||||
|
@ -2944,7 +2998,6 @@ test_expect_success 'S: tag with garbage after mark must fail' '
|
|||
tag S
|
||||
TAG
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "after mark" err
|
||||
'
|
||||
|
||||
|
@ -2955,7 +3008,6 @@ test_expect_success 'S: cat-blob with garbage after mark must fail' '
|
|||
test_must_fail git fast-import --import-marks=marks <<-EOF 2>err &&
|
||||
cat-blob :403x
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "after mark" err
|
||||
'
|
||||
|
||||
|
@ -2966,7 +3018,6 @@ test_expect_success 'S: ls with garbage after mark must fail' '
|
|||
test_must_fail git fast-import --import-marks=marks <<-EOF 2>err &&
|
||||
ls :302x hello.c
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "space after mark" err
|
||||
'
|
||||
|
||||
|
@ -2975,7 +3026,6 @@ test_expect_success 'S: ls with garbage after sha1 must fail' '
|
|||
test_must_fail git fast-import --import-marks=marks <<-EOF 2>err &&
|
||||
ls ${sha1}x hello.c
|
||||
EOF
|
||||
cat err &&
|
||||
test_i18ngrep "space after tree-ish" err
|
||||
'
|
||||
|
||||
|
@ -3140,13 +3190,22 @@ background_import_then_checkpoint () {
|
|||
exec 9<>V.output
|
||||
rm V.output
|
||||
|
||||
git fast-import $options <&8 >&9 &
|
||||
echo $! >V.pid
|
||||
(
|
||||
git fast-import $options <&8 >&9 &
|
||||
echo $! >&9
|
||||
wait $!
|
||||
echo >&2 "background fast-import terminated too early with exit code $?"
|
||||
# Un-block the read loop in the main shell process.
|
||||
echo >&9 UNEXPECTED
|
||||
) &
|
||||
sh_pid=$!
|
||||
read fi_pid <&9
|
||||
# We don't mind if fast-import has already died by the time the test
|
||||
# ends.
|
||||
test_when_finished "
|
||||
exec 8>&-; exec 9>&-;
|
||||
kill $(cat V.pid) && wait $(cat V.pid)
|
||||
kill $sh_pid && wait $sh_pid
|
||||
kill $fi_pid && wait $fi_pid
|
||||
true"
|
||||
|
||||
# Start in the background to ensure we adhere strictly to (blocking)
|
||||
|
@ -3166,6 +3225,9 @@ background_import_then_checkpoint () {
|
|||
then
|
||||
error=0
|
||||
break
|
||||
elif test "$output" = "UNEXPECTED"
|
||||
then
|
||||
break
|
||||
fi
|
||||
# otherwise ignore cruft
|
||||
echo >&2 "cruft: $output"
|
||||
|
@ -3178,7 +3240,7 @@ background_import_then_checkpoint () {
|
|||
}
|
||||
|
||||
background_import_still_running () {
|
||||
if ! kill -0 "$(cat V.pid)"
|
||||
if ! kill -0 "$fi_pid"
|
||||
then
|
||||
echo >&2 "background fast-import terminated too early"
|
||||
false
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue