This causes cgit to serve error pages, which is undesirable. This reverts commit5229c9b232, reversing changes made tof2b211131f.
98 lines
2.6 KiB
Bash
Executable file
98 lines
2.6 KiB
Bash
Executable file
#!/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
|