contrib/git-resurrect.sh: use hash-agnostic OID pattern

Since Git now supports hashes other than SHA-1, the hash length isn't
guaranteed to be 40 characters. Replace $_x40 with a hash-agnostic OID
pattern.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Denton Liu 2020-10-07 23:44:40 -07:00 committed by Junio C Hamano
parent d047154e7b
commit e37eae0c1e

View File

@ -37,19 +37,18 @@ search_reflog_merges () {
) )
} }
_x40="[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]" oid_pattern=$(git hash-object --stdin </dev/null | sed -e 's/./[0-9a-f]/g')
_x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40"
search_merges () { search_merges () {
git rev-list --all --grep="Merge branch '$1'" \ git rev-list --all --grep="Merge branch '$1'" \
--pretty=tformat:"%P %s" | --pretty=tformat:"%P %s" |
sed -ne "/^$_x40 \($_x40\) Merge .*/ {s//\1/p;$early_exit}" sed -ne "/^$oid_pattern \($oid_pattern\) Merge .*/ {s//\1/p;$early_exit}"
} }
search_merge_targets () { search_merge_targets () {
git rev-list --all --grep="Merge branch '[^']*' into $branch\$" \ git rev-list --all --grep="Merge branch '[^']*' into $branch\$" \
--pretty=tformat:"%H %s" --all | --pretty=tformat:"%H %s" --all |
sed -ne "/^\($_x40\) Merge .*/ {s//\1/p;$early_exit} " sed -ne "/^\($oid_pattern\) Merge .*/ {s//\1/p;$early_exit} "
} }
dry_run= dry_run=