Merge branch 'fc/at-head' into pu

Attempt to resurrect "Type @ for HEAD"; the bottom one seems to be
a genuine code improvement, but identifying cases where "@" means
HEAD were harder than it should have been.  I think the result of
squashing the tip one in covers all the necessary cases.

Will squash the tip in and merge to 'next'.

* fc/at-head:
  SQUASH??? fixup
  Add new @ shortcut for HEAD
  sha1-name: pass len argument to interpret_branch_name()
Merge branch 'rv/send-email-cache-generated-mid' into pu

* 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 'np/pack-v4' into pu

Nico and Duy advancing the eternal vaporware pack-v4.  This is here
primarily for wider distribution of the preview edition.

* np/pack-v4: (73 commits)
  SQUASH: compilation fix
  index-pack: support completing thin packs v4
  index-pack: use nr_objects_final as sha1_table size
  pack v4: support "end-of-pack" indicator in index-pack and pack-objects
  pack-objects: support writing pack v4
  pack-objects: prepare SHA-1 table in v4
  pack-objects: create pack v4 tables
  pack-objects: exclude commits out of delta objects in v4
  pack-objects: do not cache delta for v4 trees
  list-objects.c: add show_tree_entry callback to traverse_commit_list
  pack-objects: add --version to specify written pack version
  pack-write.c: add pv4_encode_object_header
  pack_write: tighten valid object type check in encode_in_pack_object_header
  pack v4: add version argument to write_pack_header
  index-pack: resolve v4 one-base trees
  index-pack: skip looking for ofs-deltas in v4 as they are not allowed
  index-pack: record all delta bases in v4 (tree and ref-delta)
  index-pack: move delta base queuing code to unpack_raw_entry
  index-pack: parse v4 tree format
  index-pack: parse v4 commit format
  ...

# Conflicts:
# 	builtin/pack-objects.c
# 	upload-pack.c
Merge branch 'jc/reflog-doc' into pu

Document rules to use GIT_REFLOG_ACTION variable in the scripted
Porcelain.  git-rebase--interactive locally violates this, but it
is a leaf user that does not call out to or dot-sources other
scripts, so fixing it is not all that urgent.

* jc/reflog-doc:
  setup_reflog_action: document the rules for using GIT_REFLOG_ACTION

# Conflicts:
# 	Documentation/git.txt
Merge branch 'mg/more-textconv' into pu

Make "git grep" and "git show" pay attention to --textconv when
dealing with blob objects.

I thought this was pretty well designed and executed, but it seems
there are some doubts on the list; kicked back to 'pu'.

* mg/more-textconv:
  grep: honor --textconv for the case rev:path
  grep: allow to use textconv filters
  t7008: demonstrate behavior of grep with textconv
  cat-file: do not die on --textconv without textconv filters
  show: honor --textconv for blobs
  diff_opt: track whether flags have been set explicitly
  t4030: demonstrate behavior of show with textconv

# Conflicts:
# 	diff.h
# 	object.c
# 	object.h
# 	t/t8007-cat-file-textconv.sh
Merge branch 'jh/shorten-refname' into pu

When remotes/origin/HEAD is not a symbolic ref, "rev-parse
--abbrev-ref remotes/origin/HEAD" ought to show "origin", not
"origin/HEAD", which is fixed with this series (if it is a symbolic
ref that points at remotes/origin/something, then it should show
"origin/something" and it already does).

$gmane/225137

* jh/shorten-refname:
  t1514: refname shortening is done after dereferencing symbolic refs
  shorten_unambiguous_ref(): Fix shortening refs/remotes/origin/HEAD to origin
  t1514: Demonstrate failure to correctly shorten "refs/remotes/origin/HEAD"
  t1514: Add tests of shortening refnames in strict/loose mode
Merge branch 'jk/gitweb-utf8' into pu

Various fixes to gitweb.

Drew Northup volunteered to take a look into this.
$gmane/226216

* jk/gitweb-utf8:
  gitweb: Fix broken blob action parameters on blob/commitdiff pages
  gitweb: Don't append ';js=(0|1)' to external links
  gitweb: Make feed title valid utf8
  gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
Merge branch 'jc/format-patch' into pu

A new option to send a single patch to the standard output to be
appended at the bottom of a message.  I personally have no need for
this, but it was easy enough to cobble together.  Tests, docs and
stripping out more MIMEy stuff are left as exercises to interested
parties.

tying its loose ends.

* jc/format-patch:
  format-patch: --inline-single
  format-patch: rename "no_inline" field

# Conflicts:
# 	builtin/log.c
# 	log-tree.c
# 	pretty.c
Merge branch 'jc/show-branch' into pu

* jc/show-branch:
  show-branch: use commit slab to represent bitflags of arbitrary width
  show-branch.c: remove "all_mask"
  show-branch.c: abstract out "flags" operation
  show-branch.c: lift all_mask/all_revs to a global static
  show-branch.c: update comment style

# Conflicts:
# 	builtin/show-branch.c
Merge branch 'rj/read-default-config-in-show-ref-pack-refs' into pu

The changes themselves are probably good, but it is unclear what
basic setting needs to be read for which exact operation.

$gmane/228294

* rj/read-default-config-in-show-ref-pack-refs:
  ### DONTMERGE: needs better explanation on what config they need
  pack-refs.c: Add missing call to git_config()
  show-ref.c: Add missing call to git_config()
Merge branch 'tr/merge-recursive-index-only' into pu

Will hold, until we get any user.

* tr/merge-recursive-index-only:
  merge-recursive: -Xindex-only to leave worktree unchanged
  merge-recursive: untangle double meaning of o->call_depth
  merge-recursive: remove dead conditional in update_stages()