diff: accept --no-follow option

Once you do

	$ alias glogone git log --follow

there is no way to say

	$ glogone --no-follow ...

Not that "log --follow" is all that useful, but it is cheap to
support the common "you can defeat an undesirable option with a
'no-' variant of it later on the command line" pattern.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
blame: pay attention to --no-follow

If you know your history did not have renames, or if you care only
about the history after a large rename that happened some time ago,
"git blame --no-follow $path" is a way to tell the command not to
bother about renames.

When you use -C, the lines that came from the renamed file will
still be found without the whole-file rename detection, so it is not
all that interesting either way, though.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
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>
submodule: if $command was not matched, don't parse other args

When we try to execute 'git submodule' with an invalid subcommand, we
get an error like the following:

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

The cause of the problem: since $command is not matched, it is set to
"status", and "show" is treated as an argument to "status".  Change
this so that usage information is printed when an invalid subcommand
is tried.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit: pay attention to submodule.$name.ignore in .gitmodules

"git status" does not list a submodule with uncommitted working tree
files as modified when "submodule.$name.ignore" is set to "dirty" in
in-tree ".gitmodules" file.  Both status and commit honor the setting
in $GIT_DIR/config, but "commit" does not pick it up from .gitmodules,
which is inconsistent.

Teach "git commit" to pay attention to the setting in .gitmodules as
well.

Signed-off-by: Orgad Shaneh <orgads@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
[SQUASH] adjust test and doc to "git submodule no-such-subcommand"

As we stop DWIMming an unknown or mistyped subcommand name as
pathspec given to unspelled "status" subcommand, adjust t7400 to
match.  Also stop advertising the default subcommand being 'status'
which does not help much in practice, other than promoting laziness
and confusion.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'rs/archive-zip-utf8' into jch

With another reroll, it looks like the series is as polished as it
could be.

Will merge to 'master'.

* rs/archive-zip-utf8:
  archive-zip: write extended timestamp
  archive-zip: support UTF-8 paths
  Revert "archive-zip: support UTF-8 paths"
  archive-zip: support UTF-8 paths
Merge branch 'sp/maint-http-enable-gzip' into jch

Allows a more common 'gzip' Accept-Encoding to be used.

Will merge to 'master'.

* sp/maint-http-enable-gzip:
  Enable info/refs gzip decompression in HTTP client
Merge branch 'sp/maint-http-info-refs-no-retry' into jch

Kills an old workaround for a unlikely server misconfiguration that
hurts debuggability.

Will merge to 'master'.

* sp/maint-http-info-refs-no-retry:
  Revert "retry request without query when info/refs?query fails"
Merge branch 'jk/smart-http-switch' into jch

Allows users to turn off smart-http when talking to dumb-only
servers.

Will merge to 'master'.

* jk/smart-http-switch:
  remote-curl: let users turn off smart http
  remote-curl: rename is_http variable
Merge branch 'js/poll-emu' into jch

Will merge to 'master'.

* 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' into jch

Port to HP NonStop aka Tandem.

Will merge to 'master'.

* js/hp-nonstop:
  Port to HP NonStop
Merge branch 'js/rebase-exec-command-not-found' into jch

Will merge to 'master'.

* js/rebase-exec-command-not-found:
  rebase -i: fix misleading error message after 'exec no-such' instruction
Merge branch 'aj/xfuncname-ada' into jch

Will merge to 'next'.

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

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

Will merge to 'next'.

* 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 'jc/maint-mailinfo-mime-attr' into jch

Will merge to 'next'.

* jc/maint-mailinfo-mime-attr:
  mailinfo: do not concatenate charset= attribute values from mime headers
Merge branch 'rr/test-make-sure-we-have-git' into jch

Will merge to 'next'.

* rr/test-make-sure-we-have-git:
  t/test-lib: make sure Git has already been built
Merge branch 'db/doc-custom-xmlto' into jch

Will merge to 'next'.

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

Various documentation fixups.

Will merge to 'next'.

* 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 'aw/rebase-i-edit-todo' into jch

Will merge to 'next'.

* aw/rebase-i-edit-todo:
  rebase -i: suggest using --edit-todo to fix an unknown instruction
  rebase -i: Add tests for "--edit-todo"
  rebase -i: Teach "--edit-todo" action
  rebase -i: Refactor help messages for todo file
  rebase usage: subcommands can not be combined with -i