Thread (8 messages) flat view 8 messages, 4 authors, 2016-06-15

Re: [PATCH] Cogito: Use git-rev-parse instead of cg-Xnormid.

From: Brian Gerst <hidden>
Date: 2016-06-15 22:42:01

Petr Baudis wrote:
Dear diary, on Sun, Jul 03, 2005 at 07:59:42AM CEST, I got a letter
where Brian Gerst [off-list ref] told me that...
quoted
Use git-rev-parse instead of cg-Xnormid.  This allows Cogito to work 
properly with packed objects.

Signed off by: Brian Gerst [off-list ref]

But git-rev-parse sucks. It won't detect invalid IDs (--revs-only?), and
does not support short object IDs (that's a must, it's tremendously
useful). You need to add that for it to be useful first.
cg-Xnormid is terminally broken in the presence of packed files, since 
it cannot look into them to find objects.  Moreover, many uses of 
commit-id in the scripts can be eliminated because the underlying git 
commands can already understand tags directly, and will check for 
invalid ids then.  The only thing missing is the short id matching.
quoted
diff --git a/tree-id b/tree-id
--- a/tree-id
+++ b/tree-id
@@ -5,8 +5,8 @@
#
# Takes ID of the appropriate commit, defaults to HEAD.

-id="$1"
-normid=$(${COGITO_LIB}cg-Xnormid "$id") || exit 1
+id="${1:-HEAD}"
+normid=$(git-rev-parse "$id")
type=$(git-cat-file -t "$normid")

if [ "$type" = "commit" ]; then

This is broken too. You need to be able to pass _tree_ ID to tree-id too,
not just commit ID. Hmm, or is git-rev-parse able to process any ids?
Then it's terribly misnamed too. :-) A comment would be useful in that
case. (Or better a patch to rename it.)
Yes you can still pass in the tree id.

--
				Brian Gerst
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help