Merge branch 'master' into next

* master:
  Start merging the sixth batch for 1.8.0
  Further merging in preparation for 1.7.12.1
  gitk: Rename 'tagcontents' to 'cached_tagcontent'
  gitk: Teach "Reread references" to reload tags
  gitk: Fix GIT_TRACE issues
  gitk: Avoid Meta1-F5
Merge branch 'jc/mailinfo-RE' into next

We strip the prefix from "Re: subject" and also from a less common
"re: subject", but left even less common "RE: subject" intact.

Will merge to 'next'.

* jc/mailinfo-RE:
  mailinfo: strip "RE: " prefix
Merge branch 'dg/run-command-child-cleanup' into next

* dg/run-command-child-cleanup:
  run-command.c: fix broken list iteration in clear_child_for_cleanup
Merge branch 'cn/branch-set-upstream-to' into next

* cn/branch-set-upstream-to:
  completion: complete branch name for "branch --set-upstream-to="
  completion: add --set-upstream-to and --unset-upstream
Merge branch 'jc/ll-merge-binary-ours' into next

"git merge -Xtheirs" did not help content-level merge of binary
files; it should just take their version.  Also "*.jpg binary" in
the attributes did not imply they should use the binary ll-merge
driver.

* jc/ll-merge-binary-ours:
  ll-merge: warn about inability to merge binary files only when we can't
  attr: "binary" attribute should choose built-in "binary" merge driver
  merge: teach -Xours/-Xtheirs to binary ll-merge driver
Merge branch 'sl/autoconf' into next

* sl/autoconf:
  build: don't duplicate substitution of make variables
  build: improve GIT_CONF_SUBST signature
Merge branch 'master' into next
Merge branch 'master' into next

* master:
  The sixth batch for 1.8.0
Merge branch 'jc/maint-blame-no-such-path' into next

"git blame MAKEFILE" run in a history that has "Makefile" but not
"MAKEFILE" should say "No such file MAKEFILE in HEAD", but got
confused on a case insensitive filesystem and failed to do so.

Even during a conflicted merge, "git blame $path" always meant to
blame uncommitted changes to the "working tree" version; make it
more useful by showing cleanly merged parts as coming from the other
branch that is being merged.

* jc/maint-blame-no-such-path:
  blame: allow "blame file" in the middle of a conflicted merge
  blame $path: avoid getting fooled by case insensitive filesystems
Merge branch 'mh/string-list' into next

* mh/string-list:
  api-string-list.txt: initialize the string_list the easy way
  string_list: add a function string_list_longest_prefix()
  string_list: add a new function, string_list_remove_duplicates()
  string_list: add a new function, filter_string_list()
  string_list: add two new functions for splitting strings
  string_list: add function string_list_append_nodup()
Merge branch 'mh/fetch-filter-refs' into next

Code simplification and clarification.

* mh/fetch-filter-refs:
  fetch-pack: eliminate spurious error messages
  cmd_fetch_pack(): simplify computation of return value
  fetch-pack: report missing refs even if no existing refs were received
  cmd_fetch_pack(): return early if finish_connect() fails
  filter_refs(): simplify logic
  filter_refs(): build refs list as we go
  filter_refs(): delete matched refs from sought list
  fetch_pack(): update sought->nr to reflect number of unique entries
  filter_refs(): do not check the same sought_pos twice
  Change fetch_pack() and friends to take string_list arguments
  fetch_pack(): reindent function decl and defn
  Rename static function fetch_pack() to http_fetch_pack()
  t5500: add tests of fetch-pack --all --depth=N $URL $REF
  t5500: add tests of error output for missing refs
Merge branch 'jk/config-warn-on-inaccessible-paths' into next

The attribute system may be asked for a path whose leading
directories do not exist in the current working tree.  In addition
to ENOENT, ENOTDIR must be ignored.

* jk/config-warn-on-inaccessible-paths:
  attr: failure to open a .gitattributes file is OK with ENOTDIR
Merge branch 'nd/maint-diffstat-summary' into next

Earlier we made the diffstat summary line that shows the number of
lines added/deleted localizable, but it was found irritating having
to see them in various languages on a list whose discussion language
is English.

The original had trivial thinko in reverting Q_(), which has been
fixed.

* nd/maint-diffstat-summary:
  Revert diffstat back to English
Merge branch 'jc/maint-log-grep-all-match' (early part) into next

In "git log", "--all-match" to require all "--grep" to trigger was
not honored when "--author" or "--committer" was used.

* 'jc/maint-log-grep-all-match' (early part):
  log: document use of multiple commit limiting options
  log --grep/--author: honor --all-match honored for multiple --grep patterns
  grep: show --debug output only once
  grep: teach --debug option to dump the parse tree
Merge branch 'jw/doc-commit-title' into next

Update parts of document that talked about "first line of commit
log" to say "title of commit" with definition of what that "title"
is.

* jw/doc-commit-title:
  Documentation: describe subject more precisely
Merge branch 'master' into next
Merge branch 'nd/fetch-status-alignment' into next

* nd/fetch-status-alignment:
  fetch: align per-ref summary report in UTF-8 locales
Merge branch 'mv/cherry-pick-s' into next

After "git cherry-pick -s" gave control back to the user asking help
to resolve conflicts, concluding "git commit" needs to be run with "-s"
if the user wants to sign it off, but people often forgot to do so.

* mv/cherry-pick-s:
  cherry-pick: don't forget -s on failure
Merge branch 'mh/fetch-filter-refs' into next

Code simplification and clarification.

Will merge to 'master' as part of the seventh batch.

* mh/fetch-filter-refs:
  test-string-list.c: Fix some sparse warnings
Merge branch 'jc/maint-log-grep-all-match' (early part) into next

* 'jc/maint-log-grep-all-match' (early part):
  grep.c: mark private file-scope symbols as static