DO NOT MERGE YET
Merge branch 'jc/commit-is-spelled-with-two-ems' into jch

* jc/commit-is-spelled-with-two-ems:
  typofix: commit is spelled with two ems
Merge branch 'jx/branch-vv-always-compare-with-upstream' into jch

"git branch -v -v" (and "git status") did not distinguish among a
branch that does not build on any other branch, a branch that is in
sync with the branch it builds on, and a branch that is configured
to build on some other branch that no longer exists.

* jx/branch-vv-always-compare-with-upstream:
  status: always show tracking branch even no change
  branch: report invalid tracking branch as gone
Merge branch 'nd/fetch-into-shallow' into jch

When there is no sufficient overlap between old and new history
during a fetch into a shallow repository, we unnecessarily sent
objects the sending side knows the receiving end has.

* nd/fetch-into-shallow:
  Add testcase for needless objects during a shallow fetch
  list-objects: mark more commits as edges in mark_edges_uninteresting
  list-objects: reduce one argument in mark_edges_uninteresting
  upload-pack: delegate rev walking in shallow fetch to pack-objects
  shallow: add setup_temporary_shallow()
  shallow: only add shallow graft points to new shallow file
  move setup_alternate_shallow and write_shallow_commits to shallow.c

# Conflicts:
# 	fetch-pack.c
Merge branch 'mm/mediawiki-dumb-push-fix' into jch

* mm/mediawiki-dumb-push-fix:
  git-remote-mediawiki: no need to update private ref in non-dumb push
  git-remote-mediawiki: use no-private-update capability on dumb push
  transport-helper: add no-private-update capability
  git-remote-mediawiki: add test and check Makefile targets

# Conflicts:
# 	transport-helper.c
Merge branch 'jk/duplicate-objects-in-packs' into jch

A packfile that stores the same object more than once is broken and
will be rejected.

* jk/duplicate-objects-in-packs:
  t5308: check that index-pack --strict detects duplicate objects
  test index-pack on packs with recoverable delta cycles
  add tests for indexing packs with delta cycles
  sha1-lookup: handle duplicate keys with GIT_USE_LOOKUP
  test-sha1: add a binary output mode
Merge branch 'rv/send-email-cache-generated-mid' into jch

* rv/send-email-cache-generated-mid:
  git-send-email: Cache generated message-ids, use them when prompting
  git-send-email: add optional 'choices' parameter to the ask sub
Merge branch 'mm/fast-import-feature-doc' into jch

* mm/fast-import-feature-doc:
  Documentation/fast-import: clarify summary for `feature` command
Merge branch 'mn/doc-pack-heu-remove-dead-pastebin' into jch

* mn/doc-pack-heu-remove-dead-pastebin:
  remove dead pastebin link from pack-heuristics document
Merge branch 'ap/commit-author-mailmap' into jch

"git commit --author=$name", when $name is not in the canonical
"A. U. Thor <au.thor@example.xz>" format, looks for a matching name
from existing history, but did not consult mailmap to grab the
preferred author name.

* ap/commit-author-mailmap:
  commit: search author pattern against mailmap
Merge branch 'bc/submodule-status-ignored' into jch

* bc/submodule-status-ignored:
  submodule: don't print status output with ignore=all
  submodule: fix confusing variable name
Merge branch 'ta/user-manual' into jch

Update the user's manual to more recent versions of Git.

* ta/user-manual:
  "git prune" is safe
  Remove irrelevant reference from "Tying it all together"
  Remove unnecessary historical note from "Object storage format"
  Improve section "Merging multiple trees"
  Improve section "Manipulating branches"
  Simplify "How to make a commit"
  Fix some typos and improve wording
  Use "git merge" instead of "git pull ."
  Use current output for "git repack"
  Use current "detached HEAD" message
  Call it "Git User Manual" and remove reference to very old Git version
Merge branch 'kk/tests-with-no-perl' into jch

Some tests were not skipped under NO_PERL build.

* kk/tests-with-no-perl:
  reset test: modernize style
  t/t7106-reset-unborn-branch.sh: Add PERL prerequisite
  add -i test: use skip_all instead of repeated PERL prerequisite
  Make test "using invalid commit with -C" more strict
Merge branch 'jk/write-broken-index-with-nul-sha1' into jch

Earlier we started rejecting an attempt to add 0{40} object name to
the index and to tree objects, but it sometimes is necessary to
allow so to be able to use tools like filter-branch to correct such
broken tree objects.

* jk/write-broken-index-with-nul-sha1:
  write_index: optionally allow broken null sha1s
Merge branch 'mm/remote-helpers-doc' into jch

* mm/remote-helpers-doc:
  Documentation/remote-helpers: document common use-case for private ref
Merge branch 'tb/precompose-autodetect-fix' into jch

* tb/precompose-autodetect-fix:
  Set core.precomposeunicode to true on e.g. HFS+
Merge branch 'dw/diff-no-index-doc' into jch

When the user types "git diff" outside a working tree, thinking he
is inside one, the current error message that is a single-liner
"usage: git diff --no-index <path> <path>" may not be sufficient to
make him realize the mistake. Add "Not a git repository" to the
error message when we fell into the "--no-index" mode without an
explicit command line option to instruct us to do so.

* dw/diff-no-index-doc:
  diff --no-index: describe in a separate paragraph
  diff --no-index: clarify operation when not inside a repository
Merge branch 'sb/repack-in-c' into jch

Any further reviews?

* sb/repack-in-c:
  repack: retain the return value of pack-objects
  repack: rewrite the shell script in C
Merge branch 'jx/clean-interactive' into jch

Finishing touches to update the document to adjust to a new option
"git clean" learned recently.

* jx/clean-interactive:
  documentation: clarify notes for clean.requireForce
Merge branch 'jc/pager-configuration-doc' into jch

* jc/pager-configuration-doc:
  config: rewrite core.pager documentation