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)
|
sha1=$(git rev-parse "$ref"^0)
|
||||||
test -f "$workdir"/../map/$sha1 && continue
|
test -f "$workdir"/../map/$sha1 && continue
|
||||||
ancestor=$(git rev-list --simplify-merges -1 "$ref" "$@")
|
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
|
done < "$tempdir"/heads
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Finally update the refs
|
# 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
|
echo
|
||||||
while read ref
|
while read ref
|
||||||
do
|
do
|
||||||
@ -519,7 +517,7 @@ do
|
|||||||
git update-ref -m "filter-branch: delete" -d "$ref" $sha1 ||
|
git update-ref -m "filter-branch: delete" -d "$ref" $sha1 ||
|
||||||
die "Could not delete $ref"
|
die "Could not delete $ref"
|
||||||
;;
|
;;
|
||||||
$_x40)
|
*)
|
||||||
echo "Ref '$ref' was rewritten"
|
echo "Ref '$ref' was rewritten"
|
||||||
if ! git update-ref -m "filter-branch: rewrite" \
|
if ! git update-ref -m "filter-branch: rewrite" \
|
||||||
"$ref" $rewritten $sha1 2>/dev/null; then
|
"$ref" $rewritten $sha1 2>/dev/null; then
|
||||||
@ -533,16 +531,6 @@ do
|
|||||||
fi
|
fi
|
||||||
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
|
esac
|
||||||
git update-ref -m "filter-branch: backup" "$orig_namespace$ref" $sha1 ||
|
git update-ref -m "filter-branch: backup" "$orig_namespace$ref" $sha1 ||
|
||||||
exit
|
exit
|
||||||
|
@ -506,4 +506,35 @@ test_expect_success 'rewrite repository including refs that point at non-commit
|
|||||||
! fgrep fatal filter-output
|
! 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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user