usage: do not insist that standard input must come from a file

The synopsys text and the usage string of subcommands that read list
of things from the standard input are often shown like this:

	git gostak [--distim] < <list-of-doshes>

This is problematic in a number of ways:

 * The way to use these commands is more often to feed them the
   output from another command, not feed them from a file.

 * Manual pages outside Git, commands that operate on the data read
   from the standard input, e.g "sort", "grep", "sed", etc., are not
   described with such a "< redirection-from-file" in their synopsys
   text.  Our doing so introduces inconsistency.

 * We do not insist on where the output should go, by saying

	git gostak [--distim] < <list-of-doshes> > <output>

 * As it is our convention to enclose placeholders inside <braket>,
   the redirection operator followed by a placeholder filename
   becomes very hard to read, both in the documentation and in the
   help text.

Let's clean them all up, after making sure that the documentation
clearly describes the modes that take information from the standard
input and what kind of things are expected on the input.

[jc: stole example for fmt-merge-msg from Jonathan]

Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pull/184/head
Junio C Hamano 7 years ago
parent 3c3d3f629a
commit 33e8fc8740
  1. 2
      Documentation/git-cat-file.txt
  2. 5
      Documentation/git-check-attr.txt
  3. 5
      Documentation/git-check-ignore.txt
  4. 2
      Documentation/git-commit-tree.txt
  5. 14
      Documentation/git-fmt-merge-msg.txt
  6. 12
      Documentation/git-get-tar-commit-id.txt
  7. 5
      Documentation/git-hash-object.txt
  8. 5
      Documentation/git-mktag.txt
  9. 4
      Documentation/git-patch-id.txt
  10. 7
      Documentation/git-show-index.txt
  11. 7
      Documentation/git-show-ref.txt
  12. 9
      Documentation/git-stripspace.txt
  13. 2
      Documentation/git-unpack-objects.txt
  14. 2
      builtin/cat-file.c
  15. 2
      builtin/check-attr.c
  16. 2
      builtin/check-ignore.c
  17. 2
      builtin/commit-tree.c
  18. 2
      builtin/get-tar-commit-id.c
  19. 2
      builtin/hash-object.c
  20. 2
      builtin/mktag.c
  21. 2
      builtin/patch-id.c
  22. 2
      builtin/show-ref.c
  23. 4
      builtin/stripspace.c
  24. 2
      builtin/unpack-objects.c
  25. 2
      show-index.c

@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git cat-file' (-t [--allow-unknown-type]| -s [--allow-unknown-type]| -e | -p | <type> | --textconv ) <object>
'git cat-file' (--batch | --batch-check) [--follow-symlinks] < <list-of-objects>
'git cat-file' (--batch | --batch-check) [--follow-symlinks]
DESCRIPTION
-----------

@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git check-attr' [-a | --all | attr...] [--] pathname...
'git check-attr' --stdin [-z] [-a | --all | attr...] < <list-of-paths>
'git check-attr' --stdin [-z] [-a | --all | attr...]
DESCRIPTION
-----------
@ -28,7 +28,8 @@ OPTIONS
Consider `.gitattributes` in the index only, ignoring the working tree.
--stdin::
Read file names from stdin instead of from the command-line.
Read pathnames from the standard input, one per line,
instead of from the command-line.
-z::
The output format is modified to be machine-parseable.

@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git check-ignore' [options] pathname...
'git check-ignore' [options] --stdin < <list-of-paths>
'git check-ignore' [options] --stdin
DESCRIPTION
-----------
@ -35,7 +35,8 @@ OPTIONS
for each given pathname.
--stdin::
Read file names from stdin instead of from the command-line.
Read pathnames from the standard input, one per line,
instead of from the command-line.
-z::
The output format is modified to be machine-parseable (see

@ -9,7 +9,7 @@ git-commit-tree - Create a new commit object
SYNOPSIS
--------
[verse]
'git commit-tree' <tree> [(-p <parent>)...] < changelog
'git commit-tree' <tree> [(-p <parent>)...]
'git commit-tree' [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...]
[(-F <file>)...] <tree>

@ -9,7 +9,7 @@ git-fmt-merge-msg - Produce a merge commit message
SYNOPSIS
--------
[verse]
'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log] <$GIT_DIR/FETCH_HEAD
'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log]
'git fmt-merge-msg' [-m <message>] [--log[=<n>] | --no-log] -F <file>
DESCRIPTION
@ -57,6 +57,18 @@ merge.summary::
Synonym to `merge.log`; this is deprecated and will be removed in
the future.
EXAMPLE
-------
--
$ git fetch origin master
$ git fmt-merge-msg --log <$GIT_DIR/FETCH_HEAD
--
Print a log message describing a merge of the "master" branch from
the "origin" remote.
SEE ALSO
--------
linkgit:git-merge[1]

@ -9,17 +9,19 @@ git-get-tar-commit-id - Extract commit ID from an archive created using git-arch
SYNOPSIS
--------
[verse]
'git get-tar-commit-id' < <tarfile>
'git get-tar-commit-id'
DESCRIPTION
-----------
Acts as a filter, extracting the commit ID stored in archives created by
'git archive'. It reads only the first 1024 bytes of input, thus its
runtime is not influenced by the size of <tarfile> very much.
Read a tar archive created by 'git archive' from the standard input
and extract the commit ID stored in it. It reads only the first
1024 bytes of input, thus its runtime is not influenced by the size
of the tar archive very much.
If no commit ID is found, 'git get-tar-commit-id' quietly exists with a
return code of 1. This can happen if <tarfile> had not been created
return code of 1. This can happen if the archive had not been created
using 'git archive' or if the first parameter of 'git archive' had been
a tree ID instead of a commit ID or tag.

@ -10,7 +10,7 @@ SYNOPSIS
--------
[verse]
'git hash-object' [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin [--literally]] [--] <file>...
'git hash-object' [-t <type>] [-w] --stdin-paths [--no-filters] < <list-of-paths>
'git hash-object' [-t <type>] [-w] --stdin-paths [--no-filters]
DESCRIPTION
-----------
@ -35,7 +35,8 @@ OPTIONS
Read the object from standard input instead of from a file.
--stdin-paths::
Read file names from stdin instead of from the command-line.
Read file names from the standard input, one per line, instead
of from the command-line.
--path::
Hash object as it were located at the given path. The location of

@ -9,7 +9,7 @@ git-mktag - Creates a tag object
SYNOPSIS
--------
[verse]
'git mktag' < signature_file
'git mktag'
DESCRIPTION
-----------
@ -20,7 +20,8 @@ The output is the new tag's <object> identifier.
Tag Format
----------
A tag signature file has a very simple fixed format: four lines of
A tag signature file, to be fed to this command's standard input,
has a very simple fixed format: four lines of
object <sha1>
type <typename>

@ -8,10 +8,12 @@ git-patch-id - Compute unique ID for a patch
SYNOPSIS
--------
[verse]
'git patch-id' [--stable | --unstable] < <patch>
'git patch-id' [--stable | --unstable]
DESCRIPTION
-----------
Read a patch from the standard input and compute the patch ID for it.
A "patch ID" is nothing but a sum of SHA-1 of the file diffs associated with a
patch, with whitespace and line numbers ignored. As such, it's "reasonably
stable", but at the same time also reasonably unique, i.e., two patches that

@ -9,13 +9,14 @@ git-show-index - Show packed archive index
SYNOPSIS
--------
[verse]
'git show-index' < idx-file
'git show-index'
DESCRIPTION
-----------
Reads given idx file for packed Git archive created with
'git pack-objects' command, and dumps its contents.
Read the idx file for a Git packfile created with
'git pack-objects' command from the standard input, and
dump its contents.
The information it outputs is subset of what you can get from
'git verify-pack -v'; this command only shows the packfile

@ -11,7 +11,7 @@ SYNOPSIS
'git show-ref' [-q|--quiet] [--verify] [--head] [-d|--dereference]
[-s|--hash[=<n>]] [--abbrev[=<n>]] [--tags]
[--heads] [--] [<pattern>...]
'git show-ref' --exclude-existing[=<pattern>] < ref-list
'git show-ref' --exclude-existing[=<pattern>]
DESCRIPTION
-----------
@ -23,8 +23,9 @@ particular ref exists.
By default, shows the tags, heads, and remote refs.
The --exclude-existing form is a filter that does the inverse, it shows the
refs from stdin that don't exist in the local repository.
The --exclude-existing form is a filter that does the inverse. It reads
refs from stdin, one ref per line, and shows those that don't exist in
the local repository.
Use of this utility is encouraged in favor of directly accessing files under
the `.git` directory.

@ -9,14 +9,15 @@ git-stripspace - Remove unnecessary whitespace
SYNOPSIS
--------
[verse]
'git stripspace' [-s | --strip-comments] < input
'git stripspace' [-c | --comment-lines] < input
'git stripspace' [-s | --strip-comments]
'git stripspace' [-c | --comment-lines]
DESCRIPTION
-----------
Clean the input in the manner used by Git for text such as commit
messages, notes, tags and branch descriptions.
Read text, such as commit messages, notes, tags and branch
descriptions, from the standard input and clean it in the manner
used by Git.
With no arguments, this will:

@ -9,7 +9,7 @@ git-unpack-objects - Unpack objects from a packed archive
SYNOPSIS
--------
[verse]
'git unpack-objects' [-n] [-q] [-r] [--strict] < <packfile>
'git unpack-objects' [-n] [-q] [-r] [--strict]
DESCRIPTION

@ -426,7 +426,7 @@ static int batch_objects(struct batch_options *opt)
static const char * const cat_file_usage[] = {
N_("git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|<type>|--textconv) <object>"),
N_("git cat-file (--batch | --batch-check) [--follow-symlinks] < <list-of-objects>"),
N_("git cat-file (--batch | --batch-check) [--follow-symlinks]"),
NULL
};

@ -9,7 +9,7 @@ static int cached_attrs;
static int stdin_paths;
static const char * const check_attr_usage[] = {
N_("git check-attr [-a | --all | <attr>...] [--] <pathname>..."),
N_("git check-attr --stdin [-z] [-a | --all | <attr>...] < <list-of-paths>"),
N_("git check-attr --stdin [-z] [-a | --all | <attr>...]"),
NULL
};

@ -8,7 +8,7 @@
static int quiet, verbose, stdin_paths, show_non_matching, no_index;
static const char * const check_ignore_usage[] = {
"git check-ignore [<options>] <pathname>...",
"git check-ignore [<options>] --stdin < <list-of-paths>",
"git check-ignore [<options>] --stdin",
NULL
};

@ -10,7 +10,7 @@
#include "utf8.h"
#include "gpg-interface.h"
static const char commit_tree_usage[] = "git commit-tree [(-p <sha1>)...] [-S[<keyid>]] [-m <message>] [-F <file>] <sha1> <changelog";
static const char commit_tree_usage[] = "git commit-tree [(-p <sha1>)...] [-S[<keyid>]] [-m <message>] [-F <file>] <sha1>";
static const char *sign_commit;

@ -8,7 +8,7 @@
#include "quote.h"
static const char builtin_get_tar_commit_id_usage[] =
"git get-tar-commit-id < <tarfile>";
"git get-tar-commit-id";
/* ustar header + extended global header content */
#define RECORDSIZE (512)

@ -78,7 +78,7 @@ int cmd_hash_object(int argc, const char **argv, const char *prefix)
{
static const char * const hash_object_usage[] = {
N_("git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] [--] <file>..."),
N_("git hash-object --stdin-paths < <list-of-paths>"),
N_("git hash-object --stdin-paths"),
NULL
};
const char *type = blob_type;

@ -154,7 +154,7 @@ int cmd_mktag(int argc, const char **argv, const char *prefix)
unsigned char result_sha1[20];
if (argc != 1)
usage("git mktag < signaturefile");
usage("git mktag");
if (strbuf_read(&buf, 0, 4096) < 0) {
die_errno("could not read from stdin");

@ -165,7 +165,7 @@ static void generate_id_list(int stable)
strbuf_release(&line_buf);
}
static const char patch_id_usage[] = "git patch-id [--stable | --unstable] < patch";
static const char patch_id_usage[] = "git patch-id [--stable | --unstable]";
static int git_patch_id_config(const char *var, const char *value, void *cb)
{

@ -8,7 +8,7 @@
static const char * const show_ref_usage[] = {
N_("git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<pattern>...]"),
N_("git show-ref --exclude-existing[=<pattern>] < <ref-list>"),
N_("git show-ref --exclude-existing[=<pattern>]"),
NULL
};

@ -78,8 +78,8 @@ static void comment_lines(struct strbuf *buf)
}
static const char *usage_msg = "\n"
" git stripspace [-s | --strip-comments] < input\n"
" git stripspace [-c | --comment-lines] < input";
" git stripspace [-s | --strip-comments]\n"
" git stripspace [-c | --comment-lines]";
int cmd_stripspace(int argc, const char **argv, const char *prefix)
{

@ -13,7 +13,7 @@
#include "fsck.h"
static int dry_run, quiet, recover, has_errors, strict;
static const char unpack_usage[] = "git unpack-objects [-n] [-q] [-r] [--strict] < pack-file";
static const char unpack_usage[] = "git unpack-objects [-n] [-q] [-r] [--strict]";
/* We always read in 4kB chunks. */
static unsigned char buffer[4096];

@ -2,7 +2,7 @@
#include "pack.h"
static const char show_index_usage[] =
"git show-index < <packed archive index>";
"git show-index";
int main(int argc, char **argv)
{

Loading…
Cancel
Save