Merge branch 'jn/test-prereq-perl-doc' into jch

* jn/test-prereq-perl-doc:
  t/README: tests can use perl even with NO_PERL
Merge branch 'sc/doc-howto-dumb-http' into jch

* sc/doc-howto-dumb-http:
  doc/howto: warn about (dumb)http server document being too old
Merge branch 'th/reflog-annotated-tag' into jch

"git log -g $annotated_tag", when there is no reflog history, should
have produced a single output entry (i.e. the ref creation event),
but instead showed the history leading to the tag.

* th/reflog-annotated-tag:
  reflog: handle lightweight and annotated tags equally
Merge branch 'jk/wrap-perl-used-in-tests' into jch

* jk/wrap-perl-used-in-tests:
  t: use perl instead of "$PERL_PATH" where applicable
  t: provide a perl() function which uses $PERL_PATH

# Conflicts:
# 	t/test-lib-functions.sh
Merge branch 'ak/cvsserver-stabilize-use-of-hash-keys' into jch

* ak/cvsserver-stabilize-use-of-hash-keys:
  cvsserver: Determinize output to combat Perl 5.18 hash randomization
Merge branch 'jk/subtree-install-fix' into jch

* jk/subtree-install-fix:
  subtree: add makefile target for html docs
Merge branch 'bw/solaris-sed-tr-test-portability' into jch

* bw/solaris-sed-tr-test-portability:
  Avoid difference in tr semantics between System V and BSD
  Change sed i\ usage to something Solaris' sed can handle
Merge branch 'vd/doc-unpack-objects' into jch

* vd/doc-unpack-objects:
  Documentation: "pack-file" is not literal in unpack-objects
  Documentation: restore a space in unpack-objects usage

# Conflicts:
# 	Documentation/git-unpack-objects.txt
Merge branch 'jk/duplicate-objects-in-packs' into jch

* jk/duplicate-objects-in-packs:
  Fix '\%o' for printf from coreutils
Merge branch 'jk/robustify-parse-commit' into jch

* jk/robustify-parse-commit:
  checkout: do not die when leaving broken detached HEAD
  use parse_commit_or_die instead of custom message
  use parse_commit_or_die instead of segfaulting
  assume parse_commit checks for NULL commit
  assume parse_commit checks commit->object.parsed
  log_tree_diff: die when we fail to parse a commit
Merge branch 'jh/loose-object-dirs-creation-race' into jch

* jh/loose-object-dirs-creation-race:
  sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
Merge branch 'nd/liteal-pathspecs' into jch

* nd/liteal-pathspecs:
  pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses

# Conflicts:
# 	revision.c
Merge branch 'jk/replace-perl-in-built-scripts' into jch

* jk/replace-perl-in-built-scripts:
  use @@PERL@@ in built scripts
Merge branch 'jc/merge-base-reflog' into jch

Code the logic in "pull --rebase" that figures out a fork point
from reflog entries in C.

* jc/merge-base-reflog:
  merge-base: teach "--fork-point" mode
  merge-base: use OPT_CMDMODE and clarify the command line parsing
Merge branch 'bc/http-100-continue' into jch

Issue "100 Continue" responses to help use of GSS-Negotiate
authentication scheme over HTTP transport when needed.

* bc/http-100-continue:
  remote-curl: fix large pushes with GSSAPI
  remote-curl: pass curl slot_results back through run_slot
  http: return curl's AUTHAVAIL via slot_results

# Conflicts:
# 	remote-curl.c
Merge branch 'nv/parseopt-opt-arg' into jch

Enhance "rev-parse --parseopt" mode to help parsing options with
an optional parameter.

* nv/parseopt-opt-arg:
  rev-parse --parseopt: add the --stuck-long mode
  Use the word 'stuck' instead of 'sticked'
### hold
Merge branch 'jc/hold-diff-remove-q-synonym-for-no-deletion' into jch

* jc/hold-diff-remove-q-synonym-for-no-deletion:
  diff: remove "diff-files -q" in a version of Git in a distant future

# Conflicts:
# 	diff.c
Merge branch 'ak/submodule-foreach-quoting' into jch

A behavior change, but a worthwhile one: "git submodule foreach"
was treating its arguments as part of a single command to be
concatenated and passed to a shell, making writing buggy
scripts too easy.

This patch preserves the old "just pass it to the shell" behavior
when a single argument is passed to 'git submodule foreach' and
moves to a new "skip the shell and use the arguments passed
unmolested" behavior when more than one argument is passed.

The old behavior (always concatenating and passing to the shell)
was similar to the 'ssh' command, while the new behavior (switching
on the number of arguments) is what 'xterm -e' does.

May need more thought to make sure this change is advertised well
so that scripts that used multiple arguments but added their own
extra layer of quoting are not broken.

* ak/submodule-foreach-quoting:
  submodule foreach: skip eval for more than one argument
Merge branch 'jc/push-2.0-default-to-simple' into jch

* jc/push-2.0-default-to-simple:
  push: switch default from "matching" to "simple"

# Conflicts:
# 	Documentation/config.txt
# 	Documentation/git-push.txt
# 	builtin/push.c