[SQUASH???] t5571 sample hooks should consume their input

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Add sample pre-push hook script

Create a sample of a script for a pre-push hook.  The main purpose is to
illustrate how a script may parse the information which is supplied to
such a hook.  The script may also be useful to some people as-is for
avoiding to push commits which are marked as a work in progress.

Signed-off-by: Aaron Schrab <aaron@schrab.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'dl/am-hg-locale' into pu

Datestamp recorded in "Hg" format patch was reformatted incorrectly
to an e-mail looking date using locale dependant strftime, causing
patch application to fail.

* dl/am-hg-locale:
  am: invoke perl's strftime in C locale
Merge branch 'jc/custom-comment-char' into pu

An illustration to show codepaths that need to be touched to change
the hint lines in the edited text to begin with something other
than '#'.

* jc/custom-comment-char:
  Allow custom "comment char"
Merge branch 'ph/rebase-preserve-all-merges' into pu

An earlier change to add --keep-empty option broke "git rebase
--preserve-merges" and lost merge commits that end up being the
same as its parent.

Will merge to 'next'.

* ph/rebase-preserve-all-merges:
  rebase --preserve-merges: keep all merge commits including empty ones
Merge branch 'rs/archive-tar-config-parsing-fix' into pu

Configuration parsing for tar.* configuration variables were
broken; Peff's config parsing clean-up topic will address the same
breakage, so this may be superseded by that other topic.

* rs/archive-tar-config-parsing-fix:
  archive-tar: fix sanity check in config parsing
Merge branch 'rs/pretty-use-prefixcmp' into pu

Will merge to 'next'.

* rs/pretty-use-prefixcmp:
  pretty: use prefixcmp instead of memcmp on NUL-terminated strings
Merge branch 'as/pre-push-hook' into pu

Add an extra hook so that "git push" that is run without making
sure what is being pushed is sane can be checked and rejected (as
opposed to the user deciding not pushing).

* as/pre-push-hook:
  Add sample pre-push hook script
  [SQUASH???] t5571 sample hooks should consume their input
  push: Add support for pre-push hooks
  hooks: Add function to check if a hook exists
cvsimport: start adding cvsps 3.x support

The new cvsps 3.x series lacks support of some options cvsps 2.x
series had and used by cvsimport-2; add a replacement program from
the author of cvsps 3.x and allow users to choose it by setting the
GIT_CVSPS_VERSION environment variable to 3.  We would later add
support to auto-detect the version of installed cvsps to this code
when the environment variable is not set.

Note that in this step, cvsimport-3 that relies on cvsps 3.x does
not have any test coverage.  As cvsimport-3 supports most of the
command line options cvsimport-2 does, we should be able to tweak
some of the t96xx tests and run them with GIT_CVSPS_VERSION set to
both 2 and 3, but that is a topic of later patches that should come
on top.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
cvsimport: make tests reusable for cvsimport-3

This way, a dual-use test can be dot-sourced into a new test script
after defining GIT_CVSPS_VERSION=3 to test that the new cvsimport
with cvsps (3.x) works on simple test histories that old cvsimport
can grok correctly.

Also allow CVSPS2_PATH and CVSPS3_PATH to be defined as "NoThanks"
to cause the tests in t96?? series to be skipped.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
cvsimport-3: add a sample test

This is primarily for illustration to show how the support
introduced by the previous step can be used.

Some parts of t9600 needs to be made conditional to the value of
TEST_CVSPS_VERSION to avoid passing options the new cvsimport does
not need or understand, before this can become usable as a real
test.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t9600: further prepare for sharing

When t9650, which dot-sources this script, really becomes ready to
test the new cvsimport, we no longer depend on having PERL to run
this test through it.  Move the PERL dependency to lib-cvs.sh
instead.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t9600: adjust for new cvsimport

The rewritten cvsimport does not skip the latest 10 minutes worth of
CVS commits by default, so there is no need to pass the "-a" option;
it will barf if it sees "-a".

Also it will do the merge itself, so there is no need to merge
"origin" ourselves, either.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'jc/cvsimport-upgrade' into pu

The most important part of this series is the addition of the new
cvsimport by Eric Raymond that works with cvsps 3.x.  Given some
distros have inertia to be conservative, Git with cvsimport that
does not work with both 3.x will block adoption of cvsps 3.x by
them, and shipping Git with cvsimport that does not work with cvsps
2.x will block such a version of Git, so we'll do the proven "both
old and new are available, but we aim to deprecate and remove the
old one in due time" strategy that we used successfully in the
past.

* jc/cvsimport-upgrade:
  t9600: adjust for new cvsimport
  t9600: further prepare for sharing
  cvsimport-3: add a sample test
  cvsimport: make tests reusable for cvsimport-3
  cvsimport: start adding cvsps 3.x support
  cvsimport: introduce a version-switch wrapper
  cvsimport: allow setting a custom cvsps (2.x) program name
  Makefile: add description on PERL/PYTHON_PATH
### Expecting a reroll
Merge branch 'dg/subtree-fixes' into pu

contrib/subtree updates.

Rerolled?

* dg/subtree-fixes:
  contrib/subtree: mkdir the manual directory if needed
  contrib/subtree: honor $(DESTDIR)
  contrib/subtree: fix synopsis and command help
  contrib/subtree: better error handling for "add"
  contrib/subtree: add --unannotate option
  contrib/subtree: use %B for split Subject/Body
  t7900: remove test number comments
Merge branch 'mz/reset-misc' into pu

Various 'reset' optimizations and clean-ups, followed by a change
to allow "git reset" to work even on an unborn branch.

* mz/reset-misc: (22 commits)
  reset [--mixed]: use diff-based reset whether or not pathspec was given
  [SQUASH???] script portability fixes
  reset: allow reset on unborn branch
  reset $sha1 $pathspec: require $sha1 only to be treeish
  reset [--mixed] --quiet: don't refresh index
  reset.c: finish entire cmd_reset() whether or not pathspec is given
  reset [--mixed]: don't write index file twice
  reset.c: move lock, write and commit out of update_index_refresh()
  reset.c: move update_index_refresh() call out of read_from_tree()
  reset: avoid redundant error message
  reset --keep: only write index file once
  reset.c: replace switch by if-else
  reset.c: share call to die_if_unmerged_cache()
  [SQUASH???] style fixes
  reset.c: extract function for updating {ORIG,}HEAD
  reset.c: remove unnecessary variable 'i'
  [SQUASH???] style fix
  reset.c: extract function for parsing arguments
  reset: don't allow "git reset -- $pathspec" in bare repo
  reset.c: pass pathspec around instead of (prefix, argv) pair
  ...
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
### Stalled