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
'
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 &&
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' '
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
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