Teach git-completion about git p4

git p4 was moved out of contrib in 1.7.11 but it git-completion didn't
know about it. Add git p4 completion based on the existing SVN
completion. It covers all known subcommands and options except for the
-/ option for clone which doesn't use the standard -- prefix.

Signed-off-by: Ryan Cumming <etaoins@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Revert "completion: fix shell expansion of items"

This reverts commit 25ae7cfd19c8f21721363c64163cd5d9d1135b20.

That patch does fix expansion of weird variables in some
simple tests, but it also seems to break other things, like
expansion of refs by "git checkout".

While we're sorting out the correct solution, we are much
better with the original bug (people with metacharacters in
their completions occasionally see an error message) than
the current bug (ref completion does not work at all).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'maint'

* maint:
  Revert "completion: fix shell expansion of items"
Merge branch 'db/doc-custom-xmlto'

* db/doc-custom-xmlto:
  Documentation/Makefile: Allow custom XMLTO binary
Merge branch 'po/maint-docs'

Various documentation fixups.

* po/maint-docs:
  Doc branch: show -vv option and alternative
  Doc clean: add See Also link
  Doc add: link gitignore
  Doc: separate gitignore pattern sources
  Doc: shallow clone deepens _to_ new depth
Merge branch 'jc/maint-mailinfo-mime-attr'

When "git am" is fed an input that has multiple "Content-type: ..."
header, it did not grok charset= attribute correctly.

* jc/maint-mailinfo-mime-attr:
  mailinfo: do not concatenate charset= attribute values from mime headers
Merge branch 'aj/xfuncname-ada'

* aj/xfuncname-ada:
  Add userdiff patterns for Ada
Merge branch 'ep/malloc-check-perturb'

Run our test scripts with MALLOC_CHECK_ and MALLOC_PERTURB_, the
built-in memory access checking facility GNU libc has.

* ep/malloc-check-perturb:
  MALLOC_CHECK: various clean-ups
  Add MALLOC_CHECK_ and MALLOC_PERTURB_ libc env to the test suite for detecting heap corruption
Merge branch 'js/poll-emu'

* js/poll-emu:
  make poll() work on platforms that can't recv() on a non-socket
  poll() exits too early with EFAULT if 1st arg is NULL
  fix some win32 specific dependencies in poll.c
  make poll available for other platforms lacking it
Merge branch 'js/hp-nonstop'

Port to HP NonStop aka Tandem.

* js/hp-nonstop:
  Port to HP NonStop
Merge branch 'rr/test-make-sure-we-have-git'

Only the first test t0000 in the test suite made sure we have built
Git to be tested; move the check to test-lib so that it applies to
all tests equally.

* rr/test-make-sure-we-have-git:
  t/test-lib: make sure Git has already been built
Update draft release notes to 1.8.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'master' into next

* master:
  Update draft release notes to 1.8.0
  Revert "completion: fix shell expansion of items"
Merge branch 'rc/maint-complete-git-p4' into next

Will merge to 'next'.

* rc/maint-complete-git-p4:
  Teach git-completion about git p4
submodule: if $command was not matched, don't parse other args

"git submodule" command DWIMs the command line and assumes a
unspecified action word for 'status' action.  This is a UI mistake
that leads to a confusing behaviour.  A mistyped command name is
instead treated as a request for 'status' of the submodule with that
name, e.g.

    $ git submodule show
    error: pathspec 'show' did not match any file(s) known to git.
    Did you forget to 'git add'?

Stop DWIMming an unknown or mistyped subcommand name as pathspec
given to unspelled "status" subcommand.  "git submodule" without any
argument is still interpreted as "git submodule status", but its
value is questionable.

Adjust t7400 to match, and stop advertising the default subcommand
being 'status' which does not help much in practice, other than
promoting laziness and confusion.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'rr/maint-submodule-unknown-cmd' into next

* rr/maint-submodule-unknown-cmd:
  submodule: if $command was not matched, don't parse other args