зеркало из https://github.com/microsoft/git.git
tests: remove leftover untracked files
Remove untracked files that are unwanted after they are done being used. While the set of cases in this patch is certainly far from comprehensive, it was motivated by some work to see what the fallout would be if we were to make the removal of untracked files as a side effect of other commands into an error. Some cases were a bit more involved than the testcase changes included in this patch, but the ones included here represent the simple cases. While this patch is not that important since we are not changing the behavior of those other commands into an error in the near term, I thought these changes were useful anyway as an explicit documentation of the intent that these untracked files are no longer useful. Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Acked-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
8b7c11b866
Коммит
f222bd34ff
|
@ -195,6 +195,7 @@ test_expect_success 'reset --hard gives cache-tree' '
|
|||
|
||||
test_expect_success 'reset --hard without index gives cache-tree' '
|
||||
rm -f .git/index &&
|
||||
git clean -fd &&
|
||||
git reset --hard &&
|
||||
test_cache_tree
|
||||
'
|
||||
|
|
|
@ -48,6 +48,7 @@ test_expect_success 'checkout commit with dir must not remove untracked a/b' '
|
|||
|
||||
test_expect_success SYMLINKS 'the symlink remained' '
|
||||
|
||||
test_when_finished "rm a/b" &&
|
||||
test -h a/b
|
||||
'
|
||||
|
||||
|
|
|
@ -297,6 +297,7 @@ test_expect_success 'abort with error when new base cannot be checked out' '
|
|||
output &&
|
||||
test_i18ngrep "file1" output &&
|
||||
test_path_is_missing .git/rebase-merge &&
|
||||
rm file1 &&
|
||||
git reset --hard HEAD^
|
||||
'
|
||||
|
||||
|
|
|
@ -65,6 +65,7 @@ test_rebase_gpg_sign ! true -i --gpg-sign --no-gpg-sign
|
|||
test_rebase_gpg_sign false -i --no-gpg-sign --gpg-sign
|
||||
|
||||
test_expect_failure 'rebase -p --no-gpg-sign override commit.gpgsign' '
|
||||
test_when_finished "git clean -f" &&
|
||||
git reset --hard merged &&
|
||||
git config commit.gpgsign true &&
|
||||
git rebase -p --no-gpg-sign --onto=one fork-point main &&
|
||||
|
|
|
@ -238,6 +238,7 @@ test_expect_success 'allow skipping commit but not abort for a new history' '
|
|||
'
|
||||
|
||||
test_expect_success 'allow skipping stopped cherry-pick because of untracked file modifications' '
|
||||
test_when_finished "rm unrelated" &&
|
||||
pristine_detach initial &&
|
||||
git rm --cached unrelated &&
|
||||
git commit -m "untrack unrelated" &&
|
||||
|
|
|
@ -291,6 +291,7 @@ test_expect_success 'prune: handle HEAD reflog in multiple worktrees' '
|
|||
cat ../expected >blob &&
|
||||
git add blob &&
|
||||
git commit -m "second commit in third" &&
|
||||
git clean -f && # Remove untracked left behind by deleting index
|
||||
git reset --hard HEAD^
|
||||
) &&
|
||||
git prune --expire=now &&
|
||||
|
|
|
@ -25,7 +25,8 @@ test_expect_success 'checkout does not clobber untracked symlink' '
|
|||
git reset --hard main &&
|
||||
git rm --cached a/b &&
|
||||
git commit -m "untracked symlink remains" &&
|
||||
test_must_fail git checkout start^0
|
||||
test_must_fail git checkout start^0 &&
|
||||
git clean -fd # Do not leave the untracked symlink in the way
|
||||
'
|
||||
|
||||
test_expect_success 'a/b-2/c/d is kept when clobbering symlink b' '
|
||||
|
@ -34,7 +35,8 @@ test_expect_success 'a/b-2/c/d is kept when clobbering symlink b' '
|
|||
git rm --cached a/b &&
|
||||
git commit -m "untracked symlink remains" &&
|
||||
git checkout -f start^0 &&
|
||||
test_path_is_file a/b-2/c/d
|
||||
test_path_is_file a/b-2/c/d &&
|
||||
git clean -fd # Do not leave the untracked symlink in the way
|
||||
'
|
||||
|
||||
test_expect_success 'checkout should not have deleted a/b-2/c/d' '
|
||||
|
|
|
@ -132,6 +132,7 @@ test_expect_success 'merge-recursive, when index==head but head!=HEAD' '
|
|||
|
||||
# Make index match B
|
||||
git diff C B -- | git apply --cached &&
|
||||
test_when_finished "git clean -fd" && # Do not leave untracked around
|
||||
# Merge B & F, with B as "head"
|
||||
git merge-recursive A -- B F > out &&
|
||||
test_i18ngrep "Already up to date" out
|
||||
|
|
|
@ -718,7 +718,9 @@ test_expect_success 'merge-recursive remembers the names of all base trees' '
|
|||
# merge-recursive prints in reverse order, but we do not care
|
||||
sort <trees >expect &&
|
||||
sed -n "s/^virtual //p" out | sort >actual &&
|
||||
test_cmp expect actual
|
||||
test_cmp expect actual &&
|
||||
|
||||
git clean -fd
|
||||
'
|
||||
|
||||
test_expect_success 'merge-recursive internal merge resolves to the sameness' '
|
||||
|
|
|
@ -68,7 +68,8 @@ test_expect_success 'will not overwrite removed file' '
|
|||
git commit -m "rm c1.c" &&
|
||||
cp important c1.c &&
|
||||
test_must_fail git merge c1a &&
|
||||
test_cmp important c1.c
|
||||
test_cmp important c1.c &&
|
||||
rm c1.c # Do not leave untracked file in way of future tests
|
||||
'
|
||||
|
||||
test_expect_success 'will not overwrite re-added file' '
|
||||
|
|
|
@ -585,6 +585,7 @@ test_expect_success 'checkout --conflict=diff3' '
|
|||
'
|
||||
|
||||
test_expect_success 'failing checkout -b should not break working tree' '
|
||||
git clean -fd && # Remove untracked files in the way
|
||||
git reset --hard main &&
|
||||
git symbolic-ref HEAD refs/heads/main &&
|
||||
test_must_fail git checkout -b renamer side^ &&
|
||||
|
|
|
@ -717,6 +717,7 @@ test_expect_success 'failed fast-forward merge with --autostash' '
|
|||
git reset --hard c0 &&
|
||||
git merge-file file file.orig file.5 &&
|
||||
cp file.5 other &&
|
||||
test_when_finished "rm other" &&
|
||||
test_must_fail git merge --autostash c1 2>err &&
|
||||
test_i18ngrep "Applied autostash." err &&
|
||||
test_cmp file.5 file
|
||||
|
|
Загрузка…
Ссылка в новой задаче