rev-list: make it obvious that we do not support notes

The rev-list command does not have the internal
infrastructure to display notes. Running:

  git rev-list --notes HEAD

will silently ignore the "--notes" option. Running:

  git rev-list --notes --grep=. HEAD

will crash on an assert. Running:

  git rev-list --format=%N HEAD

will place a literal "%N" in the output (it does not even
expand to an empty string).

Let's have rev-list tell the user that it cannot fill the
user's request, rather than silently producing wrong data.
Likewise, let's remove mention of the notes options from the
rev-list documentation.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2015-08-23 13:56:40 -04:00 коммит произвёл Junio C Hamano
Родитель 552a736de7
Коммит 2aea7a51a1
4 изменённых файлов: 9 добавлений и 0 удалений

Просмотреть файл

@ -139,7 +139,9 @@ The placeholders are:
- '%f': sanitized subject line, suitable for a filename
- '%b': body
- '%B': raw body (unwrapped subject and body)
ifndef::git-rev-list[]
- '%N': commit notes
endif::git-rev-list[]
- '%GG': raw verification message from GPG for a signed commit
- '%G?': show "G" for a Good signature, "B" for a Bad signature, "U" for a good,
untrusted signature and "N" for no signature

Просмотреть файл

@ -42,6 +42,7 @@ people using 80-column terminals.
verbatim; this means that invalid sequences in the original
commit may be copied to the output.
ifndef::git-rev-list[]
--notes[=<ref>]::
Show the notes (see linkgit:git-notes[1]) that annotate the
commit, when showing the commit log message. This is the default
@ -73,6 +74,7 @@ being displayed. Examples: "--notes=foo" will show only notes from
--[no-]standard-notes::
These options are deprecated. Use the above --notes/--no-notes
options instead.
endif::git-rev-list[]
--show-signature::
Check the validity of a signed commit object by passing the signature

Просмотреть файл

@ -58,9 +58,11 @@ endif::git-rev-list[]
more than one `--grep=<pattern>`, commits whose message
matches any of the given patterns are chosen (but see
`--all-match`).
ifndef::git-rev-list[]
+
When `--show-notes` is in effect, the message from the notes is
matched as if it were part of the log message.
endif::git-rev-list[]
--all-match::
Limit the commits output to ones that match all given `--grep`,

Просмотреть файл

@ -350,6 +350,9 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
revs.diff)
usage(rev_list_usage);
if (revs.show_notes)
die(_("rev-list does not support display of notes"));
save_commit_buffer = (revs.verbose_header ||
revs.grep_filter.pattern_list ||
revs.grep_filter.header_list);