Teach git-fetch to exploit server side automatic tag following
[gitweb.git] / t / t7003-filter-branch.sh
index c79853d986ab31da6813576fe003f8a5885e0b64..868babc4b2350526192a8df53f6cbec3f81c644e 100755 (executable)
@@ -41,7 +41,9 @@ test_expect_success 'rewrite, renaming a specific file' '
 '
 
 test_expect_success 'test that the file was renamed' '
-       test d = $(git show HEAD:doh)
+       test d = $(git show HEAD:doh) &&
+       test -f doh &&
+       test d = $(cat doh)
 '
 
 git tag oldD HEAD~4
@@ -112,7 +114,7 @@ test_expect_success 'use index-filter to move into a subdirectory' '
 
 test_expect_success 'stops when msg filter fails' '
        old=$(git rev-parse HEAD) &&
-       ! git-filter-branch -f --msg-filter false &&
+       ! git-filter-branch -f --msg-filter false HEAD &&
        test $old = $(git rev-parse HEAD) &&
        rm -rf .git-rewrite
 '
@@ -138,13 +140,7 @@ test_expect_success "remove a certain author's commits" '
        git-filter-branch -f --commit-filter "\
                if [ \"\$GIT_AUTHOR_NAME\" = \"B V Uips\" ];\
                then\
-                       shift;\
-                       while [ -n \"\$1\" ];\
-                       do\
-                               shift;\
-                               echo \"\$1\";\
-                               shift;\
-                       done;\
+                       skip_commit \"\$@\";
                else\
                        git commit-tree \"\$@\";\
                fi" removed-author &&
@@ -169,4 +165,18 @@ test_expect_success '"map" works in commit filter' '
        git rev-parse --verify master
 '
 
+test_expect_success 'Name needing quotes' '
+
+       git checkout -b rerere A &&
+       mkdir foo &&
+       name="れれれ" &&
+       >foo/$name &&
+       git add foo &&
+       git commit -m "Adding a file" &&
+       git filter-branch --tree-filter "rm -fr foo" &&
+       ! git ls-files --error-unmatch "foo/$name" &&
+       test $(git rev-parse --verify rerere) != $(git rev-parse --verify A)
+
+'
+
 test_done