Browse Source

Merge branch 'jk/filter-branch-no-index' into maint

A recent optimization to filter-branch in v2.7.0 introduced a
regression when --prune-empty filter is used, which has been
corrected.

* jk/filter-branch-no-index:
  filter-branch: resolve $commit^{tree} in no-index case
maint
Junio C Hamano 9 years ago
parent
commit
16f5e26833
  1. 2
      git-filter-branch.sh
  2. 8
      t/t7003-filter-branch.sh

2
git-filter-branch.sh

@ -404,7 +404,7 @@ while read commit parents; do @@ -404,7 +404,7 @@ while read commit parents; do
then
tree=$(git write-tree)
else
tree="$commit^{tree}"
tree=$(git rev-parse "$commit^{tree}")
fi
workdir=$workdir @SHELL_PATH@ -c "$filter_commit" "git commit-tree" \
"$tree" $parentstr < ../message > ../map/$commit ||

8
t/t7003-filter-branch.sh

@ -333,6 +333,14 @@ test_expect_success 'prune empty collapsed merges' ' @@ -333,6 +333,14 @@ test_expect_success 'prune empty collapsed merges' '
test_cmp expect actual
'

test_expect_success 'prune empty works even without index/tree filters' '
git rev-list HEAD >expect &&
git commit --allow-empty -m empty &&
git filter-branch -f --prune-empty HEAD &&
git rev-list HEAD >actual &&
test_cmp expect actual
'

test_expect_success '--remap-to-ancestor with filename filters' '
git checkout master &&
git reset --hard A &&

Loading…
Cancel
Save