Merge branch 'jc/test-lib-source-build-options-early' into pu

Reorders t/test-lib.sh so that we dot-source GIT-BUILD-OPTIONS that
records the shell and Perl the user told us to use with Git a lot
early, so that test-lib.sh script itself can use "$PERL_PATH" in
one of its early operations.

Needs to be eyeballed by people who run tests with exotic options
like valgrind, --root=/dev/shm/somewhere, etc.

* jc/test-lib-source-build-options-early:
  test-lib: reorder and include GIT-BUILD-OPTIONS a lot earlier
Merge branch 'ph/stash-rerere' into pu

Will be rerolled but is going in the right direction.

# By Phil Hord
* ph/stash-rerere:
  stash: invoke rerere in case of conflict
  test: git-stash conflict sets up rerere
Merge branch 'jk/no-more-pre-exec-callback' into pu

Will defer for 6 months until ancient "less" goes extinct.

# By Jeff King
* jk/no-more-pre-exec-callback:
  pager: drop "wait for output to run less" hack
Merge branch 'jc/split-blob' into pu

Not ready.

I finished the streaming checkout codepath, but as explained in
127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),
these are still early steps of a long and painful journey. At least
pack-objects and fsck need to learn the new encoding for the series
to be usable locally, and then index-pack/unpack-objects needs to
learn it to be used remotely.

Given that I heard a lot of noise that people want large files, and
that I was asked by somebody at GitTogether'11 privately for an
advice on how to pay developers (not me) to help adding necessary
support, I am somewhat dissapointed that the original patch series
that was sent almost two months ago still remains here without much
comments and updates from the developer community. I even made the
interface to the logic that decides where to split chunks easily
replaceable, and I deliberately made the logic in the original patch
extremely stupid to entice others, especially the "bup" fanboys, to
come up with a better logic, thinking that giving people an easy
target to shoot for, they may be encouraged to help out. The plan is
not working :-(.

* jc/split-blob:
  chunked-object: streaming checkout
  chunked-object: fallback checkout codepaths
  bulk-checkin: support chunked-object encoding
  bulk-checkin: allow the same data to be multiply hashed
  new representation types in the packstream
  packfile: use varint functions

Conflicts:
	builtin/pack-objects.c
	streaming.c
	t/t1050-large.sh
Merge branch 'jc/maint-push-refs-all' into pu

Allows pushing and fetching refs/stash.
There still seem to be other bugs hiding (e.g. try pushing twice).

Not ready.

* jc/maint-push-refs-all:
  get_fetch_map(): tighten checks on dest refs
  fetch/push: allow refs/*:refs/*
Merge branch 'lt/commit-tree-guess-utf-8' into pu

Teaches "git commit" and "git commit-tree" the "we are told to use
utf-8 in log message, but this does not look like utf-8---attempt to
pass it through convert-from-latin1-to-utf8 and see if it makes
sense" heuristics "git mailinfo" already uses.

A draft from Linus received privately without a log message.
Hopefully it will be rerolled.

# By Linus Torvalds
* lt/commit-tree-guess-utf-8:
  commit/commit-tree: correct latin1 to utf-8
Merge branch 'mh/maint-revisions-doc' into pu

Expecting a reroll of the tip one.

# By Max Horn
* mh/maint-revisions-doc:
  Document rev^! and rev^@ as revision specifiers
  Make <refname> documentation more consistent.
Merge branch 'jl/submodule-rm' into pu

Expecting a reroll.

# By Jens Lehmann
* jl/submodule-rm:
  rm: remove submodules from the index and the .gitmodules file
  rm: don't fail when removing populated submodules
Merge branch 'tg/ce-namelen-field' into pu

Split lower bits of ce_flags field and creates a new ce_namelen
field in the in-core index structure.

* tg/ce-namelen-field:
  Strip namelen out of ce_flags into a ce_namelen field
Merge branch 'mb/remote-default-nn-origin' into pu

When the user does not specify what remote to interact with, we
often attempt to use 'origin'.  This can now be customized via a
configuration variable.

# By Marc Branchaud
* mb/remote-default-nn-origin:
  Teach get_default_remote to respect remote.default.
  Test that plain "git fetch" uses remote.default when on a detached HEAD.
  Teach clone to set remote.default.
  Teach "git remote" about remote.default.
  Teach remote.c about the remote.default configuration setting.
  Rename remote.c's default_remote_name static variables.
Merge branch 'as/t4012-style-updates' into pu

Should I wait for a reroll???

# By Alexander Strasser (6) and Johannes Sixt (1)
* as/t4012-style-updates:
  t4012: use 'printf' instead of 'dd' to generate a binary file
  t4012: Re-indent test snippets
  t4012: Make --shortstat test more robust
  t4012: Break up pipe into serial redirections
  t4012: Actually quote the sed script
  t4012: Unquote git command fragment in test title
  t4012: modernize style for quoting
Merge branch 'mm/config-xdg' into pu

Either we do the stupid literal conversion (shown in fixup!), or the
reason why we special case missing HOME needs to be better explained.

# By Junio C Hamano (1) and Matthieu Moy (1)
* mm/config-xdg:
  fixup! config: fix several access(NULL) calls
  config: fix several access(NULL) calls
Merge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink' into pu

When "git submodule add" clones a submodule repository, it can get
confused where to store the resulting submodule repository in the
superproject's .git/ directory when there is a symbolic link in the
path to the current directory.

* jl/maint-1.7.10-recurse-submodules-with-symlink:
  submodules: don't stumble over symbolic links when cloning recursively

Conflicts:
	git-submodule.sh
Merge branch 'pg/maint-1.7.9-am-where-is-patch' into pu

When "git am" failed, old timers knew to check .git/rebase-apply/patch
to see what went wrong, but we never told the users about it.

# By Paul Gortmaker
* pg/maint-1.7.9-am-where-is-patch:
  am: indicate where a failed patch is to be found
Merge branch 'jk/revision-walk-stop-at-max-count' into pu

"git log -n 1 -- rarely-touched-path" was spending unnecessary
cycles after showing the first change to find the next one, only to
discard it.

# By Jeff King
* jk/revision-walk-stop-at-max-count:
  revision: avoid work after --max-count is reached