git/builtin
Rasmus Villemoes e6e76baaf4 help: redirect to aliased commands for "git cmd --help"
As discussed in the thread for v1 of this patch [1] [2], this changes the
rules for "git foo --help" when foo is an alias.

(1) When invoked as "git help foo", we continue to print the "foo is
aliased to bar" message and nothing else.

(2) If foo is an alias for a shell command, print "foo is aliased to
!bar" as usual.

(3) Otherwise, print "foo is aliased to bar" to the standard error
stream, and then break the alias string into words and pretend as if
"git word[0] --help" were called.

Getting the man page for git-cherry-pick directly with "git cp --help"
is consistent with "--help" generally providing more comprehensive help
than "-h". Printing the alias definition to stderr means that in certain
cases (e.g. if help.format=web or if the pager uses an alternate screen
and does not clear the terminal), one has

'cp' is aliased to 'cherry-pick -n'

above the prompt when one returns to the terminal/quits the pager, which
is a useful reminder that using 'cp' has some flag implicitly set. There
are cases where this information vanishes or gets scrolled
away, but being printed to stderr, it should never hurt.

[1] https://public-inbox.org/git/20180926102636.30691-1-rv@rasmusvillemoes.dk/
[2] https://public-inbox.org/git/20180926184914.GC30680@sigill.intra.peff.net/

Signed-off-by: Rasmus Villemoes <rv@rasmusvillemoes.dk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-10-11 10:21:41 +09:00
..
add.c Merge branch 'nd/attr-pathspec-fix' 2018-09-24 10:30:51 -07:00
am.c Merge branch 'rs/mailinfo-format-flowed' 2018-09-17 13:53:57 -07:00
annotate.c
apply.c apply.c: make init_apply_state() take a struct repository 2018-08-13 14:14:44 -07:00
archive.c archive.c: avoid access to the_index 2018-08-13 14:14:43 -07:00
bisect--helper.c bisect: mention "view" as an alternative to "visualize" 2017-11-13 10:51:14 +09:00
blame.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
branch.c Merge branch 'ds/reachable' 2018-09-17 13:53:52 -07:00
bundle.c
cat-file.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
check-attr.c Make git_check_attr() a void function 2018-09-12 15:15:34 -07:00
check-ignore.c check-ignore: fix mix of directories and other file types 2018-02-12 13:09:35 -08:00
check-mailmap.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
check-ref-format.c Merge branch 'jc/check-ref-format-oor' into maint 2017-11-15 12:04:57 +09:00
checkout-index.c Merge branch 'rs/opt-updates' 2018-08-27 14:33:43 -07:00
checkout.c Merge branch 'jk/cocci' 2018-09-17 13:53:57 -07:00
clean.c dir.c: remove an implicit dependency on the_index in pathspec code 2018-08-13 14:14:42 -07:00
clone.c Merge branch 'nd/clone-case-smashing-warning' 2018-09-17 13:53:47 -07:00
column.c column: fix off-by-one default width 2018-05-13 10:45:05 +09:00
commit-graph.c commit-graph: add free_commit_graph 2018-07-17 15:47:48 -07:00
commit-tree.c commit: add repository argument to lookup_commit 2018-06-29 10:43:39 -07:00
commit.c Merge branch 'ds/commit-graph-tests' 2018-09-17 13:53:58 -07:00
config.c Merge branch 'nd/i18n' 2018-08-15 15:08:23 -07:00
count-objects.c treewide: use get_all_packs 2018-08-20 15:31:40 -07:00
credential.c credential: handle invalid arguments earlier 2017-05-30 14:45:03 +09:00
describe.c convert hashmap comparison functions to oideq() 2018-08-29 11:32:49 -07:00
diff-files.c submodule: remove gitmodules_config 2017-08-03 13:11:02 -07:00
diff-index.c Merge branch 'ma/builtin-unleak' 2017-10-07 16:27:55 +09:00
diff-tree.c diff.c: move read_index() code back to the caller 2018-08-13 14:14:42 -07:00
diff.c convert "oidcmp() == 0" to oideq() 2018-08-29 11:32:49 -07:00
difftool.c convert "oidcmp() == 0" to oideq() 2018-08-29 11:32:49 -07:00
fast-export.c convert "oidcmp() == 0" to oideq() 2018-08-29 11:32:49 -07:00
fetch-pack.c Merge branch 'bw/protocol-v2' 2018-05-08 15:59:16 +09:00
fetch.c Merge branch 'ab/fetch-tags-noclobber' 2018-09-17 13:54:00 -07:00
fmt-merge-msg.c Merge branch 'jk/cocci' 2018-09-17 13:53:57 -07:00
for-each-ref.c provide --color option for all ref-filter users 2017-10-04 11:35:29 +09:00
fsck.c treewide: use get_all_packs 2018-08-20 15:31:40 -07:00
gc.c treewide: use get_all_packs 2018-08-20 15:31:40 -07:00
get-tar-commit-id.c distinguish error versus short read from read_in_full() 2017-09-27 15:45:24 +09:00
grep.c Merge branch 'nd/no-the-index' 2018-08-20 11:33:53 -07:00
hash-object.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
help.c help: redirect to aliased commands for "git cmd --help" 2018-10-11 10:21:41 +09:00
index-pack.c convert "hashcmp() != 0" to "!hasheq()" 2018-08-29 11:32:49 -07:00
init-db.c pass st.st_size as hint for strbuf_readlink() 2018-07-24 10:19:29 -07:00
interpret-trailers.c interpret-trailers: allow suppressing "---" divider 2018-08-23 10:08:51 -07:00
log.c Merge branch 'jk/cocci' 2018-09-17 13:53:57 -07:00
ls-files.c ls-files: correct index argument to get_convert_attr_ascii() 2018-08-13 14:14:43 -07:00
ls-remote.c Merge branch 'bw/server-options' 2018-05-23 14:38:15 +09:00
ls-tree.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
mailinfo.c
mailsplit.c
merge-base.c commit.h: remove method declarations 2018-07-20 15:38:54 -07:00
merge-file.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
merge-index.c
merge-ours.c Merge branch 'bw/diff-opt-impl-to-bitfields' 2017-11-09 14:31:27 +09:00
merge-recursive.c builtin/merge-recursive: make hash independent 2018-07-16 14:27:39 -07:00
merge-tree.c convert "oidcmp() == 0" to oideq() 2018-08-29 11:32:49 -07:00
merge.c Merge branch 'jk/cocci' 2018-09-17 13:53:57 -07:00
mktag.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
mktree.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
multi-pack-index.c multi-pack-index: provide more helpful usage info 2018-08-20 15:31:39 -07:00
mv.c Merge branch 'ma/lockfile-cleanup' 2018-05-30 14:04:05 +09:00
name-rev.c tag: add repository argument to deref_tag 2018-06-29 10:43:39 -07:00
notes.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
pack-objects.c Merge branch 'tb/void-check-attr' 2018-09-24 10:30:45 -07:00
pack-redundant.c treewide: use get_all_packs 2018-08-20 15:31:40 -07:00
pack-refs.c refs: add repository argument to get_main_ref_store 2018-04-12 11:38:56 +09:00
patch-id.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
prune-packed.c for_each_*_object: move declarations to object-store.h 2018-08-14 12:29:57 -07:00
prune.c Merge branch 'jk/core-use-replace-refs' 2018-08-15 15:08:23 -07:00
pull.c Merge branch 'jk/cocci' 2018-09-17 13:53:57 -07:00
push.c Merge branch 'rs/opt-updates' 2018-08-27 14:33:43 -07:00
range-diff.c Merge branch 'es/format-patch-rangediff' 2018-09-17 13:53:56 -07:00
read-tree.c Merge branch 'rs/parse-opt-lithelp' 2018-08-17 13:09:56 -07:00
rebase--helper.c rebase -i: introduce --rebase-merges=[no-]rebase-cousins 2018-04-26 12:28:43 +09:00
receive-pack.c Merge branch 'en/double-semicolon-fix' 2018-09-24 10:30:47 -07:00
reflog.c Merge branch 'sb/object-store-grafts' 2018-07-18 12:20:28 -07:00
remote-ext.c consistently use "fallthrough" comments in switches 2017-09-22 12:49:57 +09:00
remote-fd.c remote-{ext,fd}: print usage message on invalid arguments 2017-05-30 14:45:04 +09:00
remote.c Merge branch 'ms/remote-error-message-update' 2018-09-24 10:30:52 -07:00
repack.c Merge branch 'cc/delta-islands' 2018-09-17 13:53:55 -07:00
replace.c convert "oidcmp() == 0" to oideq() 2018-08-29 11:32:49 -07:00
rerere.c rerere: mark strings for translation 2018-08-06 13:22:34 -07:00
reset.c Merge branch 'jm/cache-entry-from-mem-pool' 2018-08-02 15:30:43 -07:00
rev-list.c Merge branch 'jk/rev-list-stdin-noop-is-ok' 2018-09-17 13:53:48 -07:00
rev-parse.c commit.h: remove method declarations 2018-07-20 15:38:54 -07:00
revert.c Merge branch 'nd/cherry-pick-quit-fix' 2018-08-20 12:41:34 -07:00
rm.c convert "oidcmp() != 0" to "!oideq()" 2018-08-29 11:32:49 -07:00
send-pack.c Merge branch 'rs/opt-updates' 2018-08-27 14:33:43 -07:00
serve.c serve: introduce git-serve 2018-03-15 12:01:08 -07:00
shortlog.c Merge branch 'rs/parse-opt-lithelp' 2018-08-17 13:09:56 -07:00
show-branch.c convert "hashcmp() != 0" to "!hasheq()" 2018-08-29 11:32:49 -07:00
show-index.c make show-index a builtin 2018-05-29 00:28:22 +09:00
show-ref.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
stripspace.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
submodule--helper.c Merge branch 'sb/submodule-update-in-c' 2018-09-17 13:53:51 -07:00
symbolic-ref.c refs: rename constant REF_NODEREF to REF_NO_DEREF 2017-11-06 10:31:08 +09:00
tag.c convert "oidcmp() != 0" to "!oideq()" 2018-08-29 11:32:49 -07:00
unpack-file.c object-store: move object access functions to object-store.h 2018-05-16 11:42:03 +09:00
unpack-objects.c convert "hashcmp() != 0" to "!hasheq()" 2018-08-29 11:32:49 -07:00
update-index.c convert "oidcmp() == 0" to oideq() 2018-08-29 11:32:49 -07:00
update-ref.c update-ref: allow --no-deref with --stdin 2018-09-12 15:17:17 -07:00
update-server-info.c parse-options: let OPT__FORCE take optional flags argument 2018-02-09 10:24:50 -08:00
upload-archive.c archive.c: avoid access to the_index 2018-08-13 14:14:43 -07:00
upload-pack.c check_replace_refs: rename to read_replace_refs 2018-07-18 15:45:14 -07:00
var.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
verify-commit.c commit: add repository argument to lookup_commit 2018-06-29 10:43:39 -07:00
verify-pack.c config: don't include config.h by default 2017-06-15 12:56:22 -07:00
verify-tag.c ref-filter: use "struct object_id" consistently 2018-04-09 06:14:45 +09:00
worktree.c worktree: delete .git/worktrees if empty after 'remove' 2018-08-30 09:28:02 -07:00
write-tree.c Merge branch 'rs/parse-opt-lithelp' 2018-08-17 13:09:56 -07:00