Browse Source

Merge branch 'js/filter-branch'

* js/filter-branch:
  filter-branch: Fix renaming a directory in the tree-filter
  filter-branch: Test renaming directories in a tree-filter
maint
Junio C Hamano 17 years ago
parent
commit
eedb9d9eab
  1. 2
      git-filter-branch.sh
  2. 20
      t/t7003-filter-branch.sh

2
git-filter-branch.sh

@ -281,7 +281,7 @@ while read commit parents; do
die "Could not checkout the index" die "Could not checkout the index"
# files that $commit removed are now still in the working tree; # files that $commit removed are now still in the working tree;
# remove them, else they would be added again # remove them, else they would be added again
git clean -q -f -x git clean -d -q -f -x
eval "$filter_tree" < /dev/null || eval "$filter_tree" < /dev/null ||
die "tree filter failed: $filter_tree" die "tree filter failed: $filter_tree"



20
t/t7003-filter-branch.sh

@ -17,6 +17,8 @@ test_expect_success 'setup' '
make_commit B make_commit B
git checkout -b branch B git checkout -b branch B
make_commit D make_commit D
mkdir dir
make_commit dir/D
make_commit E make_commit E
git checkout master git checkout master
make_commit C 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_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 -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 git tag oldD HEAD~4

Loading…
Cancel
Save