Commit 3520e1e8 authored by Johannes Sixt's avatar Johannes Sixt Committed by Junio C Hamano

filter-branch: also don't fail in map() if a commit cannot be mapped

The map() function can be used by filters to map a commit id to its
rewritten id. Such a mapping may not exist, in which case the identity
mapping is used (the commit is returned unchanged).

In the rewrite loop, this mapping is also needed, but was done
explicitly in the same way. Use the map() function instead.
Signed-off-by: default avatarJohannes Sixt <johannes.sixt@telecom.at>
Acked-by: Johannes Schindelin's avatarJohannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
parent 2766ce28
......@@ -184,7 +184,8 @@ USAGE="git-filter-branch [-d TEMPDIR] [FILTERS] DESTBRANCH [REV-RANGE]"
map()
{
[ -r "$workdir/../map/$1" ] || return 1
# if it was not rewritten, take the original
test -r "$workdir/../map/$1" || echo "$1"
cat "$workdir/../map/$1"
}
......@@ -347,14 +348,9 @@ while read commit; do
parentstr=
for parent in $(get_parents $commit); do
if [ -r "../map/$parent" ]; then
for reparent in $(cat "../map/$parent"); do
parentstr="$parentstr -p $reparent"
done
else
# if it was not rewritten, take the original
parentstr="$parentstr -p $parent"
fi
for reparent in $(map "$parent"); do
parentstr="$parentstr -p $reparent"
done
done
if [ "$filter_parent" ]; then
parentstr="$(echo "$parentstr" | eval "$filter_parent")"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment