merge(third_party/git): Merge squashed git subtree at v2.23.0
Merge commit '1b593e1ea4
' as 'third_party/git'
This commit is contained in:
commit
7ef0d62730
3629 changed files with 1139935 additions and 0 deletions
98
third_party/git/t/t2070-restore.sh
vendored
Executable file
98
third_party/git/t/t2070-restore.sh
vendored
Executable file
|
@ -0,0 +1,98 @@
|
|||
#!/bin/sh
|
||||
|
||||
test_description='restore basic functionality'
|
||||
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'setup' '
|
||||
test_commit first &&
|
||||
echo first-and-a-half >>first.t &&
|
||||
git add first.t &&
|
||||
test_commit second &&
|
||||
echo one >one &&
|
||||
echo two >two &&
|
||||
echo untracked >untracked &&
|
||||
echo ignored >ignored &&
|
||||
echo /ignored >.gitignore &&
|
||||
git add one two .gitignore &&
|
||||
git update-ref refs/heads/one master
|
||||
'
|
||||
|
||||
test_expect_success 'restore without pathspec is not ok' '
|
||||
test_must_fail git restore &&
|
||||
test_must_fail git restore --source=first
|
||||
'
|
||||
|
||||
test_expect_success 'restore a file, ignoring branch of same name' '
|
||||
cat one >expected &&
|
||||
echo dirty >>one &&
|
||||
git restore one &&
|
||||
test_cmp expected one
|
||||
'
|
||||
|
||||
test_expect_success 'restore a file on worktree from another ref' '
|
||||
test_when_finished git reset --hard &&
|
||||
git cat-file blob first:./first.t >expected &&
|
||||
git restore --source=first first.t &&
|
||||
test_cmp expected first.t &&
|
||||
git cat-file blob HEAD:./first.t >expected &&
|
||||
git show :first.t >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'restore a file in the index from another ref' '
|
||||
test_when_finished git reset --hard &&
|
||||
git cat-file blob first:./first.t >expected &&
|
||||
git restore --source=first --staged first.t &&
|
||||
git show :first.t >actual &&
|
||||
test_cmp expected actual &&
|
||||
git cat-file blob HEAD:./first.t >expected &&
|
||||
test_cmp expected first.t
|
||||
'
|
||||
|
||||
test_expect_success 'restore a file in both the index and worktree from another ref' '
|
||||
test_when_finished git reset --hard &&
|
||||
git cat-file blob first:./first.t >expected &&
|
||||
git restore --source=first --staged --worktree first.t &&
|
||||
git show :first.t >actual &&
|
||||
test_cmp expected actual &&
|
||||
test_cmp expected first.t
|
||||
'
|
||||
|
||||
test_expect_success 'restore --staged uses HEAD as source' '
|
||||
test_when_finished git reset --hard &&
|
||||
git cat-file blob :./first.t >expected &&
|
||||
echo index-dirty >>first.t &&
|
||||
git add first.t &&
|
||||
git restore --staged first.t &&
|
||||
git cat-file blob :./first.t >actual &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'restore --ignore-unmerged ignores unmerged entries' '
|
||||
git init unmerged &&
|
||||
(
|
||||
cd unmerged &&
|
||||
echo one >unmerged &&
|
||||
echo one >common &&
|
||||
git add unmerged common &&
|
||||
git commit -m common &&
|
||||
git switch -c first &&
|
||||
echo first >unmerged &&
|
||||
git commit -am first &&
|
||||
git switch -c second master &&
|
||||
echo second >unmerged &&
|
||||
git commit -am second &&
|
||||
test_must_fail git merge first &&
|
||||
|
||||
echo dirty >>common &&
|
||||
test_must_fail git restore . &&
|
||||
|
||||
git restore --ignore-unmerged --quiet . >output 2>&1 &&
|
||||
git diff common >diff-output &&
|
||||
test_must_be_empty output &&
|
||||
test_must_be_empty diff-output
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
Loading…
Add table
Add a link
Reference in a new issue