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" ]; thenThis 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