aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-12-13 11:10:24 -0800
committerJunio C Hamano <junkio@cox.net>2006-12-13 11:10:24 -0800
commitf388cec3d77751a6c20b3b10415344f5355b5a2f (patch)
tree557f4a01f9da0851617f290aa556e56e5c07092b /t
parentd0085ade9598942077f12f22b16978411d15188a (diff)
parent22f741dab7cc93f00f7cf96cd65d7481677cd855 (diff)
downloadgit-f388cec3d77751a6c20b3b10415344f5355b5a2f.tar.gz
git-f388cec3d77751a6c20b3b10415344f5355b5a2f.tar.xz
Merge branch 'jc/read-tree-ignore'
* jc/read-tree-ignore: read-tree: document --exclude-per-directory Loosen "working file will be lost" check in Porcelain-ish read-tree: further loosen "working file will be lost" check.
Diffstat (limited to 't')
-rwxr-xr-xt/t1004-read-tree-m-u-wf.sh82
1 files changed, 74 insertions, 8 deletions
diff --git a/t/t1004-read-tree-m-u-wf.sh b/t/t1004-read-tree-m-u-wf.sh
index 018fbea45..4f664f6ad 100755
--- a/t/t1004-read-tree-m-u-wf.sh
+++ b/t/t1004-read-tree-m-u-wf.sh
@@ -8,23 +8,27 @@ test_description='read-tree -m -u checks working tree files'
test_expect_success 'two-way setup' '
+ mkdir subdir &&
echo >file1 file one &&
echo >file2 file two &&
- git update-index --add file1 file2 &&
+ echo >subdir/file1 file one in subdirectory &&
+ echo >subdir/file2 file two in subdirectory &&
+ git update-index --add file1 file2 subdir/file1 subdir/file2 &&
git commit -m initial &&
git branch side &&
git tag -f branch-point &&
echo file2 is not tracked on the master anymore &&
- rm -f file2 &&
- git update-index --remove file2 &&
- git commit -a -m "master removes file2"
+ rm -f file2 subdir/file2 &&
+ git update-index --remove file2 subdir/file2 &&
+ git commit -a -m "master removes file2 and subdir/file2"
'
test_expect_success 'two-way not clobbering' '
echo >file2 master creates untracked file2 &&
+ echo >subdir/file2 master creates untracked subdir/file2 &&
if err=`git read-tree -m -u master side 2>&1`
then
echo should have complained
@@ -34,20 +38,82 @@ test_expect_success 'two-way not clobbering' '
fi
'
+echo file2 >.gitignore
+
+test_expect_success 'two-way with incorrect --exclude-per-directory (1)' '
+
+ if err=`git read-tree -m --exclude-per-directory=.gitignore master side 2>&1`
+ then
+ echo should have complained
+ false
+ else
+ echo "happy to see $err"
+ fi
+'
+
+test_expect_success 'two-way with incorrect --exclude-per-directory (2)' '
+
+ if err=`git read-tree -m -u --exclude-per-directory=foo --exclude-per-directory=.gitignore master side 2>&1`
+ then
+ echo should have complained
+ false
+ else
+ echo "happy to see $err"
+ fi
+'
+
+test_expect_success 'two-way clobbering a ignored file' '
+
+ git read-tree -m -u --exclude-per-directory=.gitignore master side
+'
+
+rm -f .gitignore
+
# three-tree test
-test_expect_success 'three-way not complaining' '
+test_expect_success 'three-way not complaining on an untracked path in both' '
- rm -f file2 &&
+ rm -f file2 subdir/file2 &&
git checkout side &&
echo >file3 file three &&
- git update-index --add file3 &&
- git commit -a -m "side adds file3" &&
+ echo >subdir/file3 file three &&
+ git update-index --add file3 subdir/file3 &&
+ git commit -a -m "side adds file3 and removes file2" &&
git checkout master &&
echo >file2 file two is untracked on the master side &&
+ echo >subdir/file2 file two is untracked on the master side &&
git-read-tree -m -u branch-point master side
'
+test_expect_success 'three-way not cloberring a working tree file' '
+
+ git reset --hard &&
+ rm -f file2 subdir/file2 file3 subdir/file3 &&
+ git checkout master &&
+ echo >file3 file three created in master, untracked &&
+ echo >subdir/file3 file three created in master, untracked &&
+ if err=`git read-tree -m -u branch-point master side 2>&1`
+ then
+ echo should have complained
+ false
+ else
+ echo "happy to see $err"
+ fi
+'
+
+echo >.gitignore file3
+
+test_expect_success 'three-way not complaining on an untracked file' '
+
+ git reset --hard &&
+ rm -f file2 subdir/file2 file3 subdir/file3 &&
+ git checkout master &&
+ echo >file3 file three created in master, untracked &&
+ echo >subdir/file3 file three created in master, untracked &&
+
+ git read-tree -m -u --exclude-per-directory=.gitignore branch-point master side
+'
+
test_done