Merge branch 'jc/apply-3way' into pu

"git apply" learns to wiggle the base version and perform three-way merge
when a patch does not exactly apply to the version you have.

It turns out that it is somewhat unpleasant to handle add/add conflicts in
this code, but it seems necessary if we want to use "apply -3" to replace
the use of "apply --build-fake-ancestor" followed by the slow "merge" in
"am -3".

* jc/apply-3way:
  apply --3way: tests
  apply: document --3way option
  apply: allow rerere() upon --3way results
  apply: register conflicted stages to the index
  apply: --3way with add/add conflict
  apply: plug the three-way merge logic in
  apply: fall back on three-way merge
  apply: accept -3/--3way command line option
  apply: move "already exists" logic to check_to_create()
  apply: move check_to_create_blob() closer to its sole caller
  apply: further split load_preimage()
  apply: refactor "previous patch" logic
  apply: split load_preimage() helper function out
  apply: move verify_index_match() higher
  apply: factor out checkout_target() helper function
  apply: refactor read_file_or_gitlink()
  apply: clear_image() clears things a bit more
  apply: a bit more comments on PATH_TO_BE_DELETED
  apply: fix an incomplete comment in check_patch()

Conflicts:
	builtin/apply.c
Merge branch 'jc/maint-push-refs-all' into pu

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

* jc/maint-push-refs-all:
  get_fetch_map(): tighten checks on dest refs
  fetch/push: allow refs/*:refs/*
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 'nd/i18n-misc' into pu

Restructure the way message strings are created, in preparation for
marking them for i18n.

# By Nguyễn Thái Ngọc Duy
* nd/i18n-misc:
  rerere: remove i18n legos in result message
  notes-merge: remove i18n legos in merge result message
  reflog: remove i18n legos in pruning message
Merge branch 'nd/i18n-branch-lego' into pu

Restructure the way message strings are created, in preparation for
marking them for i18n.

# By Nguyễn Thái Ngọc Duy
* nd/i18n-branch-lego:
  Remove i18n legos in notifying new branch tracking setup
Merge branch 'nd/exclude-workaround-top-heavy' into pu

Attempts to optimize matching with an exclude pattern with a deep
directory hierarchy by taking the part that specifies leading path
without wildcard literally.

# By Nguyễn Thái Ngọc Duy
* nd/exclude-workaround-top-heavy:
  exclude: do strcmp as much as possible before fnmatch
  dir.c: get rid of the wildcard symbol set in no_wildcard()
  Unindent excluded_from_list()
Merge branch 'lk/more-helpful-status-hints' into pu

Almost there, modulo minor details pointed out by Matthieu.

# By Lucien Kong (4) and Junio C Hamano (1)
* lk/more-helpful-status-hints:
  fixup! status: better advices when splitting a commit (during rebase -i)
  status: better advices when splitting a commit (during rebase -i)
  status: don't suggest "git rm" or "git add" if not appropriate
  t7512-status-help.sh: better advices for git status
  wt-status.*: better advices for git status added
Merge branch 'rr/doc-commit' into pu

# By Ramkumar Ramachandra
* rr/doc-commit:
  commit: document a couple of options
Merge branch 'db/vcs-svn' into pu

I'd take Jonathan's clean-up offer and keep this on hold until
1.7.11 final.

# By David Barr
* db/vcs-svn:
  vcs-svn: drop no-op reset methods
  vcs-svn: fix signedness warnings
  vcs-svn: prefer strstr over memmem
  vcs-svn: prefer constcmp to prefixcmp
  vcs-svn: simplify cleanup in apply_one_window()
  vcs-svn: fix clang-analyzer error
Merge branch 'jc/rev-list-simplify-merges-first-parent' into pu

* jc/rev-list-simplify-merges-first-parent:
  *WRONG* revision: cull side parents before running simplify-merges
  revision: note the lack of free() in simplify_merges()
  revision: "simplify" options imply topo-order sort
Merge branch 'fc/git-prompt-script' into pu

The last remaining sticking point is what to do with the duplicated shell
function.

# By Felipe Contreras (2) and Junio C Hamano (1)
* fc/git-prompt-script:
  completion: warn people about duplicated function
  completion: split __git_ps1 into a separate script
  completion: remove executable mode
Merge branch 'rs/git-blame-mapcar-mapc' into pu

# By Rüdiger Sonderfeld
* rs/git-blame-mapcar-mapc:
  git-blame.el: use mapc instead of mapcar
Merge branch 'hv/submodule-checkout-nuke-submodules' into pu

# By Heiko Voigt
* hv/submodule-checkout-nuke-submodules:
  update-index: allow overwriting existing submodule index entries
Merge branch 'hv/remote-end-hung-up' into pu

* hv/remote-end-hung-up:
  lessen the impression of unexpectedness on remote hangup

Conflicts:
	t/t5512-ls-remote.sh
Merge branch 'lk/rebase-i-x' into pu

Adds -x <cmd> to "rebase -i" to insert "exec <cmd>" after each
commit in the resulting history.

Not urgent; probably early post 1.7.11.

# By Lucien Kong
* lk/rebase-i-x:
  rebase -i: teach "--exec <cmd>"
Merge branch 'vr/use-our-perl-in-tests' into pu

# By Junio C Hamano (2) and Vincent van Ravesteijn (1)
* vr/use-our-perl-in-tests:
  t/README: add a bit more Don'ts
  tests: enclose $PERL_PATH in duoble quotes
  t: Replace 'perl' by $PERL_PATH