Skip to content

Commit

Permalink
Merge branch 'ms/filter-branch-submodule'
Browse files Browse the repository at this point in the history
* ms/filter-branch-submodule:
  filter-branch: Add tests for submodules in tree-filter
  filter-branch: Fix to allow replacing submodules with another content
  • Loading branch information
gitster committed Feb 3, 2010
2 parents 484e669 + 1f7d57f commit 4b7acc1
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 1 deletion.
2 changes: 1 addition & 1 deletion git-filter-branch.sh
Expand Up @@ -331,7 +331,7 @@ while read commit parents; do
die "tree filter failed: $filter_tree"

(
git diff-index -r --name-only $commit &&
git diff-index -r --name-only --ignore-submodules $commit &&
git ls-files --others
) > "$tempdir"/tree-state || exit
git update-index --add --replace --remove --stdin \
Expand Down
39 changes: 39 additions & 0 deletions t/t7003-filter-branch.sh
Expand Up @@ -306,4 +306,43 @@ test_expect_success '--remap-to-ancestor with filename filters' '
test $orig_invariant = $(git rev-parse invariant)
'

test_expect_success 'setup submodule' '
rm -fr ?* .git &&
git init &&
test_commit file &&
mkdir submod &&
submodurl="$PWD/submod" &&
( cd submod &&
git init &&
test_commit file-in-submod ) &&
git submodule add "$submodurl" &&
git commit -m "added submodule" &&
test_commit add-file &&
( cd submod && test_commit add-in-submodule ) &&
git add submod &&
git commit -m "changed submodule" &&
git branch original HEAD
'

orig_head=`git show-ref --hash --head HEAD`

test_expect_success 'rewrite submodule with another content' '
git filter-branch --tree-filter "test -d submod && {
rm -rf submod &&
git rm -rf --quiet submod &&
mkdir submod &&
: > submod/file
} || :" HEAD &&
test $orig_head != `git show-ref --hash --head HEAD`
'

test_expect_success 'replace submodule revision' '
git reset --hard original &&
git filter-branch -f --tree-filter \
"if git ls-files --error-unmatch -- submod > /dev/null 2>&1
then git update-index --cacheinfo 160000 0123456789012345678901234567890123456789 submod
fi" HEAD &&
test $orig_head != `git show-ref --hash --head HEAD`
'

test_done

0 comments on commit 4b7acc1

Please sign in to comment.