rev-parse: Add support for the ^! and ^@ syntax
[gitweb.git] / t / t7003-filter-branch.sh
index 1639c7aa9624bf3219afd021daf14c6f07dcfc32..a0ab096c8fdee153a89a1428f85c9bf107badada 100755 (executable)
@@ -38,6 +38,14 @@ test_expect_success 'result is really identical' '
        test $H = $(git rev-parse HEAD)
 '
 
+test_expect_success 'rewrite bare repository identically' '
+       (git config core.bare true && cd .git && git-filter-branch branch)
+'
+git config core.bare false
+test_expect_success 'result is really identical' '
+       test $H = $(git rev-parse HEAD)
+'
+
 test_expect_success 'rewrite, renaming a specific file' '
        git-filter-branch -f --tree-filter "mv d doh || :" HEAD
 '
@@ -97,7 +105,7 @@ test_expect_success 'subdirectory filter result looks okay' '
        test_must_fail git show sub:subdir
 '
 
-test_expect_success 'setup and filter history that requires --full-history' '
+test_expect_success 'more setup' '
        git checkout master &&
        mkdir subdir &&
        echo A > subdir/new &&
@@ -107,16 +115,7 @@ test_expect_success 'setup and filter history that requires --full-history' '
        git rm a &&
        test_tick &&
        git commit -m "again subdir on master" &&
-       git merge branch &&
-       git branch sub-master &&
-       git-filter-branch -f --subdirectory-filter subdir sub-master
-'
-
-test_expect_success 'subdirectory filter result looks okay' '
-       test 3 = $(git rev-list -1 --parents sub-master | wc -w) &&
-       git show sub-master^:new &&
-       git show sub-master^2:new &&
-       test_must_fail git show sub:subdir
+       git merge branch
 '
 
 test_expect_success 'use index-filter to move into a subdirectory' '
@@ -224,7 +223,7 @@ test_expect_success 'Tag name filtering retains tag message' '
        git cat-file tag T > expect &&
        git filter-branch -f --tag-name-filter cat &&
        git cat-file tag T > actual &&
-       git diff expect actual
+       test_cmp expect actual
 '
 
 faux_gpg_tag='object XXXXXX
@@ -248,7 +247,7 @@ test_expect_success 'Tag name filtering strips gpg signature' '
        echo "$faux_gpg_tag" | sed -e s/XXXXXX/$sha1/ | head -n 6 > expect &&
        git filter-branch -f --tag-name-filter cat &&
        git cat-file tag S > actual &&
-       git diff expect actual
+       test_cmp expect actual
 '
 
 test_done