t0024, t5000: use test_lazy_prereq for UNZIP

This change makes the code smaller and we can put it at the top of
the script, its rightful place as setup code.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t5000, t5003: move ZIP tests into their own script

This makes ZIP specific tweaks easier.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t5003: check if unzip supports symlinks

Only add a symlink to the repository if both the filesystem and
unzip support symlinks.  To check the latter, add a ZIP file
containing a symlink, created like this with InfoZIP zip 3.0:

	$ echo sample text >textfile
	$ ln -s textfile symlink
	$ zip -y infozip-symlinks.zip textfile symlink

If we can extract it successfully, we add a symlink to the test
repository for git archive --format=zip, or otherwise skip that
step.  Users can see the skipped test and perhaps run it again
with a different unzip version.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'jk/config-uname' into jch

Move the bits to set fallback default based on the platform from
the main Makefile to a separate file, so that it can be included in
Makefiles in subdirectories.

Will merge to 'next'.

* jk/config-uname:
  Makefile: hoist uname autodetection to config.mak.uname
Merge branch 'as/dir-c-cleanup' into jch

Separated an earlier and more solidly done bits from the other
topic.

Will merge to 'next'.

* as/dir-c-cleanup:
  dir.c: rename free_excludes() to clear_exclude_list()
  dir.c: refactor is_path_excluded()
  dir.c: refactor is_excluded()
  dir.c: refactor is_excluded_from_list()
  dir.c: rename excluded() to is_excluded()
  dir.c: rename excluded_from_list() to is_excluded_from_list()
  dir.c: rename path_excluded() to is_path_excluded()
  dir.c: rename cryptic 'which' variable to more consistent name
  Improve documentation and comments regarding directory traversal API
  api-directory-listing.txt: update to match code
Merge branch 'jc/blame-no-follow' into jch

Teaches "--no-follow" option to "git blame" to disable its
whole-file rename detection.

Will merge to 'next'.

* jc/blame-no-follow:
  blame: pay attention to --no-follow
  diff: accept --no-follow option
Merge branch 'mo/cvs-server-updates' into jch

As nobody seems to be stepping up to review this, I am tempted to
merge this to 'next and see who screams.

Will merge to 'next'.

* mo/cvs-server-updates:
  t9402: Use TABs for indentation
  t9402: Rename check.cvsCount and check.list
  t9402: Simplify git ls-tree
  t9402: Add missing &&; Code style
  t9402: No space after IO-redirection
  t9402: Dont use test_must_fail cvs
  t9402: improve check_end_tree() and check_end_full_tree()
  t9402: sed -i is not portable
  cvsserver Documentation: new cvs ... -r support
  cvsserver: add t9402 to test branch and tag refs
  cvsserver: support -r and sticky tags for most operations
  cvsserver: Add version awareness to argsfromdir
  cvsserver: generalize getmeta() to recognize commit refs
  cvsserver: implement req_Sticky and related utilities
  cvsserver: add misc commit lookup, file meta data, and file listing functions
  cvsserver: define a tag name character escape mechanism
  cvsserver: cleanup extra slashes in filename arguments
  cvsserver: factor out git-log parsing logic
Merge branch 'jc/merge-blobs' into jch

Update the disused merge-tree proof-of-concept code.

Will merge to 'next'.

* jc/merge-blobs:
  merge-tree: fix d/f conflicts
  merge-tree: add comments to clarify what these functions are doing
  merge-tree: lose unused "resolve_directories"
  merge-tree: lose unused "flags" from merge_list
  Which merge_file() function do you mean?
Merge branch 'nz/send-email-headers-are-case-insensitive' into jch

When user spells "cc:" in lowercase in the fake "header" in the
trailer part, send-email failed to pick up the addresses from
there. As e-mail headers field names are case insensitive, this
script should follow suit and treat "cc:" and "Cc:" the same way.

Will merge to 'next'.

* nz/send-email-headers-are-case-insensitive:
  git-send-email: treat field names as case-insensitively
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