threads / patch / 1547

patchcommit-id, tree-id fail on tags

Subject: [PATCH] commit-id, tree-id fail on tags

## tl;dr

One message between Aug 17, 2005 and Aug 17, 2005. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Pavel Roskin· Aug 17, 2005, 04:27 UTC · lore
Hello!

Tag names don't work with current cogito because commit-id and tree-id don't parse the cg-Xnormid output properly.

Namely, if $type is empty (which is the case for tags), $normid is used before the trailing space is stripped from it.

Signed-off-by: Pavel Roskin <proski@gnu.org>
Show changes to 2 files +4 −2

commit-id, tree-id

diff --git a/commit-id b/commit-id
--- a/commit-id
+++ b/commit-id
@@ -9,8 +9,9 @@
 
 id="$1"
 normid=$(. ${COGITO_LIB}cg-Xnormid "$id") || exit 1
-type=${normid#* }; [ "$type" ] || type=$(git-cat-file -t "$normid")
+type=${normid#* }
 normid=${normid% *}
+[ "$type" ] || type=$(git-cat-file -t "$normid")
 
 if [ "$type" != "commit" ]; then
 	echo "Invalid commit id: $normid" >&2
diff --git a/tree-id b/tree-id
--- a/tree-id
+++ b/tree-id
@@ -7,8 +7,9 @@
 
 id="$1"
 normid=$(. ${COGITO_LIB}cg-Xnormid "$id") || exit 1
-type=${normid#* }; [ "$type" ] || type=$(git-cat-file -t "$normid")
+type=${normid#* }
 normid=${normid% *}
+[ "$type" ] || type=$(git-cat-file -t "$normid")
 
 if [ "$type" = "commit" ]; then
 	normid=$(git-cat-file commit "$normid" | sed -e 's/tree //;q')
-- 
Regards,
Pavel Roskin

← back to recent threads