Merge branch 'nd/push-no-thin' into jch

"git push --no-thin" was a no-op by mistake.

* nd/push-no-thin:
  push: respect --no-thin
Merge branch 'sh/pull-rebase-preserve' into jch

"git pull --rebase" always flattened the history; pull.rebase can
now be set to "preserve" to invoke "rebase --preserve-merges".

* sh/pull-rebase-preserve:
  pull: allow pull to preserve merges when rebasing
Merge branch 'es/rebase-i-no-abbrev' into jch

The commit object names in the insn sheet that was prepared at the
beginning of "rebase -i" session can become ambiguous as the
rebasing progresses and the repository gains more commits. Make
sure the internal record is kept with full 40-hex object names.

* es/rebase-i-no-abbrev:
  rebase -i: fix short SHA-1 collision
  t3404: rebase -i: demonstrate short SHA-1 collision
  t3404: make tests more self-contained

# Conflicts:
# 	t/t3404-rebase-interactive.sh
Merge branch 'es/rebase-i-respect-core-commentchar' into jch

"rebase -i" forgot that the comment character can be configurable
while reading its insn sheet.

* es/rebase-i-respect-core-commentchar:
  rebase -i: fix cases ignoring core.commentchar
Merge branch 'jn/post-receive-utf8' into jch

Update post-receive-email script to make sure the message contents
and pathnames are encoded consistently in UTF-8.

* jn/post-receive-utf8:
  hooks/post-receive-email: set declared encoding to utf-8
  hooks/post-receive-email: force log messages in UTF-8
  hooks/post-receive-email: use plumbing instead of git log/show
Merge branch 'js/xread-in-full' into jch

A call to xread() was used without a loop around to cope with short
read in the codepath to stream new contents to a pack.

* js/xread-in-full:
  stream_to_pack: xread does not guarantee to read all requested bytes
Merge branch 'sb/mailmap-freeing-NULL-is-ok' into jch

* sb/mailmap-freeing-NULL-is-ok:
  mailmap: remove redundant check for freeing memory
Merge branch 'tf/gitweb-ss-tweak' into jch

Tweak Gitweb CSS to layout some elements better.

* tf/gitweb-ss-tweak:
  gitweb: make search help link less ugly
  gitweb: omit the repository owner when it is unset
  gitweb: vertically centre contents of page footer
  gitweb: ensure OPML text fits inside its box
Merge branch 'jk/config-int-range-check' into jch

"git config --int section.var 3g" should somehow diagnose that the
number does not fit in "int" (on 32-bit platforms anyway) but it
did not.

* jk/config-int-range-check:
  git-config: always treat --int as 64-bit internally
  config: make numeric parsing errors more clear
  config: set errno in numeric git_parse_* functions
  config: properly range-check integer values
  config: factor out integer parsing from range checks

# Conflicts:
# 	builtin/config.c
Merge branch 'rt/rebase-p-no-merge-summary' into jch

"git rebase -p" internally used the merge machinery, but when
rebasing, there should not be a need for merge summary.

* rt/rebase-p-no-merge-summary:
  rebase --preserve-merges: ignore "merge.log" config
Merge branch 'jc/ls-files-killed-optim' into jch

"git ls-files -k" needs to crawl only the part of the working tree
that may overlap the paths in the index to find killed files, but
shared code with the logic to find all the untracked files, which
made it unnecessarily inefficient.

* jc/ls-files-killed-optim:
  dir.c::test_one_path(): work around directory_exists_in_index_icase() breakage
  t3010: update to demonstrate "ls-files -k" optimization pitfalls
  ls-files -k: a directory only can be killed if the index has a non-directory
  dir.c: use the cache_* macro to access the current index

# Conflicts:
# 	builtin/ls-files.c
# 	dir.c
# 	t/t3010-ls-files-killed-modified.sh
Merge branch 'jc/commit-is-spelled-with-two-ems' into jch

* jc/commit-is-spelled-with-two-ems:
  typofix: cherry is spelled with two ars
  typofix: commit is spelled with two ems
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 '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 'mm/remote-helpers-doc' into jch

* mm/remote-helpers-doc:
  Documentation/remote-helpers: document common use-case for private ref
Merge branch 'jc/pager-configuration-doc' into jch

It was unclear in the documentation how various configurations and
environment variables determine which pager is eventually used.

* jc/pager-configuration-doc:
  config: rewrite core.pager documentation
### third batch
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 '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