diff options
author | Jonathan Nieder <jrnieder@gmail.com> | 2011-05-02 23:02:15 -0500 |
---|---|---|
committer | Jonathan Nieder <jrnieder@gmail.com> | 2011-05-02 23:02:15 -0500 |
commit | 59445b0b02c731872c8665ac7e9cf1226fa616e4 (patch) | |
tree | 93922cf13ed9c62859dac628fa7e376977a23d24 /t/t2021-checkout-overwrite.sh | |
parent | 6908e999468d7eb531a1609cee37673c5d3ca04f (diff) | |
parent | ec014eac0e9e6f30cbbca616090fa2ecf74797e7 (diff) | |
download | git-59445b0b02c731872c8665ac7e9cf1226fa616e4.tar.gz |
Merge commit 'v1.7.5' into svn-fe
* commit 'v1.7.5': (436 commits)
Git 1.7.5
Git 1.7.5-rc3
Git 1.7.4.5
git-svn.txt: Document --mergeinfo
Revert "run-command: prettify -D_FORTIFY_SOURCE workaround"
...
Diffstat (limited to 't/t2021-checkout-overwrite.sh')
-rwxr-xr-x | t/t2021-checkout-overwrite.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/t/t2021-checkout-overwrite.sh b/t/t2021-checkout-overwrite.sh new file mode 100755 index 0000000000..5da63e9fa2 --- /dev/null +++ b/t/t2021-checkout-overwrite.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +test_description='checkout must not overwrite an untracked objects' +. ./test-lib.sh + +test_expect_success 'setup' ' + + mkdir -p a/b/c && + >a/b/c/d && + git add -A && + git commit -m base && + git tag start +' + +test_expect_success 'create a commit where dir a/b changed to file' ' + + git checkout -b file && + rm -rf a/b && + >a/b && + git add -A && + git commit -m "dir to file" +' + +test_expect_success 'checkout commit with dir must not remove untracked a/b' ' + + git rm --cached a/b && + git commit -m "un-track the file" && + test_must_fail git checkout start && + test -f a/b +' + +test_expect_success SYMLINKS 'create a commit where dir a/b changed to symlink' ' + + rm -rf a/b && # cleanup if previous test failed + git checkout -f -b symlink start && + rm -rf a/b && + ln -s foo a/b && + git add -A && + git commit -m "dir to symlink" +' + +test_expect_success SYMLINKS 'checkout commit with dir must not remove untracked a/b' ' + + git rm --cached a/b && + git commit -m "un-track the symlink" && + test_must_fail git checkout start && + test -h a/b +' + +test_done |