Skip to contentSkip to conversation

A few more options for git-cat-file

PATCH In review H. Peter Anvin 2 participants 3 messages Jun 15, 2016 Documentation

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 A few more options for git-cat-file

This adds the following options to git-cat-file:

-n, to get the canonical name of a resource. This is for one thing useful in tagging scripts.

-e, to test for the existence of a file.

This also cleans up the option-parsing in git-cat-file slightly.

Documentation/git-cat-file.txt +16 -3
index ab4dcae..a59e513 100644
@@ -8,7 +8,7 @@ git-cat-file - Provide content or type i
 
 SYNOPSIS
 --------
-'git-cat-file' (-t | -s | <type>) <object>
+'git-cat-file' (-t | -s | -n | -e | <type>) <object>
 
 DESCRIPTION
 -----------
@@ -29,6 +29,13 @@ OPTIONS
 	Instead of the content, show the object size identified by
 	<object>.
 
+-n::
+	Instead of the content, show the canoncical name of <object>.
+
+-e::
+	Suppress all output; instead exit with zero status if <object>
+	exists and is a valid object.
+
 <type>::
 	Typically this matches the real type of <object> but asking
 	for a type that can trivially be dereferenced from the given
@@ -39,8 +46,14 @@ OPTIONS
 
 OUTPUT
 ------
-If '-t' is specified, one of the <type>.  If '-s' is specified,
-the size of the <object> in bytes.
+If '-t' is specified, one of the <type>.
+
+If '-s' is specified, the size of the <object> in bytes.
+
+If '-n' is specified, the canoncial name (40-character SHA1
+hexadecimal string) of the object.
+
+If '-e' is specified, no output.
 
 Otherwise the raw (though uncompressed) contents of the <object> will
 be returned.
cat-file.c +35 -14

62 lines not on this page · raw message

#1 lore raw
Quoted 4 lines · H. Peter Anvin

This adds the following options to git-cat-file:

-n, to get the canonical name of a resource. This is for one thing useful in tagging scripts.

Isn't "git-rev-parse --verify" good enough?

Quoted 1 line

-e, to test for the existence of a file.

This might be useful and cleaner than "cat-file -s >/dev/null" but marginally so. While reading the whole file and discarding that to /dev/null is wasteful and would go against tastes of many people, -t and -s flags do not need to read the whole thing and not so expensive.

#2 lore raw
Quoted 10 lines · Junio C Hamano
Quoted 4 lines · H. Peter Anvin

This adds the following options to git-cat-file:

-n, to get the canonical name of a resource. This is for one thing useful in tagging scripts.

Isn't "git-rev-parse --verify" good enough?

Ah, yes. Except for the fact that I couldn't find it when I looked for a command that did that. git-rev-parse seems like an eclectic mixture of stuff, and the name isn't very clear as to what it does.

Quoted 8 lines
Quoted 2 lines

-e, to test for the existence of a file.

This might be useful and cleaner than "cat-file -s >/dev/null" but marginally so. While reading the whole file and discarding that to /dev/null is wasteful and would go against tastes of many people, -t and -s flags do not need to read the whole thing and not so expensive.

Still, -e as implemented here is definitely cheaper.

-hpa