git
8 years agosend-email: enable SSL level 1 debug output
John Keeping [Thu, 3 Dec 2015 21:47:18 +0000 (21:47 +0000)] 
send-email: enable SSL level 1 debug output

If a server's certificate isn't accepted by send-email, the output is:

Unable to initialize SMTP properly. Check config and use --smtp-debug.

but adding --smtp-debug=1 just produces the same output since we don't
get as far as talking SMTP.

Turning on SSL debug at level 1 gives:

DEBUG: .../IO/Socket/SSL.pm:1796: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
DEBUG: .../IO/Socket/SSL.pm:673: fatal SSL error: SSL connect attempt failed error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
DEBUG: .../IO/Socket/SSL.pm:1780: IO::Socket::IP configuration failed

IO::Socket::SSL defines level 1 debug as "print out errors from
IO::Socket::SSL and ciphers from Net::SSLeay".  In fact, it aliases
Net::SSLeay::trace which is defined to guarantee silence at level 0 and
only emit error messages at level 1, so let's enable it by default.

The modification of warnings is needed to avoid a warning about:

Name "IO::Socket::SSL::DEBUG" used only once: possible typo

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agol10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)
Jiang Xin [Fri, 11 Dec 2015 15:37:11 +0000 (23:37 +0800)] 
l10n: git.pot: v2.7.0 round 1 (66 new, 29 removed)

Generate po/git.pot from v2.7.0-rc0 for git v2.7.0 l10n round 1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
8 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Fri, 11 Dec 2015 15:33:45 +0000 (23:33 +0800)] 
Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
  l10n: fr.po: Fix typo
  l10n: fr.po: Fix typo

8 years agoident: keep a flag for bogus default_email
Jeff King [Thu, 10 Dec 2015 21:35:36 +0000 (16:35 -0500)] 
ident: keep a flag for bogus default_email

If we have to deduce the user's email address and can't come
up with something plausible for the hostname, we simply
write "(none)" or ".(none)" in the hostname.

Later, our strict-check is forced to use strstr to look for
this magic string. This is probably not a problem in
practice, but it's rather ugly. Let's keep an extra flag
that tells us the email is bogus, and check that instead.

We could get away with simply setting the global in
add_domainname(); it only gets called to write into
git_default_email. However, let's make the code a little
more obvious to future readers by actually passing a pointer
to our "bogus" flag down the call-chain.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoident: make xgetpwuid_self() a static local helper
Jeff King [Thu, 10 Dec 2015 21:33:05 +0000 (16:33 -0500)] 
ident: make xgetpwuid_self() a static local helper

This function is defined in wrapper.c, but nobody besides
ident.c uses it. And nobody is likely to in the future,
either, as anything that cares about the user's name should
be going through the ident code.

Moving it here is a cleanup of the global namespace, but it
will also enable further cleanups inside ident.c.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoGit 2.7-rc0 v2.7.0-rc0
Junio C Hamano [Thu, 10 Dec 2015 20:59:37 +0000 (12:59 -0800)] 
Git 2.7-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with maint
Junio C Hamano [Thu, 10 Dec 2015 20:45:17 +0000 (12:45 -0800)] 
Sync with maint

* maint:
  Documentation/git-update-index: add missing opts to synopsis

8 years agoUpdate release notes to 2.7
Junio C Hamano [Thu, 10 Dec 2015 20:43:52 +0000 (12:43 -0800)] 
Update release notes to 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'nd/doc-check-ref-format-typo'
Junio C Hamano [Thu, 10 Dec 2015 20:36:15 +0000 (12:36 -0800)] 
Merge branch 'nd/doc-check-ref-format-typo'

* nd/doc-check-ref-format-typo:
  git-check-ref-format.txt: typo, s/avoids/avoid/

8 years agoMerge branch 'bc/object-id'
Junio C Hamano [Thu, 10 Dec 2015 20:36:13 +0000 (12:36 -0800)] 
Merge branch 'bc/object-id'

More transition from "unsigned char[40]" to "struct object_id".

This needed a few merge fixups, but is mostly disentangled from other
topics.

* bc/object-id:
  remote: convert functions to struct object_id
  Remove get_object_hash.
  Convert struct object to object_id
  Add several uses of get_object_hash.
  object: introduce get_object_hash macro.
  ref_newer: convert to use struct object_id
  push_refs_with_export: convert to struct object_id
  get_remote_heads: convert to struct object_id
  parse_fetch: convert to use struct object_id
  add_sought_entry_mem: convert to struct object_id
  Convert struct ref to use object_id.
  sha1_file: introduce has_object_file helper.

8 years agoMerge branch 'dt/fsck-verify-pack-error'
Junio C Hamano [Thu, 10 Dec 2015 20:36:12 +0000 (12:36 -0800)] 
Merge branch 'dt/fsck-verify-pack-error'

The exit code of git-fsck didnot reflect some types of errors found
in packed objects, which has been corrected.

* dt/fsck-verify-pack-error:
  verify_pack: do not ignore return value of verification function

8 years agoMerge branch 'ls/travis-yaml'
Junio C Hamano [Thu, 10 Dec 2015 20:36:12 +0000 (12:36 -0800)] 
Merge branch 'ls/travis-yaml'

The necessary infrastructure to build topics using the free Travis
CI has been added. Developers forking from this topic (and enabling
Travis) can do their own builds, and we can turn on auto-builds for
git/git (including build-status for pull requests that people
open).

* ls/travis-yaml:
  Add Travis CI support

8 years agoDocumentation/git-update-index: add missing opts to synopsis
Christian Couder [Wed, 25 Nov 2015 09:30:02 +0000 (10:30 +0100)] 
Documentation/git-update-index: add missing opts to synopsis

Split index related options should appear in the 'SYNOPSIS'
section.

These options are already documented in the 'OPTIONS' section.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogit-p4: add option to keep empty commits
Lars Schneider [Tue, 8 Dec 2015 09:36:22 +0000 (10:36 +0100)] 
git-p4: add option to keep empty commits

A changelist that contains only excluded files due to a client spec was
imported as an empty commit. Fix that issue by ignoring these commits.
Add option "git-p4.keepEmptyCommits" to make the previous behavior
available.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Helped-by: Pete Harlan
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'ep/ident-with-getaddrinfo'
Junio C Hamano [Tue, 8 Dec 2015 22:14:50 +0000 (14:14 -0800)] 
Merge branch 'ep/ident-with-getaddrinfo'

A build without NO_IPv6 used to use gethostbyname() when guessing
user's hostname, instead of getaddrinfo() that is used in other
codepaths in such a build.

* ep/ident-with-getaddrinfo:
  ident.c: add support for IPv6

8 years agoMerge branch 'ls/test-must-fail-sigpipe'
Junio C Hamano [Tue, 8 Dec 2015 22:14:49 +0000 (14:14 -0800)] 
Merge branch 'ls/test-must-fail-sigpipe'

Fix some racy client/server tests by treating SIGPIPE the same as a
normal non-zero exit.

* ls/test-must-fail-sigpipe:
  add "ok=sigpipe" to test_must_fail and use it to fix flaky tests
  implement test_might_fail using a refactored test_must_fail

8 years agoMerge branch 'dt/refs-backend-pre-vtable'
Junio C Hamano [Tue, 8 Dec 2015 22:14:49 +0000 (14:14 -0800)] 
Merge branch 'dt/refs-backend-pre-vtable'

Code preparation for pluggable ref backends.

* dt/refs-backend-pre-vtable:
  refs: break out ref conflict checks
  files_log_ref_write: new function
  initdb: make safe_create_dir public
  refs: split filesystem-based refs code into a new file
  refs/refs-internal.h: new header file
  refname_is_safe(): improve docstring
  pack_if_possible_fn(): use ref_type() instead of is_per_worktree_ref()
  copy_msg(): rename to copy_reflog_msg()
  verify_refname_available(): new function
  verify_refname_available(): rename function

8 years agoSync with 2.6.4
Junio C Hamano [Tue, 8 Dec 2015 22:13:52 +0000 (14:13 -0800)] 
Sync with 2.6.4

8 years agoGit 2.6.4 v2.6.4
Junio C Hamano [Tue, 8 Dec 2015 22:07:30 +0000 (14:07 -0800)] 
Git 2.6.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'rs/status-detached-head-memcmp' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:11:32 +0000 (14:11 -0800)] 
Merge branch 'rs/status-detached-head-memcmp' into maint

Fix some string-matching corner cases when digging in the reflog for
"git status".

* rs/status-detached-head-memcmp:
  wt-status: correct and simplify check for detached HEAD

8 years agoMerge branch 'ad/sha1-update-chunked' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:05:03 +0000 (14:05 -0800)] 
Merge branch 'ad/sha1-update-chunked' into maint

Apple's common crypto implementation of SHA1_Update() does not take
more than 4GB at a time, and we now have a compile-time workaround
for it.

* ad/sha1-update-chunked:
  sha1: allow limiting the size of the data passed to SHA1_Update()
  sha1: provide another level of indirection for the SHA-1 functions

8 years agoMerge branch 'sg/bash-prompt-dirty-orphan' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:05:02 +0000 (14:05 -0800)] 
Merge branch 'sg/bash-prompt-dirty-orphan' into maint

Produce correct "dirty" marker for shell prompts, even when we
are on an orphan or an unborn branch.

* sg/bash-prompt-dirty-orphan:
  bash prompt: indicate dirty index even on orphan branches
  bash prompt: remove a redundant 'git diff' option
  bash prompt: test dirty index and worktree while on an orphan branch

8 years agoMerge branch 'jk/interpret-trailers-outside-a-repository' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:05:02 +0000 (14:05 -0800)] 
Merge branch 'jk/interpret-trailers-outside-a-repository' into maint

Allow "git interpret-trailers" to run outside of a Git repository.

* jk/interpret-trailers-outside-a-repository:
  interpret-trailers: allow running outside a repository

8 years agoMerge branch 'jk/rebase-no-autostash' into maint
Junio C Hamano [Tue, 8 Dec 2015 22:05:00 +0000 (14:05 -0800)] 
Merge branch 'jk/rebase-no-autostash' into maint

There was no way to defeat a configured rebase.autostash variable
from the command line, as "git rebase --no-autostash" was missing.

* jk/rebase-no-autostash:
  Documentation/git-rebase: fix --no-autostash formatting
  rebase: support --no-autostash

8 years agorevision.c: fix possible null pointer arithmetic
Stefan Naewe [Sat, 5 Dec 2015 15:27:24 +0000 (16:27 +0100)] 
revision.c: fix possible null pointer arithmetic

mark_tree_uninteresting() dereferences a tree pointer before
checking if the pointer is valid. Fix that by doing the check first.

Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agol10n: fr.po: Fix typo
Audric Schiltknecht [Fri, 4 Dec 2015 23:35:57 +0000 (18:35 -0500)] 
l10n: fr.po: Fix typo

Signed-off-by: Audric Schiltknecht <storm@chemicalstorm.org>
8 years agot3404: fix quoting of redirect for some versions of bash
Charles Bailey [Wed, 2 Dec 2015 20:50:07 +0000 (20:50 +0000)] 
t3404: fix quoting of redirect for some versions of bash

As CodingGuidelines says, some versions of bash errors out when
$variable substitution is used as the target for redirection without
being quoted (even though POSIX may not require such a quote).

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agogit-check-ref-format.txt: typo, s/avoids/avoid/
Nguyễn Thái Ngọc Duy [Fri, 4 Dec 2015 18:09:32 +0000 (19:09 +0100)] 
git-check-ref-format.txt: typo, s/avoids/avoid/

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agodocument submodule sync --recursive
Stefan Beller [Thu, 3 Dec 2015 20:41:02 +0000 (12:41 -0800)] 
document submodule sync --recursive

The git-submodule(1) is inconsistent. In the synopsis, it says:

       git submodule [--quiet] sync [--recursive] [--] [<path>...]

The description of the sync does not mention --recursive, and the
description of --recursive says that it is only available for foreach,
update and status.

The option was introduced (82f49f294c, Teach --recursive to submodule
sync, 2012-10-26) a while ago, so let's document it, too.

Reported-by: Per Cederqvist <cederp@opera.com>
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agopush: follow the "last one wins" convention for --recurse-submodules
Mike Crowe [Thu, 3 Dec 2015 13:10:35 +0000 (13:10 +0000)] 
push: follow the "last one wins" convention for --recurse-submodules

Use the "last one wins" convention for --recurse-submodules rather
than treating conflicting options as an error.

Also, fix the declaration of the file-scope recurse_submodules
global variable to put it on a separate line.

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agopush: test that --recurse-submodules on command line overrides config
Mike Crowe [Thu, 3 Dec 2015 13:10:34 +0000 (13:10 +0000)] 
push: test that --recurse-submodules on command line overrides config

t5531 only checked that the push.recurseSubmodules config option was
overridden by passing --recurse-submodules=check on the command
line.  Add new tests for overriding with --recurse-submodules=no,
--no-recurse-submodules and --recurse-submodules=push too.

Also correct minor typo in test commit message.

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoSync with maint
Junio C Hamano [Fri, 4 Dec 2015 19:39:56 +0000 (11:39 -0800)] 
Sync with maint

* maint:
  Prepare for 2.6.4

8 years agoPrepare for 2.6.4
Junio C Hamano [Fri, 4 Dec 2015 19:39:19 +0000 (11:39 -0800)] 
Prepare for 2.6.4

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'da/difftool' into maint
Junio C Hamano [Fri, 4 Dec 2015 19:34:24 +0000 (11:34 -0800)] 
Merge branch 'da/difftool' into maint

The code to prepare the working tree side of temporary directory
for the "dir-diff" feature forgot that symbolic links need not be
copied (or symlinked) to the temporary area, as the code already
special cases and overwrites them.  Besides, it was wrong to try
computing the object name of the target of symbolic link, which may
not even exist or may be a directory.

* da/difftool:
  difftool: ignore symbolic links in use_wt_file

8 years agoMerge branch 'dk/gc-idx-wo-pack' into maint
Junio C Hamano [Fri, 4 Dec 2015 19:33:07 +0000 (11:33 -0800)] 
Merge branch 'dk/gc-idx-wo-pack' into maint

Having a leftover .idx file without corresponding .pack file in
the repository hurts performance; "git gc" learned to prune them.

We may want to do the same for .bitmap (and notice but not prune
.keep) without corresponding .pack, but that can be a separate
topic.

* dk/gc-idx-wo-pack:
  gc: remove garbage .idx files from pack dir
  t5304: test cleaning pack garbage
  prepare_packed_git(): refactor garbage reporting in pack directory

8 years agoRelNotes update for 2.7
Junio C Hamano [Fri, 4 Dec 2015 19:31:28 +0000 (11:31 -0800)] 
RelNotes update for 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 years agoMerge branch 'sg/bash-prompt-dirty-orphan'
Junio C Hamano [Fri, 4 Dec 2015 19:19:12 +0000 (11:19 -0800)] 
Merge branch 'sg/bash-prompt-dirty-orphan'

Produce correct "dirty" marker for shell prompts, even when we
are on an orphan or an unborn branch.

* sg/bash-prompt-dirty-orphan:
  bash prompt: indicate dirty index even on orphan branches
  bash prompt: remove a redundant 'git diff' option
  bash prompt: test dirty index and worktree while on an orphan branch

8 years agoMerge branch 'np/credential-cache-sighup'
Junio C Hamano [Fri, 4 Dec 2015 19:19:11 +0000 (11:19 -0800)] 
Merge branch 'np/credential-cache-sighup'

Workaround for using credential-cache with emacs.

* np/credential-cache-sighup:
  credential-cache: new option to ignore sighup

8 years agoMerge branch 'rs/parseopt-short-help'
Junio C Hamano [Fri, 4 Dec 2015 19:19:11 +0000 (11:19 -0800)] 
Merge branch 'rs/parseopt-short-help'

Make "-h" command line option work more consistently in all commands.

* rs/parseopt-short-help:
  show-ref: stop using PARSE_OPT_NO_INTERNAL_HELP
  grep: stop using PARSE_OPT_NO_INTERNAL_HELP
  parse-options: allow -h as a short option
  parse-options: inline parse_options_usage() at its only remaining caller
  parse-options: deduplicate parse_options_usage() calls

8 years agoMerge branch 'jk/send-email-complete-aliases'
Junio C Hamano [Fri, 4 Dec 2015 19:19:10 +0000 (11:19 -0800)] 
Merge branch 'jk/send-email-complete-aliases'

Teach send-email to dump mail aliases, so that we can do tab completion
on the command line.

* jk/send-email-complete-aliases:
  completion: add support for completing email aliases
  sendemail: teach git-send-email to dump alias names

8 years agoMerge branch 'jk/filter-branch-no-index'
Junio C Hamano [Fri, 4 Dec 2015 19:19:10 +0000 (11:19 -0800)] 
Merge branch 'jk/filter-branch-no-index'

Speed up filter-branch for cases where we only care about rewriting
commits, not tree data.

* jk/filter-branch-no-index:
  filter-branch: skip index read/write when possible

8 years agoMerge branch 'ad/sha1-update-chunked'
Junio C Hamano [Fri, 4 Dec 2015 19:19:09 +0000 (11:19 -0800)] 
Merge branch 'ad/sha1-update-chunked'

Apple's common crypto implementation of SHA1_Update() does not take
more than 4GB at a time, and we now have a compile-time workaround
for it.

* ad/sha1-update-chunked:
  sha1: allow limiting the size of the data passed to SHA1_Update()
  sha1: provide another level of indirection for the SHA-1 functions

8 years agoMerge branch 'mk/blame-first-parent'
Jeff King [Tue, 1 Dec 2015 23:54:58 +0000 (18:54 -0500)] 
Merge branch 'mk/blame-first-parent'

Regression fix for a topic already in master.

* mk/blame-first-parent:
  blame: fix object casting regression

8 years agoMerge branch 'jk/send-email-ca-path'
Jeff King [Tue, 1 Dec 2015 23:54:54 +0000 (18:54 -0500)] 
Merge branch 'jk/send-email-ca-path'

Use a safer behavior when we hit errors verifying remote certificates.

* jk/send-email-ca-path:
  send-email: die if CA path doesn't exist

8 years agoMerge branch 'rs/fsck-nul-header'
Jeff King [Tue, 1 Dec 2015 23:54:47 +0000 (18:54 -0500)] 
Merge branch 'rs/fsck-nul-header'

Fsck did not correctly detect a NUL-truncated header in a tag.

* rs/fsck-nul-header:
  fsck: treat a NUL in a tag header as an error
  t1450: add tests for NUL in headers of commits and tags

8 years agoMerge branch 'ls/p4-test-timeouts'
Jeff King [Tue, 1 Dec 2015 23:54:40 +0000 (18:54 -0500)] 
Merge branch 'ls/p4-test-timeouts'

Work around some test flakiness with p4d.

* ls/p4-test-timeouts:
  git-p4: add trap to kill p4d on test exit
  git-p4: add p4d timeout in tests
  git-p4: retry kill/cleanup operations in tests with timeout

8 years agoMerge branch 'js/test-modernize-t9300'
Jeff King [Tue, 1 Dec 2015 23:54:37 +0000 (18:54 -0500)] 
Merge branch 'js/test-modernize-t9300'

Clean up style in an ancient test.

* js/test-modernize-t9300:
  modernize t9300: move test preparations into test_expect_success
  modernize t9300: mark here-doc words to ignore tab indentation
  modernize t9300: use test_when_finished for clean-up
  modernize t9300: wrap lines after &&
  modernize t9300: use test_must_be_empty
  modernize t9300: use test_must_fail
  modernize t9300: single-quote placement and indentation

8 years agoMerge branch 'jk/send-email-expand-paths'
Jeff King [Tue, 1 Dec 2015 23:54:34 +0000 (18:54 -0500)] 
Merge branch 'jk/send-email-expand-paths'

Expand paths in some send-email config variables.

* jk/send-email-expand-paths:
  send-email: expand path in sendemail.smtpsslcertpath config

8 years agoMerge branch 'dg/subtree-test-cleanup'
Jeff King [Tue, 1 Dec 2015 23:54:31 +0000 (18:54 -0500)] 
Merge branch 'dg/subtree-test-cleanup'

Test cleanups for the subtree project.

* dg/subtree-test-cleanup:
  contrib/subtree: Handle '--prefix' argument with a slash appended
  contrib/subtree: Make each test self-contained
  contrib/subtree: Add split tests
  contrib/subtree: Add merge tests
  contrib/subtree: Add tests for subtree add
  contrib/subtree: Add test for missing subtree
  contrib/subtree: Clean and refactor test code

8 years agoMerge branch 'dt/http-range'
Jeff King [Tue, 1 Dec 2015 23:54:28 +0000 (18:54 -0500)] 
Merge branch 'dt/http-range'

Portability fix for a topic already in 'master'.

* dt/http-range:
  http: fix some printf format warnings

8 years agoverify_pack: do not ignore return value of verification function
David Turner [Mon, 30 Nov 2015 22:47:42 +0000 (17:47 -0500)] 
verify_pack: do not ignore return value of verification function

In verify_pack, a caller-supplied verification function is called.
The function returns an int.  If that return value is non-zero,
verify_pack should fail.

The only caller of verify_pack is in builtin/fsck.c, whose verify_fn
returns a meaningful error code (which was then ignored).  Now, fsck
might return a different error code (with more detail).  This would
happen in the unlikely event that a commit or tree that is a valid git
object but not a valid instance of its type gets into a pack.

Signed-off-by: David Turner <dturner@twopensource.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoMake error message after failing commit_lock_file() less confusing
SZEDER Gábor [Mon, 30 Nov 2015 11:40:53 +0000 (12:40 +0100)] 
Make error message after failing commit_lock_file() less confusing

The error message after a failing commit_lock_file() call sometimes
looks like this, causing confusion:

  $ git remote add remote git@server.com/repo.git
  error: could not commit config file .git/config
  # Huh?!
  # I didn't want to commit anything, especially not my config file!

While in the narrow context of the lockfile module using the verb
'commit' in the error message makes perfect sense, in the broader
context of git the word 'commit' already has a very specific meaning,
hence the confusion.

Reword these error messages to say "could not write" instead of "could
not commit".

While at it, include strerror in the error messages after writing the
config file or the credential store fails to provide some information
about the cause of the failure, and update the style of the error
message after writing the reflog fails to match surrounding error
messages (i.e. no '' around the pathname and no () around the error
description).

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoMerge branch 'maint'
Jeff King [Tue, 1 Dec 2015 22:32:38 +0000 (17:32 -0500)] 
Merge branch 'maint'

* maint:
  http: treat config options sslCAPath and sslCAInfo as paths
  Documentation/diff: give --word-diff-regex=. example
  filter-branch: deal with object name vs. pathname ambiguity in tree-filter
  check-ignore: correct documentation about output
  git-p4: clean up after p4 submit failure
  git-p4: work with a detached head
  git-p4: add option to system() to return subshell status
  git-p4: add failing test for submit from detached head
  remote-http(s): support SOCKS proxies
  t5813: avoid creating urls that break on cygwin
  Escape Git's exec path in contrib/rerere-train.sh script
  allow hooks to ignore their standard input stream
  rebase-i-exec: Allow space in SHELL_PATH
  Documentation: make environment variable formatting more consistent

8 years agoMerge branch 'eg/p4-submit-catch-failure' into maint
Jeff King [Tue, 1 Dec 2015 22:24:20 +0000 (17:24 -0500)] 
Merge branch 'eg/p4-submit-catch-failure' into maint

Just like the working tree is cleaned up when the user cancelled
submission in P4Submit.applyCommit(), clean up the mess if "p4
submit" fails.

* eg/p4-submit-catch-failure:
  git-p4: clean up after p4 submit failure

8 years agoMerge branch 'dk/check-ignore-docs' into maint
Jeff King [Tue, 1 Dec 2015 22:21:31 +0000 (17:21 -0500)] 
Merge branch 'dk/check-ignore-docs' into maint

Documentation clarification for "check-ignore" without "--verbose".

* dk/check-ignore-docs:
  check-ignore: correct documentation about output

8 years agoMerge branch 'ld/p4-detached-head' into maint
Jeff King [Tue, 1 Dec 2015 22:21:29 +0000 (17:21 -0500)] 
Merge branch 'ld/p4-detached-head' into maint

Make git-p4 work on a detached head.

* ld/p4-detached-head:
  git-p4: work with a detached head
  git-p4: add option to system() to return subshell status
  git-p4: add failing test for submit from detached head

8 years agoMerge branch 'sg/filter-branch-dwim-ambiguity' into maint
Jeff King [Tue, 1 Dec 2015 22:21:17 +0000 (17:21 -0500)] 
Merge branch 'sg/filter-branch-dwim-ambiguity' into maint

Fix for a corner case in filter-branch.

* sg/filter-branch-dwim-ambiguity:
  filter-branch: deal with object name vs. pathname ambiguity in tree-filter

8 years agoMerge branch 'mg/doc-word-diff-example' into maint
Jeff King [Tue, 1 Dec 2015 22:21:11 +0000 (17:21 -0500)] 
Merge branch 'mg/doc-word-diff-example' into maint

* mg/doc-word-diff-example:
  Documentation/diff: give --word-diff-regex=. example

8 years agoMerge branch 'cb/ssl-config-pathnames' into maint
Jeff King [Tue, 1 Dec 2015 22:21:01 +0000 (17:21 -0500)] 
Merge branch 'cb/ssl-config-pathnames' into maint

Allow tilde-expansion in some http config variables.

* cb/ssl-config-pathnames:
  http: treat config options sslCAPath and sslCAInfo as paths

8 years agoMerge branch 'dk/t5813-unc-paths' into maint
Jeff King [Tue, 1 Dec 2015 22:20:52 +0000 (17:20 -0500)] 
Merge branch 'dk/t5813-unc-paths' into maint

Test portability fix for a topic in v2.6.1.

* dk/t5813-unc-paths:
  t5813: avoid creating urls that break on cygwin

8 years agoMerge branch 'dk/rerere-train-quoting' into maint
Jeff King [Tue, 1 Dec 2015 22:20:46 +0000 (17:20 -0500)] 
Merge branch 'dk/rerere-train-quoting' into maint

Fix shell quoting in contrib script.

* dk/rerere-train-quoting:
  Escape Git's exec path in contrib/rerere-train.sh script

8 years agoMerge branch 'cb/hook-sigpipe' into maint
Jeff King [Tue, 1 Dec 2015 22:19:52 +0000 (17:19 -0500)] 
Merge branch 'cb/hook-sigpipe' into maint

We now consistently allow all hooks to ignore their standard input,
rather than having git complain of SIGPIPE.

* cb/hook-sigpipe:
  allow hooks to ignore their standard input stream

8 years agoMerge branch 'fm/shell-path-whitespace' into maint
Jeff King [Tue, 1 Dec 2015 22:19:37 +0000 (17:19 -0500)] 
Merge branch 'fm/shell-path-whitespace' into maint

Portability fix for Windows, which may rewrite $SHELL variable using
non-POSIX paths.

* fm/shell-path-whitespace:
  rebase-i-exec: Allow space in SHELL_PATH

8 years agoMerge branch 'ar/doc-env-variable-format' into maint
Jeff King [Tue, 1 Dec 2015 22:19:33 +0000 (17:19 -0500)] 
Merge branch 'ar/doc-env-variable-format' into maint

Minor documentation fixup.

* ar/doc-env-variable-format:
  Documentation: make environment variable formatting more consistent

8 years agoMerge branch 'pt/http-socks-proxy' into maint
Jeff King [Tue, 1 Dec 2015 22:19:12 +0000 (17:19 -0500)] 
Merge branch 'pt/http-socks-proxy' into maint

Add support for talking http/https over socks proxy.

* pt/http-socks-proxy:
  remote-http(s): support SOCKS proxies

8 years agoMerge branch 'rc/configure-use-libs-when-checking-a-lib' into maint
Jeff King [Tue, 1 Dec 2015 22:19:06 +0000 (17:19 -0500)] 
Merge branch 'rc/configure-use-libs-when-checking-a-lib' into maint

The "configure" script did not test for -lpthread correctly, which
upset some linkers.

* rc/configure-use-libs-when-checking-a-lib:
  configure.ac: use $LIBS not $CFLAGS when testing -lpthread

8 years agowt-status: correct and simplify check for detached HEAD
René Scharfe [Wed, 25 Nov 2015 14:10:18 +0000 (15:10 +0100)] 
wt-status: correct and simplify check for detached HEAD

If a branch name is longer than four characters then memcmp() reads over
the end of the static string "HEAD".  This causes the following test
failures with AddressSanitizer:

t3203-branch-output.sh                           (Wstat: 256 Tests: 18 Failed: 4)
  Failed tests:  12, 15-17
  Non-zero exit status: 1
t3412-rebase-root.sh                             (Wstat: 256 Tests: 31 Failed: 3)
  Failed tests:  28-29, 31
  Non-zero exit status: 1
t3507-cherry-pick-conflict.sh                    (Wstat: 256 Tests: 31 Failed: 4)
  Failed tests:  14, 29-31
  Non-zero exit status: 1
t3510-cherry-pick-sequence.sh                    (Wstat: 256 Tests: 39 Failed: 14)
  Failed tests:  17, 22-26, 28-30, 34-35, 37-39
  Non-zero exit status: 1
t3420-rebase-autostash.sh                        (Wstat: 256 Tests: 28 Failed: 4)
  Failed tests:  24-27
  Non-zero exit status: 1
t3404-rebase-interactive.sh                      (Wstat: 256 Tests: 91 Failed: 57)
  Failed tests:  17, 19, 21-42, 44, 46-74, 77, 81-82
  Non-zero exit status: 1
t3900-i18n-commit.sh                             (Wstat: 256 Tests: 34 Failed: 1)
  Failed test:  34
  Non-zero exit status: 1
t5407-post-rewrite-hook.sh                       (Wstat: 256 Tests: 14 Failed: 6)
  Failed tests:  9-14
  Non-zero exit status: 1
t7001-mv.sh                                      (Wstat: 256 Tests: 46 Failed: 5)
  Failed tests:  39-43
  Non-zero exit status: 1
t7509-commit.sh                                  (Wstat: 256 Tests: 12 Failed: 2)
  Failed tests:  11-12
  Non-zero exit status: 1
t7512-status-help.sh                             (Wstat: 256 Tests: 39 Failed: 35)
  Failed tests:  5-39
  Non-zero exit status: 1
t6030-bisect-porcelain.sh                        (Wstat: 256 Tests: 70 Failed: 1)
  Failed test:  13
  Non-zero exit status: 1

And if a branch is named "H", "HE", or "HEA" then the current if clause
erroneously considers it as matching "HEAD" because it only compares
up to the end of the branch name.

Fix that by doing the comparison using strcmp() and only after the
branch name is extracted.  This way neither too less nor too many
characters are checked.  While at it call strchrnul() to find the end
of the branch name instead of open-coding it.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoident.c: add support for IPv6
Elia Pinto [Fri, 27 Nov 2015 14:08:27 +0000 (14:08 +0000)] 
ident.c: add support for IPv6

Add IPv6 support by implementing name resolution with the
protocol agnostic getaddrinfo(3) API. The old gethostbyname(3)
code is still available when git is compiled with NO_IPV6.

Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
Helped-by: Jeff King <peff@peff.net>
Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoAdd Travis CI support
Lars Schneider [Fri, 27 Nov 2015 09:23:27 +0000 (10:23 +0100)] 
Add Travis CI support

The tests are currently executed on "Ubuntu 12.04 LTS Server Edition
64 bit" and on "OS X Mavericks" using gcc and clang.

Perforce and Git-LFS are installed and therefore available for the
respective tests.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoadd "ok=sigpipe" to test_must_fail and use it to fix flaky tests
Lars Schneider [Fri, 27 Nov 2015 09:15:14 +0000 (10:15 +0100)] 
add "ok=sigpipe" to test_must_fail and use it to fix flaky tests

t5516 "75 - deny fetch unreachable SHA1, allowtipsha1inwant=true" is
flaky in the following case:
1. remote upload-pack finds out "not our ref"
2. remote sends a response and closes the pipe
3. fetch-pack still tries to write commands to the remote upload-pack
4. write call in wrapper.c dies with SIGPIPE

The test is flaky because the sending fetch-pack may or may
not have finished writing its output by step (3). If it did,
then we see a closed pipe on the next read() call. If it
didn't, then we get the SIGPIPE from step (4) above. Both
are fine, but the latter fools test_must_fail.

t5504 "9 - push with transfer.fsckobjects" is flaky, too, and returns
SIGPIPE once in a while. I had to remove the final "To dst..." output
check because there is no output if the process dies with SIGPIPE.

Accept such a death-with-sigpipe also as OK when we are expecting a
failure.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoimplement test_might_fail using a refactored test_must_fail
Lars Schneider [Fri, 27 Nov 2015 09:15:13 +0000 (10:15 +0100)] 
implement test_might_fail using a refactored test_must_fail

Add an (optional) first parameter "ok=<special case>" to test_must_fail
and return success for "<special case>". Add "success" as
"<special case>" and use it to implement "test_might_fail". This removes
redundancies in test-lib-function.sh.

You can pass multiple <special case> arguments divided by comma (e.g.
"test_must_fail ok=success,something")

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoMerge branch 'fp/subtree-todo-update'
Jeff King [Wed, 25 Nov 2015 00:06:54 +0000 (19:06 -0500)] 
Merge branch 'fp/subtree-todo-update'

Cross completed task off of subtree project's todo list.

* fp/subtree-todo-update:
  contrib/subtree: remove "push" command from the "todo" file

8 years agoMerge branch 'rc/configure-use-libs-when-checking-a-lib'
Jeff King [Wed, 25 Nov 2015 00:06:33 +0000 (19:06 -0500)] 
Merge branch 'rc/configure-use-libs-when-checking-a-lib'

The "configure" script did not test for -lpthread correctly, which
upset some linkers.

* rc/configure-use-libs-when-checking-a-lib:
  configure.ac: use $LIBS not $CFLAGS when testing -lpthread

8 years agoMerge branch 'maint'
Jeff King [Wed, 25 Nov 2015 00:04:41 +0000 (19:04 -0500)] 
Merge branch 'maint'

* maint:
  Documentation/git-update-index: add missing opts to synopsys

8 years agohttp: treat config options sslCAPath and sslCAInfo as paths
Charles Bailey [Mon, 23 Nov 2015 12:02:40 +0000 (12:02 +0000)] 
http: treat config options sslCAPath and sslCAInfo as paths

This enables ~ and ~user expansion for these config options.

Signed-off-by: Charles Bailey <cbailey32@bloomberg.net>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoDocumentation/diff: give --word-diff-regex=. example
Michael J Gruber [Fri, 20 Nov 2015 13:36:14 +0000 (14:36 +0100)] 
Documentation/diff: give --word-diff-regex=. example

It's just so useful.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Jeff King <peff@peff.net>
8 years agofilter-branch: deal with object name vs. pathname ambiguity in tree-filter
SZEDER Gábor [Mon, 23 Nov 2015 12:23:16 +0000 (13:23 +0100)] 
filter-branch: deal with object name vs. pathname ambiguity in tree-filter

'git filter-branch' fails complaining about an ambiguous argument, if
a tree-filter renames a path and the new pathname happens to match an
existing object name.

After the tree-filter has been applied, 'git filter-branch' looks for
changed paths by running:

  git diff-index -r --name-only --ignore-submodules $commit

which then, because of the lack of disambiguating double-dash, can't
decide whether to treat '$commit' as revision or path and errors out.

Add that disambiguating double-dash after 'git diff-index's revision
argument to make sure that '$commit' is interpreted as a revision.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agosend-email: die if CA path doesn't exist
John Keeping [Tue, 24 Nov 2015 23:31:40 +0000 (23:31 +0000)] 
send-email: die if CA path doesn't exist

If the CA path isn't found it's most likely to indicate a
misconfiguration, in which case accepting any certificate is unlikely to
be the correct thing to do.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Jeff King <peff@peff.net>
8 years agocheck-ignore: correct documentation about output
Dennis Kaarsemaker [Fri, 20 Nov 2015 20:30:48 +0000 (21:30 +0100)] 
check-ignore: correct documentation about output

By default git check-ignore shows only the filenames that will be
ignored, not the pattern that causes their exclusion. Instead of moving
the partial exclude pattern precendence information to the -v option
where it belongs, link to gitignore(5) which describes this more
thoroughly.

Signed-off-by: Dennis Kaarsemaker <dennis@kaarsemaker.net>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoblame: fix object casting regression
Jeff King [Tue, 17 Nov 2015 23:22:37 +0000 (18:22 -0500)] 
blame: fix object casting regression

Commit 1b0d400 refactored the prepare_final() function so
that it could be reused in multiple places. Originally, the
loop had two outputs: a commit to stuff into sb->final, and
the name of the commit from the rev->pending array.

After the refactor, that loop is put in its own function
with a single return value: the object_array_entry from the
rev->pending array. This contains both the name and the object,
but with one important difference: the object is the
_original_ object found by the revision parser, not the
dereferenced commit. If one feeds a tag to "git blame", we
end up casting the tag object to a "struct commit", which
causes a segfault.

Instead, let's return the commit (properly casted) directly
from the function, and take the "name" as an optional
out-parameter. This does the right thing, and actually
simplifies the callers, who no longer need to cast or
dereference the object_array_entry themselves.

[test case by Max Kirillov <max@max630.net>]

Signed-off-by: Jeff King <peff@peff.net>
8 years agoDocumentation/git-update-index: add missing opts to synopsys
Christian Couder [Tue, 24 Nov 2015 11:55:07 +0000 (12:55 +0100)] 
Documentation/git-update-index: add missing opts to synopsys

Untracked cache related options should appear in the synopsis.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Jeff King <peff@peff.net>
8 years agogit-p4: clean up after p4 submit failure
GIRARD Etienne [Tue, 24 Nov 2015 07:43:59 +0000 (07:43 +0000)] 
git-p4: clean up after p4 submit failure

When "p4 submit" command fails in P4Submit.applyCommit, the
workspace is left with the changes.  We already have code to revert
the changes to the workspace when the user decides to cancel
submission by aborting the editor that edits the change description,
and we should treat the "p4 submit" failure the same way.

Clean the workspace if p4_write_pipe raised SystemExit, so that the
user don't have to do it themselves.

Signed-off-by: GIRARD Etienne <egirard@murex.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Jeff King <peff@peff.net>
8 years agobash prompt: indicate dirty index even on orphan branches
SZEDER Gábor [Sat, 21 Nov 2015 11:30:09 +0000 (12:30 +0100)] 
bash prompt: indicate dirty index even on orphan branches

__git_ps1() doesn't indicate dirty index while on an orphan branch.

To check the dirtiness of the index, __git_ps1() runs 'git diff-index
--cached ... HEAD', which doesn't work on an orphan branch,
because HEAD doesn't point to a valid commit.

Run 'git diff ... --cached' instead, as it does the right thing both
on valid and invalid HEAD, i.e. compares the index to the existing
HEAD in the former case and to the empty tree in the latter.  This
fixes the two failing tests added in the first commit of this series.

The dirtiness of the worktree is already checked with 'git diff' and
is displayed correctly even on an orphan branch.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agobash prompt: remove a redundant 'git diff' option
SZEDER Gábor [Sat, 21 Nov 2015 14:46:40 +0000 (15:46 +0100)] 
bash prompt: remove a redundant 'git diff' option

To get the dirty state indicator __git_ps1() runs 'git diff' with
'--quiet --exit-code' options.  '--quiet' already implies
'--exit-code', so the latter is unnecessary and can be removed.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agobash prompt: test dirty index and worktree while on an orphan branch
SZEDER Gábor [Sat, 21 Nov 2015 11:30:07 +0000 (12:30 +0100)] 
bash prompt: test dirty index and worktree while on an orphan branch

There is only a single test exercising the dirty state indicator on an
orphan branch, and in that test neither the index nor the worktree are
dirty.

Add two failing tests to check the dirty state indicator while either
the index is dirty or while both the index and the worktree are dirty
on an orphan branch, and to show that the dirtiness of the index is
not displayed in these cases (the fourth combination, i.e. clean index
and dirty worktree are impossible on an orphan branch).  Update the
existing dirty state indicator on clean orphan branch test to match
the style of the two new tests, most importantly to use 'git checkout
--orphan' instead of cd-ing into a repository that just happens to be
empty and clean.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agogit-p4: work with a detached head
Luke Diamand [Sat, 21 Nov 2015 09:54:41 +0000 (09:54 +0000)] 
git-p4: work with a detached head

When submitting, git-p4 finds the current branch in
order to know if it is allowed to submit (configuration
"git-p4.allowSubmit").

On a detached head, detecting the branch would fail, and
git-p4 would report a cryptic error.

This change teaches git-p4 to recognise a detached head and
submit successfully.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Jeff King <peff@peff.net>
8 years agogit-p4: add option to system() to return subshell status
Luke Diamand [Sat, 21 Nov 2015 09:54:40 +0000 (09:54 +0000)] 
git-p4: add option to system() to return subshell status

Add an optional parameter ignore_error to the git-p4 system()
function. If used, it will return the subshell exit status
rather than throwing an exception.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Jeff King <peff@peff.net>
8 years agogit-p4: add failing test for submit from detached head
Luke Diamand [Sat, 21 Nov 2015 09:54:39 +0000 (09:54 +0000)] 
git-p4: add failing test for submit from detached head

git-p4 can't submit from a detached head. This test case
demonstrates the problem.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Jeff King <peff@peff.net>
8 years agopush: add recurseSubmodules config option
Mike Crowe [Tue, 17 Nov 2015 11:05:56 +0000 (11:05 +0000)] 
push: add recurseSubmodules config option

The --recurse-submodules command line parameter has existed for some
time but it has no config file equivalent.

Following the style of the corresponding parameter for git fetch, let's
invent push.recurseSubmodules to provide a default for this
parameter. This also requires the addition of --recurse-submodules=no to
allow the configuration to be overridden on the command line when
required.

The most straightforward way to implement this appears to be to make
push use code in submodule-config in a similar way to fetch.

Signed-off-by: Mike Crowe <mac@mcrowe.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agocredential-cache: new option to ignore sighup
Noam Postavsky [Tue, 10 Nov 2015 00:26:29 +0000 (19:26 -0500)] 
credential-cache: new option to ignore sighup

Introduce new option "credentialCache.ignoreSIGHUP" which stops
git-credential-cache--daemon from quitting on SIGHUP.  This is useful
when "git push" is started from Emacs, because all child
processes (including the daemon) will receive a SIGHUP when "git push"
exits.

Signed-off-by: Noam Postavsky <npostavs@users.sourceforge.net>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoshow-ref: stop using PARSE_OPT_NO_INTERNAL_HELP
René Scharfe [Tue, 17 Nov 2015 10:26:05 +0000 (11:26 +0100)] 
show-ref: stop using PARSE_OPT_NO_INTERNAL_HELP

The flag PARSE_OPT_NO_INTERNAL_HELP is set to allow overriding the
option -h, except when it's the only one given.  This is the default
behavior now, so remove the flag and the hand-rolled --help-all
handling.  The internal --help-all handler now actually shows hidden
options, i.e. -h in this case.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agofsck: treat a NUL in a tag header as an error
René Scharfe [Thu, 19 Nov 2015 16:25:31 +0000 (17:25 +0100)] 
fsck: treat a NUL in a tag header as an error

We check the return value of verify_header() for commits already, so do
the same for tags as well.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agogrep: stop using PARSE_OPT_NO_INTERNAL_HELP
René Scharfe [Tue, 17 Nov 2015 10:25:53 +0000 (11:25 +0100)] 
grep: stop using PARSE_OPT_NO_INTERNAL_HELP

The flag PARSE_OPT_NO_INTERNAL_HELP is set to allow overriding the
option -h, except when it's the only one given.  This is the default
behavior now, so remove the flag and the hand-rolled --help-all
handling.  The internal --help-all handler now actually shows hidden
options, i.e. --debug in this case.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agot1450: add tests for NUL in headers of commits and tags
René Scharfe [Thu, 19 Nov 2015 16:20:14 +0000 (17:20 +0100)] 
t1450: add tests for NUL in headers of commits and tags

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoparse-options: allow -h as a short option
René Scharfe [Tue, 17 Nov 2015 10:25:38 +0000 (11:25 +0100)] 
parse-options: allow -h as a short option

Let callers provide their own handler for the short option -h even
without the flag PARSE_OPT_NO_INTERNAL_HELP, but call the internal
handler (showing usage information) if that is the only parameter.
Implement the first part by checking for -h only if parse_short_opt()
can't find it and returns -2.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoparse-options: inline parse_options_usage() at its only remaining caller
René Scharfe [Tue, 17 Nov 2015 10:25:27 +0000 (11:25 +0100)] 
parse-options: inline parse_options_usage() at its only remaining caller

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agoparse-options: deduplicate parse_options_usage() calls
René Scharfe [Tue, 17 Nov 2015 10:25:14 +0000 (11:25 +0100)] 
parse-options: deduplicate parse_options_usage() calls

Avoid long lines and repeating parse_options_usage() calls with their
duplicate parameters by providing labels with speaking names to jump to.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
8 years agocompletion: add support for completing email aliases
Jacob Keller [Thu, 19 Nov 2015 22:52:12 +0000 (14:52 -0800)] 
completion: add support for completing email aliases

Using the new --dump-aliases option from git-send-email, add completion
for --to, --cc, --bcc, and --from with the available configured aliases.

Signed-off-by: Jacob Keller <jacob.keller@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agogit-p4: add trap to kill p4d on test exit
Lars Schneider [Thu, 19 Nov 2015 08:58:10 +0000 (09:58 +0100)] 
git-p4: add trap to kill p4d on test exit

Sometimes the "prove" test runner hangs on test exit because p4d is
still running. Add a trap to always kill "p4d" on test exit.

You can reproduce the problem by commenting "P4D_TIMEOUT" in
"lib-git-p4.sh" and running "prove ./t9800-git-p4-basic.sh".

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
8 years agomodernize t9300: move test preparations into test_expect_success
Johannes Sixt [Thu, 19 Nov 2015 19:09:49 +0000 (20:09 +0100)] 
modernize t9300: move test preparations into test_expect_success

Our usual style these days is to execute everything inside
test_expect_success. Make it so.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Jeff King <peff@peff.net>