Merge branch 'jl/interrupt-clone-remove-separate-git-dir' into pu

When "git clone --separate-git-dir" is interrupted, we failed to
remove the real location we created the repository.

Will merge to 'next'.

* jl/interrupt-clone-remove-separate-git-dir:
  clone: support atomic operation with --separate-git-dir
Merge branch 'rs/leave-base-name-in-name-field-of-tar' into pu

Improve compatibility with implementations of "tar" that do not
like empty name field in header (with the additional prefix field
holding everything).

Will merge to 'next'.

* rs/leave-base-name-in-name-field-of-tar:
  archive-tar: split long paths more carefully
Merge branch 'jk/unify-exit-code-by-receiving-signal' into pu

The internal logic had to deal with two representations of a death
of a child process by a signal.

Will merge to 'next'.

* jk/unify-exit-code-by-receiving-signal:
  run-command: encode signal death as a positive integer
Merge branch 'as/api-allocation-doc' into pu

Will merge to 'next'.

* as/api-allocation-doc:
  api-allocation-growing.txt: encourage better variable naming
Merge branch 'jc/comment-cygwin-win32api-in-makefile' into pu

Will merge to 'next'.

* jc/comment-cygwin-win32api-in-makefile:
  Makefile: add comment on CYGWIN_V15_WIN32API
Merge branch 'jn/xml-depends-on-asciidoc-conf' into pu

Will merge to 'next'.

* jn/xml-depends-on-asciidoc-conf:
  docs: manpage XML depends on asciidoc.conf
Merge branch 'rs/zip-tests' into pu

Updates zip tests to skip some that cannot be handled on platform
unzip.

I've renamed the t5002 in the original to t5003 to avoid name
clashes with another topic in flight.

Will merge to 'next'.

* rs/zip-tests:
  t5003: check if unzip supports symlinks
  t5000, t5003: move ZIP tests into their own script
  t0024, t5000: use test_lazy_prereq for UNZIP
  t0024, t5000: clear variable UNZIP, use GIT_UNZIP instead
Merge branch 'rs/zip-with-uncompressed-size-in-the-header' into pu

Improve compatibility of our zip output to fill uncompressed size
in the header, which we can do without seeking back (even though it
should not be necessary).

Will merge to 'next'.

* rs/zip-with-uncompressed-size-in-the-header:
  archive-zip: write uncompressed size into header even with streaming
Merge branch 'fc/remote-testgit-feature-done' into pu

In the longer term, tightening rules is a good thing to do, and
because nobody who has worked in the remote helper area seems to be
interested in reviewing this, I would assume they do not think
such a retroactive tightening will affect their remote helpers.  So
let's advance this topic to see what happens.

Will merge to 'next'.

* fc/remote-testgit-feature-done:
  remote-testgit: properly check for errors
Merge branch 'jc/doc-maintainer' into pu

Describe tools for automation that were invented since this
document was originally written.

Will merge to 'next'.

* jc/doc-maintainer:
  howto/maintain: mark titles for asciidoc
  Documentation: update "howto maintain git"
Merge branch 'jc/push-2.0-default-to-simple' into pu

Will merge to 'next' and cook there until Git 2.0.

* jc/push-2.0-default-to-simple:
  push: switch default from "matching" to "simple"
  t9401: do not assume the "matching" push is the default
  t9400: do not assume the "matching" push is the default
  t7406: do not assume the "matching" push is the default
  t5531: do not assume the "matching" push is the default
  t5519: do not assume the "matching" push is the default
  t5517: do not assume the "matching" push is the default
  t5516: do not assume the "matching" push is the default
  t5505: do not assume the "matching" push is the default
  t5404: do not assume the "matching" push is the default

Conflicts:
	builtin/push.c
Merge branch 'zk/clean-report-failure' into pu

"git clean" states what it is going to remove and then goes on to
remove it, but sometimes it only discovers things that cannot be
removed after recursing into a directory, which makes the output
confusing and even wrong.

Rerolled.

* zk/clean-report-failure:
  git-clean: Display more accurate delete messages
Merge branch 'ap/status-ignored-in-ignored-directory' into pu

Originally merged to 'next' on 2013-01-04

Output from "git status --ignored" showed an unexpected interaction
with "--untracked".

Will merge to 'next'.

* ap/status-ignored-in-ignored-directory:
  status: always report ignored tracked directories
Merge branch 'as/check-ignore' into pu

Rerolled.

* as/check-ignore:
  add git-check-ignore sub-command
  setup.c: document get_pathspec()
  add.c: extract new die_if_path_beyond_symlink() for reuse
  add.c: extract check_path_for_gitlink() from treat_gitlinks() for reuse
  pathspec.c: rename newly public functions for clarity
  add.c: move pathspec matchers into new pathspec.c for reuse
  add.c: remove unused argument from validate_pathspec()
  dir.c: improve docs for match_pathspec() and match_pathspec_depth()
  dir.c: provide clear_directory() for reclaiming dir_struct memory
  dir.c: keep track of where patterns came from
  dir.c: use a single struct exclude_list per source of excludes

Conflicts:
	builtin/ls-files.c
	dir.c
Merge branch 'ap/log-mailmap' into pu

Clean up various codepaths around mailmap and teach the "log"
machinery to use it.

Rerolled.

* ap/log-mailmap:
  log: add log.mailmap configuration option
  log: grep author/committer using mailmap
  test: add test for --use-mailmap option
  log: add --use-mailmap option
  pretty: use mailmap to display username and email
  mailmap: add mailmap structure to rev_info and pp
  mailmap: simplify map_user() interface
  mailmap: remove email copy and length limitation
  Use split_ident_line to parse author and committer
  list_lookup: create case and length search

Conflicts:
	commit.h
	log-tree.c
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.

Expecting a reroll.
$gmane/210151

"The first remote becomes the default" bit is better done as a
separate step.

* 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.

Conflicts:
	builtin/remote.c
	t/t5505-remote.sh
Merge branch 'mb/gitweb-highlight-link-target' into pu

Expecting a reroll.
$gmane/211935

* mb/gitweb-highlight-link-target:
  Highlight the link target line in Gitweb using CSS
Merge branch 'bc/append-signed-off-by' into pu

Expecting a reroll.
$gmane/212507

* bc/append-signed-off-by:
  t4014: do not use echo -n
  Unify appending signoff in format-patch, commit and sequencer
  format-patch: update append_signoff prototype
  format-patch: stricter S-o-b detection
  t4014: more tests about appending s-o-b lines
  sequencer.c: teach append_signoff to avoid adding a duplicate newline
  sequencer.c: teach append_signoff how to detect duplicate s-o-b
  sequencer.c: always separate "(cherry picked from" from commit body
  sequencer.c: recognize "(cherry picked from ..." as part of s-o-b footer
  t/t3511: add some tests of 'cherry-pick -s' functionality
  t/test-lib-functions.sh: allow to specify the tag name to test_commit
  sequencer.c: remove broken support for rfc2822 continuation in footer

Conflicts:
	builtin/log.c
	t/t4014-format-patch.sh
Merge branch 'nd/clone-no-separate-git-dir-with-bare' into pu

Expecting a reroll.
$gmane/212863

* nd/clone-no-separate-git-dir-with-bare:
  clone: forbid --bare --separate-git-dir <dir>
Merge branch 'nd/parse-pathspec' into pu

Uses the parsed pathspec structure in more places where we used to
use the raw "array of strings" pathspec.

Unfortunately, this conflicts a couple of topics in flight. I tried
to be careful while resolving conflicts, though.

* nd/parse-pathspec: (21 commits)
  Convert more init_pathspec() to parse_pathspec()
  Convert add_files_to_cache to take struct pathspec
  Convert {read,fill}_directory to take struct pathspec
  Convert refresh_index to take struct pathspec
  Convert report_path_error to take struct pathspec
  checkout: convert read_tree_some to take struct pathspec
  Convert unmerge_cache to take struct pathspec
  Convert read_cache_preload() to take struct pathspec
  add: convert to use parse_pathspec
  archive: convert to use parse_pathspec
  ls-files: convert to use parse_pathspec
  rm: convert to use parse_pathspec
  checkout: convert to use parse_pathspec
  rerere: convert to use parse_pathspec
  status: convert to use parse_pathspec
  commit: convert to use parse_pathspec
  clean: convert to use parse_pathspec
  Export parse_pathspec() and convert some get_pathspec() calls
  pathspec: make sure the prefix part is wildcard-clean
  Add parse_pathspec() that converts cmdline args to struct pathspec
  ...

Conflicts:
	builtin/add.c
	builtin/ls-files.c
	cache.h
	dir.c
	setup.c
	tree-walk.c
	wt-status.c