git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/2] contrib/git-resurrect.sh: use hash-agnostic OID pattern

From
Denton Liu <liu.denton@gmail.com>
Date
Oct 8, 2020, 06:44 UTC
Message-ID
<6fad1fc7fdad98c3dda1ec334a10a6a9e311fef8.1602139448.git.liu.denton@gmail.com>
In-Reply-To
<cover.1602139448.git.liu.denton@gmail.com>

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>
---
 contrib/git-resurrect.sh | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/contrib/git-resurrect.sh b/contrib/git-resurrect.sh
index 57a77c03f9..d843df3afd 100755
--- a/contrib/git-resurrect.sh
+++ b/contrib/git-resurrect.sh
@@ -37,19 +37,18 @@ search_reflog_merges () {
 	)
 }
 
-_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"
+oid_pattern=$(git hash-object --stdin </dev/null | sed -e 's/./[0-9a-f]/g')
 
 search_merges () {
 	git rev-list --all --grep="Merge branch '$1'" \
 		--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 () {
 	git rev-list --all --grep="Merge branch '[^']*' into $branch\$" \
 		--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=
-- 
2.29.0.rc0.261.g7178c9af9c
Previous: Junio C HamanoNext: Jeff King
Message 5 of 11 in “contrib/git-resurrect.sh: make it hash-agnostic”
  1. 0/2 contrib/git-resurrect.sh: make it hash-agnosticDenton Liu, Oct 8, 2020
  2. 1/2 contrib/git-resurrect.sh: indent with tabsDenton Liu, Oct 8, 2020
  3. Junio C HamanoOct 8, 2020
  4. Junio C HamanoOct 8, 2020
  5. 2/2 contrib/git-resurrect.sh: use hash-agnostic OID patternDenton Liu, Oct 8, 2020
  6. Jeff KingOct 8, 2020
  7. Junio C HamanoOct 8, 2020
  8. Jeff KingOct 8, 2020
  9. brian m. carlsonOct 8, 2020
  10. Andreas SchwabOct 9, 2020
  11. Jeff KingOct 9, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.