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:
# 	object.c
# 	object.h
# 	t/t8007-cat-file-textconv.sh
Merge branch 'jl/submodule-mv' into pu

"git mv A B" when moving a submodule A does "the right thing",
inclusing relocating its working tree and adjusting the paths in
the .gitmodules file.

$gmane/226294

* jl/submodule-mv:
  submodule.c: duplicate real_path's return value
  rm: delete .gitmodules entry of submodules removed from the work tree
  Teach mv to update the path entry in .gitmodules for moved submodules
  Teach mv to move submodules using a gitfile
  Teach mv to move submodules together with their work trees
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

# Conflicts:
# 	refs.c
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:
# 	log-tree.c
# 	pretty.c
Merge branch 'hv/config-from-blob' into pu

$gmane/223964

* hv/config-from-blob:
  do not die when error in config parsing of buf occurs
  teach config --blob option to parse config from database
  config: make parsing stack struct independent from actual data source
  config: drop cf validity check in get_next_char()
  config: factor out config file stack management
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 'mh/multimail' into pu

$gmane/223564

* mh/multimail:
  git-multimail: a replacement for post-receive-email
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 'rj/cygwin-clarify-use-of-cheating-lstat' into pu

Turns quite a many uses of lstat() into fast_lstat() to mark
callsites that allow "a faster but cheating and incorrect variant".
Defining fast_lstat() to be the same as lstat(), is fine from
correctness point of view, but it can be replaced with an
alternative implementation that more quickly grabs only the part of
the stat information that matter (e.g. cygwin).  The places where
we _do_ require a fully correct lstat() are left as lstat().

The damage this patch makes to the the core codepath on systems may
be rather large from readability's point of view, though.

* rj/cygwin-clarify-use-of-cheating-lstat:
  cygwin: Add fast_lstat() and fast_fstat() functions
Merge branch 'jc/pull-training-wheel' into pu

Make "git pull" refuse with "it does not fast forward; choose between
'pull --merge' and 'pull --rebase'".

John Keeping seems to want to restrict this to "git pull" without
any other argument. I personally do not have a strong opinion
either way, but I'm inclined to take such a patch to loosen the new
logic with other people's support.  Hint, hint...

* jc/pull-training-wheel:
  pull: require choice between rebase/merge on non-fast-forward pull
Merge branch 'rr/send-email-ssl-verify' into pu

The issue seems a lot deeper than the initial attempt and needs
somebody to sit down and sort out to get the version dependencies
and lazy loading right.

* rr/send-email-ssl-verify:
  SQUASH??? update to support SSL_ca_file as well as SSL_ca_path
  SQUASH??? send-email: cover both smtps and starttls cases
  fixup! send-email: squelch warning from Net::SMTP::SSL
  SQUASH??? send-email giving default value to ssl-cert-path with ||= assignment
  send-email: introduce sendemail.smtpsslcertpath
  send-email: squelch warning from Net::SMTP::SSL
Merge branch 'tr/merge-recursive-index-only' into pu

* 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()