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

[PATCH 1/2] cat-file doc: document that -e will return some output

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jan 10, 2018, 12:55 UTC
Message-ID
<20180110125554.12582-2-avarab@gmail.com>
In-Reply-To
<20180110125554.12582-1-avarab@gmail.com>

The -e option added in 7950571ad7 ("A few more options for git-cat-file", 2005-12-03) has always errored out with message on stderr saying that the provided object is malformed, currently:

    $ git cat-file -e malformed; echo $?
    fatal: Not a valid object name malformed
    128

A careful reader of this documentation would be mislead into thinking the could write:

    if ! git cat-file -e "$object" [...]
As opposed to:
    if ! git cat-file -e "$object" 2>/dev/null [...]

To check whether some arbitrary $object string was both valid, and pointed to an object that exists.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 Documentation/git-cat-file.txt | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt
index fb09cd69d6..f90f09b03f 100644
--- a/Documentation/git-cat-file.txt
+++ b/Documentation/git-cat-file.txt
@@ -42,8 +42,9 @@ OPTIONS
 	<object>.
 
 -e::
-	Suppress all output; instead exit with zero status if <object>
-	exists and is a valid object.
+	Exit with zero status if <object> exists and is a valid
+	object. If <object> is of an invalid format exit with non-zero and
+	emits an error on stderr.
 
 -p::
 	Pretty-print the contents of <object> based on its type.
@@ -168,7 +169,7 @@ If `-t` is specified, one of the <type>.
 
 If `-s` is specified, the size of the <object> in bytes.
 
-If `-e` is specified, no output.
+If `-e` is specified, no output, unless the <object> is malformed.
 
 If `-p` is specified, the contents of <object> are pretty-printed.
 
-- 
2.15.1.424.g9478a66081
Previous: Ævar Arnfjörð BjarmasonNext: Junio C Hamano
Message 3 of 7 in “the cat-file -e option doesn't work as documented”
  1. 0/2 the cat-file -e option doesn't work as documentedÆvar Arnfjörð Bjarmason, Jan 10, 2018
  2. 2/2 cat-file: -e should not emit output on stderrÆvar Arnfjörð Bjarmason, Jan 10, 2018
  3. 1/2 cat-file doc: document that -e will return some outputÆvar Arnfjörð Bjarmason, Jan 10, 2018
  4. Junio C HamanoJan 10, 2018
  5. Junio C HamanoJan 10, 2018
  6. Junio C HamanoJan 10, 2018
  7. Junio C HamanoJan 10, 2018

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.