Merge branch 'master' into next

By Jens Lehmann (1) and others
* master:
  remote: fix typo
  Consistently use "superproject" instead of "supermodule"
  t3404: begin "exchange commits with -p" test with correct preconditions
Merge branch 'jk/blame-tree' into HEAD

* jk/blame-tree:
  blame-tree wip
Merge branch 'jk/builtin-attr' into HEAD

* jk/builtin-attr:
  attr: drop C/C++ default extension mapping
  attr: map builtin userdiff drivers to well-known extensions
Merge branch 'jk/bundle-fetch' into HEAD

* jk/bundle-fetch:
  clone: give advice on how to resume a failed clone
  remote-curl: resume interrupted bundle transfers
  remote-curl: show progress for bundle downloads
  progress: allow pure-throughput progress meters
  remote-curl: try base $URL after $URL/info/refs
  remote-curl: auto-detect bundles when fetching refs
  remote-curl: free "discovery" object
  bundle: add is_bundle_buf helper
  transport: factor out bundle to ref list conversion
  remote-curl: use http callback for requesting refs
  http: add a public function for arbitrary-callback request
  http: refactor http_request function
  http: turn off curl signals
  t/lib-httpd: check for NO_CURL
Merge branch 'jk/cache-patch-id' into HEAD

* jk/cache-patch-id:
  cache patch ids on disk
  cherry: read default config
  implement metadata cache subsystem
  map: implement persistent maps
  decorate: use "map" for the underlying implementation
  fast-export: use object to uint32 map instead of "decorate"
  implement generic key/value map
Merge branch 'jk/child-cleanup' into HEAD

* jk/child-cleanup:
  send-pack: kill pack-objects helper on signal or exit
Merge branch 'jk/config-sources' into HEAD

* jk/config-sources:
  show sources of config options (WIP)
Merge branch 'jk/describe' into HEAD

* jk/describe:
  describe WIP
Merge branch 'jk/dumpstat' into HEAD

* jk/dumpstat:
  zeromq dumpstat implementation
  dumpstat-ify upload-pack
  dumpstat to fd
  dumpstat
Merge branch 'jk/external-odb' into HEAD

* jk/external-odb:
  fetch-pack: advertise external odb blobs
  external odb foreach
  external odb work in progress
Merge branch 'jk/fast-commit-list' into HEAD

* jk/fast-commit-list:
  fetch-pack: use priority queue for mark_complete
  commit: add infrastructure for priority queues of commits
  basic priority queue implementation
Merge branch 'jk/fetch-quadratic-speedup' into HEAD

* jk/fetch-quadratic-speedup:
  fetch-pack: avoid quadratic loop in filter_refs
  fetch-pack: sort the list of incoming refs
  add sorting infrastructure for list refs
  fetch-pack: avoid quadratic behavior in remove_duplicates
  fetch-pack: sort incoming heads
Merge branch 'jk/fetch-tracking' into HEAD

* jk/fetch-tracking:
  fetch tracking wip
Merge branch 'jk/filter-branch-example' into HEAD

* jk/filter-branch-example:
  docs/filter-branch: clean up newsubdir example
  update-index: add --clear option
Merge branch 'jk/gecos-limits' into HEAD

* jk/gecos-limits:
  format-patch: refactor get_patch_filename
  ident: trim whitespace from default name/email
  ident: use a dynamic strbuf in fmt_ident
  ident: use full dns names to generate email addresses
  ident: report passwd errors with a more friendly message
  drop length limitations on gecos-derived names and emails
  ident: don't write fallback username into git_default_name
  fmt_ident: drop IDENT_WARN_ON_NO_NAME code
  format-patch: use default email for generating message ids
  ident: trim trailing newline from /etc/mailname
  move git_default_* variables to ident.c
  move identity config parsing to ident.c
  fmt-merge-msg: don't use static buffer in record_person
  http-push: do not access git_default_email directly
  ident: split setup_ident into separate functions
Merge branch 'jk/generations' into HEAD

* jk/generations:
  limit "contains" traversals based on commit generation
  check commit generation cache validity against grafts
  pretty: support %G to show the generation number of a commit
  commit: add commit_generation function

Conflicts:
	metadata-cache.c
	metadata-cache.h
Merge branch 'jk/ignore-have' into HEAD

* jk/ignore-have:
  receive-pack: respect receive.advertiseAlternates config
Merge branch 'jk/leading-symlinks' into HEAD

* jk/leading-symlinks:
  don't cross submodule boundaries in add
Merge branch 'jk/pager' into HEAD

* jk/pager:
  support pager.* for aliases
Merge branch 'jk/pager-subcommand' into HEAD

* jk/pager-subcommand:
  show git tag output in pager