Skip to content

Commit

Permalink
Merge branch 'js/filter-branch'
Browse files Browse the repository at this point in the history
* js/filter-branch:
  filter-branch: Fix renaming a directory in the tree-filter
  filter-branch: Test renaming directories in a tree-filter
  • Loading branch information
Junio C Hamano committed Apr 2, 2008
2 parents cfc4ba3 + 6a589fd commit eedb9d9
Showing 2 changed files with 19 additions and 3 deletions.
2 changes: 1 addition & 1 deletion git-filter-branch.sh
Original file line number Diff line number Diff line change
@@ -281,7 +281,7 @@ while read commit parents; do
die "Could not checkout the index"
# files that $commit removed are now still in the working tree;
# remove them, else they would be added again
git clean -q -f -x
git clean -d -q -f -x
eval "$filter_tree" < /dev/null ||
die "tree filter failed: $filter_tree"

20 changes: 18 additions & 2 deletions t/t7003-filter-branch.sh
Original file line number Diff line number Diff line change
@@ -17,6 +17,8 @@ test_expect_success 'setup' '
make_commit B
git checkout -b branch B
make_commit D
mkdir dir
make_commit dir/D
make_commit E
git checkout master
make_commit C
@@ -41,9 +43,23 @@ 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 d &&
test -f doh &&
test d = $(cat doh)
test d = "$(cat doh)"
'

test_expect_success 'rewrite, renaming a specific directory' '
git-filter-branch -f --tree-filter "mv dir diroh || :" HEAD
'

test_expect_success 'test that the directory was renamed' '
test dir/d = "$(git show HEAD:diroh/d --)" &&
! test -d dir &&
test -d diroh &&
! test -d diroh/dir &&
test -f diroh/d &&
test dir/d = "$(cat diroh/d)"
'

git tag oldD HEAD~4

0 comments on commit eedb9d9

Please sign in to comment.