Merge branch 'jk/filter-branch-sha256'
Code clean-up. * jk/filter-branch-sha256: filter-branch: drop $_x40 glob filter-branch: drop multiple-ancestor warning t7003: test ref rewriting explicitly
This commit is contained in:
commit
d4bda9b045
@ -492,14 +492,12 @@ then
|
||||
sha1=$(git rev-parse "$ref"^0)
|
||||
test -f "$workdir"/../map/$sha1 && continue
|
||||
ancestor=$(git rev-list --simplify-merges -1 "$ref" "$@")
|
||||
test "$ancestor" && echo $(map $ancestor) >> "$workdir"/../map/$sha1
|
||||
test "$ancestor" && echo $(map $ancestor) >"$workdir"/../map/$sha1
|
||||
done < "$tempdir"/heads
|
||||
fi
|
||||
|
||||
# Finally update the refs
|
||||
|
||||
_x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]'
|
||||
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
|
||||
echo
|
||||
while read ref
|
||||
do
|
||||
@ -519,7 +517,7 @@ do
|
||||
git update-ref -m "filter-branch: delete" -d "$ref" $sha1 ||
|
||||
die "Could not delete $ref"
|
||||
;;
|
||||
$_x40)
|
||||
*)
|
||||
echo "Ref '$ref' was rewritten"
|
||||
if ! git update-ref -m "filter-branch: rewrite" \
|
||||
"$ref" $rewritten $sha1 2>/dev/null; then
|
||||
@ -533,16 +531,6 @@ do
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# NEEDSWORK: possibly add -Werror, making this an error
|
||||
warn "WARNING: '$ref' was rewritten into multiple commits:"
|
||||
warn "$rewritten"
|
||||
warn "WARNING: Ref '$ref' points to the first one now."
|
||||
rewritten=$(echo "$rewritten" | head -n 1)
|
||||
git update-ref -m "filter-branch: rewrite to first" \
|
||||
"$ref" $rewritten $sha1 ||
|
||||
die "Could not rewrite $ref"
|
||||
;;
|
||||
esac
|
||||
git update-ref -m "filter-branch: backup" "$orig_namespace$ref" $sha1 ||
|
||||
exit
|
||||
|
@ -506,4 +506,35 @@ test_expect_success 'rewrite repository including refs that point at non-commit
|
||||
! fgrep fatal filter-output
|
||||
'
|
||||
|
||||
test_expect_success 'filter-branch handles ref deletion' '
|
||||
git switch --orphan empty-commit &&
|
||||
git commit --allow-empty -m "empty commit" &&
|
||||
git tag empty &&
|
||||
git branch to-delete &&
|
||||
git filter-branch -f --prune-empty to-delete >out 2>&1 &&
|
||||
grep "to-delete.*was deleted" out &&
|
||||
test_must_fail git rev-parse --verify to-delete
|
||||
'
|
||||
|
||||
test_expect_success 'filter-branch handles ref rewrite' '
|
||||
git checkout empty &&
|
||||
test_commit to-drop &&
|
||||
git branch rewrite &&
|
||||
git filter-branch -f \
|
||||
--index-filter "git rm --ignore-unmatch --cached to-drop.t" \
|
||||
rewrite >out 2>&1 &&
|
||||
grep "rewrite.*was rewritten" out &&
|
||||
! grep -i warning out &&
|
||||
git diff-tree empty rewrite
|
||||
'
|
||||
|
||||
test_expect_success 'filter-branch handles ancestor rewrite' '
|
||||
test_commit to-exclude &&
|
||||
git branch ancestor &&
|
||||
git filter-branch -f ancestor -- :^to-exclude.t >out 2>&1 &&
|
||||
grep "ancestor.*was rewritten" out &&
|
||||
! grep -i warning out &&
|
||||
git diff-tree HEAD^ ancestor
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user