completion: clarify ls-tree, archive, show completion

Currently, the 'git ls-tree', 'git archive', and 'git show' completions
use __git_complete_file (aliased to __git_complete_revlist_file).

In the case of 'git ls-tree' and 'git archive', they necessarily require
a tree-ish argument (and optionally a pathspec filter, or "file
argument"):

  $ git ls-tree hot-branch git.c
  $ git archive HEAD~4 git.c

So, __git_complete_file is a misleading name.

In the case of 'git show', it can take a pathspec and default the
revision to HEAD like:

  $ git show git.c

(which is useful if git.c was modified in HEAD)

However, this usage is not idiomatic at all.  The more common usage is
like:

  $ git show HEAD~1
  $ git show origin/pu:git.c

So, __git_complete_file is again a poor name.

Replace these three instances of __git_complete_file with
__git_complete_revlist_file, without making any functional changes.

Remove __git_complete_file, as it has no other callers.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'fc/send-email-chainreplyto-warning' into next

An overdue removal of a "behaviour changed at 1.7.0; if you were
living in a cave, here is what you can adjust to it" message.

* fc/send-email-chainreplyto-warning:
  send-email: remove warning about unset chainreplyto
Merge branch 'fc/cleanups' into next

* fc/cleanups:
  test: rebase: fix --interactive test
  test: trivial cleanups
  remote: trivial style cleanup
Merge branch 'fc/makefile' into next

* fc/makefile:
  build: do not install git-remote-testpy
  build: add NO_INSTALL variable
  build: cleanup using $<
  build: cleanup using $^
  build: trivial simplification
Merge branch 'nd/prune-packed-dryrun-verbose' into next

* nd/prune-packed-dryrun-verbose:
  prune-packed: avoid implying "1" is DRY_RUN in prune_packed_objects()
Merge branch 'rj/mingw-compat-st-mode-bits' into next

* rj/mingw-compat-st-mode-bits:
  path: Fix a sparse warning
Merge branch 'rs/commit-m-no-edit' into next

"git commit --allow-empty-message -m ''" should not start an editor.

* rs/commit-m-no-edit:
  commit: don't start editor if empty message is given with -m
Merge branch 'rr/zsh-color-prompt' into next

* rr/zsh-color-prompt:
  prompt: colorize ZSH prompt
  prompt: factor out gitstring coloring logic
  prompt: introduce GIT_PS1_STATESEPARATOR
Merge branch 'dm/unbash-subtree' into next

It turns out that git-subtree script does not have to be run with
bash.

* dm/unbash-subtree:
  contrib/git-subtree: Use /bin/sh interpreter instead of /bin/bash
Merge branch 'fc/transport-helper-no-refspec' into next

With "export" remote-helper protocol,

 (1) a push that tries to update a remote ref whose name is
     different from the pushing side does not work yet; and

(2) the helper may not know how to do --dry-run,

Detect such problematic cases and disable them for now.

* fc/transport-helper-no-refspec:
  transport-helper: check if the dry-run is supported
  transport-helper: barf when user tries old:new
Merge branch 'th/bisect-skip-report-range-fix' into next

Fix for an additional bisect log comments.

* th/bisect-skip-report-range-fix:
  bisect: Fix log output for multi-parent skip ranges
Merge branch 'tr/push-no-verify-doc' into next

"git push --[no-]verify" was not documented.

* tr/push-no-verify-doc:
  Document push --no-verify
Merge branch 'tg/maint-zsh-svn-remote-prompt' into next

zsh prompt script that borrowed from bash prompt script did not
work due to slight differences in array variable notation between
these two shells.

* tg/maint-zsh-svn-remote-prompt:
  prompt: fix show upstream with svn and zsh
Merge branch 'jc/core-checkstat' into next

The documented core.checkstat variable was not actually implemented
in v1.8.2; instead core.statinfo was.

* jc/core-checkstat:
  deprecate core.statinfo at Git 2.0 boundary
Merge branch 'nd/urls-doc-no-file-hyperlink-fix' into next

* nd/urls-doc-no-file-hyperlink-fix:
  urls.txt: avoid auto converting to hyperlink
Merge branch 'rr/die-on-missing-upstream' into next

When a reflog notation is used for implicit "current branch", we
did not say which branch and worse said "branch ''".

* rr/die-on-missing-upstream:
  sha1_name: fix error message for @{<N>}, @{<date>}
  sha1_name: fix error message for @{u}
Merge branch 'ks/difftool-dir-diff-copy-fix' into next

"difftool --dir-diff" did not copy back changes made by the
end-user in the diff tool backend to the working tree in some
cases.

* ks/difftool-dir-diff-copy-fix:
  difftool --dir-diff: allow changing any clean working tree file
Merge branch 'fc/show-branch-in-rebase-am' into next

The bash prompt code (in contrib/) displayed the name of the branch
being rebased when "rebase -i/-m/-p" modes are in use, but not the
plain vanilla "rebase".

* fc/show-branch-in-rebase-am:
  prompt: fix for simple rebase
Merge branch 'sb/archive-zip-double-assignment-fix' into next

* sb/archive-zip-double-assignment-fix:
  archive-zip:write_zip_entry: Remove second reset of size variable to zero.
Merge branch 'rr/push-head' into next

"git push $there HEAD:branch" did not resolve HEAD early enough, so
it was easy to flip it around while push is still going on and push
out a branch that the user did not originally intended when the
command was started.

* rr/push-head:
  push: make push.default = current use resolved HEAD
  push: fail early with detached HEAD and current
  push: factor out the detached HEAD error message