gitweb.git
Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge 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

Merge branch 'eg/p4-submit-catch-failure' into maintJeff 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

Merge branch 'dk/check-ignore-docs' into maintJeff 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

Merge branch 'ld/p4-detached-head' into maintJeff 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

Merge branch 'sg/filter-branch-dwim-ambiguity' into... 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

Merge branch 'mg/doc-word-diff-example' into maintJeff 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

Merge branch 'cb/ssl-config-pathnames' into maintJeff 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

Merge branch 'dk/t5813-unc-paths' into maintJeff 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

Merge branch 'dk/rerere-train-quoting' into maintJeff 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

Merge branch 'cb/hook-sigpipe' into maintJeff 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

Merge branch 'fm/shell-path-whitespace' into maintJeff 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

Merge branch 'ar/doc-env-variable-format' into maintJeff 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

Merge branch 'pt/http-socks-proxy' into maintJeff 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

Merge branch 'rc/configure-use-libs-when-checking-a... 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

Merge 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

Merge branch 'rc/configure-use-libs-when-checking-a... 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

Merge 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

http: treat config options sslCAPath and sslCAInfo... 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>

Documentation/diff: give --word-diff-regex=. exampleMichael 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>

filter-branch: deal with object name vs. pathname ambig... 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>

send-email: die if CA path doesn't existJohn 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>

check-ignore: correct documentation about outputDennis 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>

blame: fix object casting regressionJeff 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>

Documentation/git-update-index: add missing opts to... 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>

git-p4: clean up after p4 submit failureGIRARD 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>

git-p4: work with a detached headLuke 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>

git-p4: add option to system() to return subshell statusLuke 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>

git-p4: add failing test for submit from detached headLuke 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>

fsck: treat a NUL in a tag header as an errorRené 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>

t1450: add tests for NUL in headers of commits and... 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>

git-p4: add trap to kill p4d on test exitLars 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>

modernize t9300: move test preparations into test_expec... 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>

send-email: expand path in sendemail.smtpsslcertpath... John Keeping Tue, 17 Nov 2015 22:01:05 +0000 (22:01 +0000)

send-email: expand path in sendemail.smtpsslcertpath config

As it says in the name, the SSL certificate path is a path so treat it
as one and support tilde-expansion.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Jeff King <peff@peff.net>

git-p4: add p4d timeout in testsLars Schneider Thu, 19 Nov 2015 08:58:09 +0000 (09:58 +0100)

git-p4: add p4d timeout in tests

In rare cases p4d seems to hang. This watchdog will kill the p4d
process after 300s in any case. That means each individual git p4 test
needs to finish before 300s or it will fail.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Acked-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Jeff King <peff@peff.net>

modernize t9300: mark here-doc words to ignore tab... Johannes Sixt Thu, 19 Nov 2015 19:09:48 +0000 (20:09 +0100)

modernize t9300: mark here-doc words to ignore tab indentation

In the next commit, we will indent test case preparations. This will
require that here-documents ignore the tab indentation. Prepare for
this change by marking the here-doc words accordingly. This does not
have an effect now, but will remove some noise from the git diff -b
output of the next commit.

The change here is entirely automated with this perl command:

perl -i -lpe 's/(cat.*<<) *((EOF|(EXPECT|INPUT)_END).*$)/$1-$2 &&/' t/t9300-fast-import.sh

i.e., inserts a dash between << and the EOF word (and removes blanks
that our style guide abhors) and appends the && that will become
necessary.

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

git-p4: retry kill/cleanup operations in tests with... Lars Schneider Thu, 19 Nov 2015 08:58:08 +0000 (09:58 +0100)

git-p4: retry kill/cleanup operations in tests with timeout

In rare cases kill/cleanup operations in tests fail. Retry these
operations with a timeout to make the test less flaky.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>

modernize t9300: use test_when_finished for clean-upJohannes Sixt Thu, 19 Nov 2015 19:09:47 +0000 (20:09 +0100)

modernize t9300: use test_when_finished for clean-up

A number of clean-ups of test cases are performed outside of
test_expect_success. Replace these cases by using test_when_finished.

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

modernize t9300: wrap lines after &&Johannes Sixt Thu, 19 Nov 2015 19:09:46 +0000 (20:09 +0100)

modernize t9300: wrap lines after &&

It is customary to have each command in test snippets on its own line.
Fix those instances that do not follow this guideline.

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

modernize t9300: use test_must_be_emptyJohannes Sixt Thu, 19 Nov 2015 19:09:45 +0000 (20:09 +0100)

modernize t9300: use test_must_be_empty

Instead of comparing actual output to an empty file, use
test_must_be_empty. In addition to the better error message provided by
the helper, allocation of an empty file during the setup sequence can be
avoided.

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

modernize t9300: use test_must_failJohannes Sixt Thu, 19 Nov 2015 19:09:44 +0000 (20:09 +0100)

modernize t9300: use test_must_fail

One test case open-codes a test for an expected failure. Replace it by
test_must_fail.

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

modernize t9300: single-quote placement and indentationJohannes Sixt Thu, 19 Nov 2015 19:09:43 +0000 (20:09 +0100)

modernize t9300: single-quote placement and indentation

Many test cases do not follow our modern style that places the
single-quotes that surround the shell code snippets before and after
the shell code. Make it so.

Many of the lines changed in this way are indented other than by a
single tab. Change them (and some additional lines) to be indented
with a tab.

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

remote-http(s): support SOCKS proxiesPat Thoyts Mon, 26 Oct 2015 13:15:07 +0000 (14:15 +0100)

remote-http(s): support SOCKS proxies

With this patch we properly support SOCKS proxies, configured e.g. like
this:

git config http.proxy socks5://192.168.67.1:32767

Without this patch, Git mistakenly tries to use SOCKS proxies as if they
were HTTP proxies, resulting in a error message like:

fatal: unable to access 'http://.../': Proxy CONNECT aborted

This patch was required to work behind a faulty AP and scraped from
http://stackoverflow.com/questions/15227130/#15228479 and guarded with
an appropriate cURL version check by Johannes Schindelin.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'master' of git://git.bogomips.org/git-svnJeff King Fri, 20 Nov 2015 11:56:58 +0000 (06:56 -0500)

Merge branch 'master' of git://git.bogomips.org/git-svn

* 'master' of git://git.bogomips.org/git-svn:
git-svn: improve rebase/mkdirs performance

Merge branch 'lf/ref-is-hidden-namespace'Jeff King Fri, 20 Nov 2015 11:56:11 +0000 (06:56 -0500)

Merge branch 'lf/ref-is-hidden-namespace'

Extend transfer.hideRefs to work better with use of namespaces.

* lf/ref-is-hidden-namespace:
t5509: add basic tests for hideRefs
hideRefs: add support for matching full refs
upload-pack: strip refs before calling ref_is_hidden()
config.txt: document the semantics of hideRefs with namespaces

Merge branch 'dk/gc-idx-wo-pack'Jeff King Fri, 20 Nov 2015 11:55:34 +0000 (06:55 -0500)

Merge branch 'dk/gc-idx-wo-pack'

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

* 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

t5813: avoid creating urls that break on cygwinDennis Kaarsemaker Mon, 9 Nov 2015 17:49:35 +0000 (18:49 +0100)

t5813: avoid creating urls that break on cygwin

When passed an ssh:// url, git strips ssh://host from the url but does
not remove leading slashes from the path. So when this test used
ssh://remote//path/to/pwd, the path accessed by our fake SSH is
//path/to/pwd, which cygwin interprets as a UNC path, causing the test
to fail.

We may want to actually fix this in git itself, making it remove extra
slashes from urls before feeding them to transports or helpers, but
that's for another topic as it could cause regressions.

Signed-off-by: Dennis Kaarsemaker <dennis@kaarsemaker.net>
Signed-off-by: Jeff King <peff@peff.net>

Escape Git's exec path in contrib/rerere-train.sh scriptDaniel Knittl-Frank Sun, 8 Nov 2015 11:27:55 +0000 (12:27 +0100)

Escape Git's exec path in contrib/rerere-train.sh script

Whitespace can cause the source command to fail. This is usually not a
problem on Unix systems, but on Windows Git is likely to be installed
under "C:/Program Files/", thus rendering the script broken.

Signed-off-by: Daniel Knittl-Frank <knittl89+git@googlemail.com>
Signed-off-by: Jeff King <peff@peff.net>

allow hooks to ignore their standard input streamClemens Buchacher Mon, 16 Nov 2015 08:05:58 +0000 (09:05 +0100)

allow hooks to ignore their standard input stream

Since ec7dbd145 (receive-pack: allow hooks to ignore its
standard input stream) the pre-receive and post-receive
hooks ignore SIGPIPE. Do the same for the remaining hooks
pre-push and post-rewrite, which read from standard input.
The same arguments for ignoring SIGPIPE apply.

Include test by Jeff King which checks that SIGPIPE does not
cause pre-push hook failure. With the use of git update-ref
--stdin it is fast enough to be enabled by default.

Signed-off-by: Clemens Buchacher <clemens.buchacher@intel.com>
Signed-off-by: Jeff King <peff@peff.net>

rebase-i-exec: Allow space in SHELL_PATHFredrik Medley Fri, 13 Nov 2015 06:03:19 +0000 (07:03 +0100)

rebase-i-exec: Allow space in SHELL_PATH

On Windows, when Git is installed under "C:\Program Files\Git",
SHELL_PATH will include a space. Fix "git rebase --interactive --exec"
so that it works with spaces in SHELL_PATH.

Signed-off-by: Fredrik Medley <fredrik.medley@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>

contrib/subtree: Handle '--prefix' argument with a... Techlive Zheng Fri, 13 Nov 2015 02:32:36 +0000 (20:32 -0600)

contrib/subtree: Handle '--prefix' argument with a slash appended

'git subtree merge' will fail if the argument of '--prefix' has a slash
appended.

Signed-off-by: Techlive Zheng <techlivezheng@gmail.com>
Signed-off-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Jeff King <peff@peff.net>

contrib/subtree: Make each test self-containedTechlive Zheng Fri, 13 Nov 2015 02:32:35 +0000 (20:32 -0600)

contrib/subtree: Make each test self-contained

Each test runs a full repository creation and any subtree actions
needed to perform the test. Each test starts with a clean slate,
making debugging and post-mortem analysis much easier.

Signed-off-by: Techlive Zheng <techlivezheng@gmail.com>
Signed-off-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Jeff King <peff@peff.net>

contrib/subtree: Add split testsTechlive Zheng Fri, 13 Nov 2015 02:32:34 +0000 (20:32 -0600)

contrib/subtree: Add split tests

Add tests to check various options to split. Check combinations of
--prefix, --message, --annotate, --branch and --rejoin.

Signed-off-by: Techlive Zheng <techlivezheng@gmail.com>
Signed-off-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Jeff King <peff@peff.net>

contrib/subtree: Add merge testsTechlive Zheng Fri, 13 Nov 2015 02:32:33 +0000 (20:32 -0600)

contrib/subtree: Add merge tests

Add some tests for various merge operations. Test combinations of merge
with --message, --prefix and --squash.

Signed-off-by: Techlive Zheng <techlivezheng@gmail.com>
Signed-off-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Jeff King <peff@peff.net>

contrib/subtree: Add tests for subtree addTechlive Zheng Fri, 13 Nov 2015 02:32:32 +0000 (20:32 -0600)

contrib/subtree: Add tests for subtree add

Add some tests to check various options to subtree add. These test
various combinations of --message, --prefix and --squash.

Signed-off-by: Techlive Zheng <techlivezheng@gmail.com>
Signed-off-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Jeff King <peff@peff.net>

contrib/subtree: Add test for missing subtreeTechlive Zheng Fri, 13 Nov 2015 02:32:31 +0000 (20:32 -0600)

contrib/subtree: Add test for missing subtree

Test that a merge from a non-existant subtree fails.

Signed-off-by: Techlive Zheng <techlivezheng@gmail.com>
Signed-off-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Jeff King <peff@peff.net>

contrib/subtree: Clean and refactor test codeTechlive Zheng Fri, 13 Nov 2015 02:32:30 +0000 (20:32 -0600)

contrib/subtree: Clean and refactor test code

Mostly prepare for the later tests refactoring. This moves some
common code to helper functions and generally cleans things up to be
more presentable.

Signed-off-by: Techlive Zheng <techlivezheng@gmail.com>
Signed-off-by: David A. Greene <greened@obbligato.org>
Signed-off-by: Jeff King <peff@peff.net>

http: fix some printf format warningsRamsay Jones Thu, 12 Nov 2015 00:07:42 +0000 (00:07 +0000)

http: fix some printf format warnings

Commit f8117f55 ("http: use off_t to store partial file size",
02-11-2015) changed the type of some variables from long to off_t.
Unfortunately, the off_t type is not portable and can be represented
by several different actual types (even multiple types on the same
platform). This makes it difficult to print an off_t variable in
a platform independent way. As a result, this commit causes gcc to
issue some printf format warnings on a couple of different platforms.

In order to suppress the warnings, change the format specifier to use
the PRIuMAX macro and cast the off_t argument to uintmax_t. (See also
the http_opt_request_remainder() function, which uses the same
solution).

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Jeff King <peff@peff.net>

Documentation: make environment variable formatting... Андрей Рыбак Wed, 11 Nov 2015 15:47:25 +0000 (18:47 +0300)

Documentation: make environment variable formatting more consistent

Documentation/git.txt is not consistent in the way it
stylizes mentions of Environment Variables. Most of them are
enclosed in single quotes, some are enclosed in backticks,
some are not enclosed.

Signed-off-by: Andrey Rybak <rybak.a.v@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>

git-svn: improve rebase/mkdirs performanceDair Grant Thu, 5 Nov 2015 10:26:15 +0000 (10:26 +0000)

git-svn: improve rebase/mkdirs performance

Processing empty_dir directives becomes extremely slow for svn
repositories with a large enough history.

This is due to using a single hash to store the list of empty
directories, with the expensive step being purging items from
that hash using grep+delete.

Storing directories in a hash of hashes improves the performance
of this purge step and removes a potentially lengthy delay after
every rebase/mkdirs command.

The svn repository with this behaviour has 110K commits with
unhandled.log containing 170K empty_dir directives.

This takes 10 minutes to process when using a single hash, vs
3 seconds with a hash of hashes.

Signed-off-by: Dair Grant <dair@feralinteractive.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

configure.ac: use $LIBS not $CFLAGS when testing -lpthreadRainer M. Canavan Fri, 6 Nov 2015 01:11:37 +0000 (02:11 +0100)

configure.ac: use $LIBS not $CFLAGS when testing -lpthread

Some linkers, namely the one on IRIX are rather strict concerning
the order or arguments for symbol resolution, i.e. no libraries
listed before objects or other libraries on the command line are
considered for symbol resolution. Therefore, -lpthread can't work
if it's put in CFLAGS, because it will not be considered for
resolving pthread_key_create in conftest.o. Use $LIBS instead.

Signed-off-by: Rainer Canavan <git@canavan.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/subtree: remove "push" command from the "todo... Fabio Porcedda Thu, 5 Nov 2015 15:26:57 +0000 (16:26 +0100)

contrib/subtree: remove "push" command from the "todo" file

Because the "push" command is already available, remove it from the
"todo" file.

Signed-off-by: Fabio Porcedda <fabio.porcedda@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Eleventh batch for 2.7Junio C Hamano Thu, 5 Nov 2015 23:26:08 +0000 (15:26 -0800)

Eleventh batch for 2.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'ea/checkout-progress'Junio C Hamano Thu, 5 Nov 2015 23:24:28 +0000 (15:24 -0800)

Merge branch 'ea/checkout-progress'

"git checkout" did not follow the usual "--[no-]progress"
convention and implemented only "--quiet" that is essentially
a superset of "--no-progress". Extend the command to support the
usual "--[no-]progress".

* ea/checkout-progress:
checkout: add --progress option

Merge branch 'dt/http-range'Junio C Hamano Thu, 5 Nov 2015 23:24:27 +0000 (15:24 -0800)

Merge branch 'dt/http-range'

A Range: request can be responded with a full response and when
asked properly libcurl knows how to strip the result down to the
requested range. However, we were hand-crafting a range request
and it did not kick in.

* dt/http-range:
http: use off_t to store partial file size
http.c: use CURLOPT_RANGE for range requests

Sync with 2.6.3Junio C Hamano Thu, 5 Nov 2015 20:22:13 +0000 (12:22 -0800)

Sync with 2.6.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.6.3 v2.6.3Junio C Hamano Thu, 5 Nov 2015 20:20:34 +0000 (12:20 -0800)

Git 2.6.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'rs/daemon-plug-child-leak' into maintJunio C Hamano Thu, 5 Nov 2015 20:18:16 +0000 (12:18 -0800)

Merge branch 'rs/daemon-plug-child-leak' into maint

"git daemon" uses "run_command()" without "finish_command()", so it
needs to release resources itself, which it forgot to do.

* rs/daemon-plug-child-leak:
daemon: plug memory leak
run-command: factor out child_process_clear()

Merge branch 'rs/wt-status-detached-branch-fix' into... Junio C Hamano Thu, 5 Nov 2015 20:18:15 +0000 (12:18 -0800)

Merge branch 'rs/wt-status-detached-branch-fix' into maint

"git status --branch --short" accessed beyond the constant string
"HEAD", which has been corrected.

* rs/wt-status-detached-branch-fix:
wt-status: use skip_prefix() to get rid of magic string length constants
wt-status: don't skip a magical number of characters blindly
wt-status: avoid building bogus branch name with detached HEAD
wt-status: exit early using goto in wt_shortstatus_print_tracking()
t7060: add test for status --branch on a detached HEAD

Merge branch 'jk/initialization-fix-to-add-submodule... Junio C Hamano Thu, 5 Nov 2015 20:18:14 +0000 (12:18 -0800)

Merge branch 'jk/initialization-fix-to-add-submodule-odb' into maint

We peek objects from submodule's object store by linking it to the
list of alternate object databases, but the code to do so forgot to
correctly initialize the list.

* jk/initialization-fix-to-add-submodule-odb:
add_submodule_odb: initialize alt_odb list earlier

Merge branch 'js/misc-fixes' into maintJunio C Hamano Thu, 5 Nov 2015 20:18:13 +0000 (12:18 -0800)

Merge branch 'js/misc-fixes' into maint

Various compilation fixes and squelching of warnings.

* js/misc-fixes:
Correct fscanf formatting string for I64u values
Silence GCC's "cast of pointer to integer of a different size" warning
Squelch warning about an integer overflow

Merge branch 'jc/add-u-A-default-to-top' into maintJunio C Hamano Thu, 5 Nov 2015 20:18:12 +0000 (12:18 -0800)

Merge branch 'jc/add-u-A-default-to-top' into maint

"git --literal-pathspecs add -u/-A" without any command line
argument misbehaved ever since Git 2.0.

* jc/add-u-A-default-to-top:
add: simplify -u/-A without pathspec

Merge branch 'jk/delete-modechange-conflict' into maintJunio C Hamano Thu, 5 Nov 2015 20:18:11 +0000 (12:18 -0800)

Merge branch 'jk/delete-modechange-conflict' into maint

Merging a branch that removes a path and another that changes the
mode bits on the same path should have conflicted at the path, but
it didn't and silently favoured the removal.

* jk/delete-modechange-conflict:
merge: detect delete/modechange conflict
t6031: generalize for recursive and resolve strategies
t6031: move triple-rename test to t3030

Merge branch 'js/imap-send-curl-compilation-fix' into... Junio C Hamano Thu, 5 Nov 2015 20:18:10 +0000 (12:18 -0800)

Merge branch 'js/imap-send-curl-compilation-fix' into maint

"git imap-send" did not compile well with older version of cURL library.

* js/imap-send-curl-compilation-fix:
imap-send: only use CURLOPT_LOGIN_OPTIONS if it is actually available

Merge branch 'rp/link-curl-before-ssl' into maintJunio C Hamano Thu, 5 Nov 2015 20:18:08 +0000 (12:18 -0800)

Merge branch 'rp/link-curl-before-ssl' into maint

The linkage order of libraries was wrong in places around libcurl.

* rp/link-curl-before-ssl:
configure.ac: detect ssl need with libcurl
Makefile: make curl-config path configurable
Makefile: link libcurl before zlib

Merge branch 'nd/clone-linked-checkout' into maintJunio C Hamano Thu, 5 Nov 2015 20:18:07 +0000 (12:18 -0800)

Merge branch 'nd/clone-linked-checkout' into maint

It was not possible to use a repository-lookalike created by "git
worktree add" as a local source of "git clone".

* nd/clone-linked-checkout:
clone: better error when --reference is a linked checkout
clone: allow --local from a linked checkout
enter_repo: allow .git files in strict mode
enter_repo: avoid duplicating logic, use is_git_directory() instead
t0002: add test for enter_repo(), non-strict mode
path.c: delete an extra space

Merge branch 'sa/send-email-smtp-batch-data-limit'... Junio C Hamano Thu, 5 Nov 2015 20:18:06 +0000 (12:18 -0800)

Merge branch 'sa/send-email-smtp-batch-data-limit' into maint

When "git send-email" wanted to talk over Net::SMTP::SSL,
Net::Cmd::datasend() did not like to be fed too many bytes at the
same time and failed to send messages. Send the payload one line
at a time to work around the problem.

* sa/send-email-smtp-batch-data-limit:
git-send-email.perl: Fixed sending of many/huge changes/patches

t5509: add basic tests for hideRefsLukas Fleischer Thu, 5 Nov 2015 06:07:31 +0000 (07:07 +0100)

t5509: add basic tests for hideRefs

Test whether regular and full hideRefs patterns work as expected when
namespaces are used.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

hideRefs: add support for matching full refsLukas Fleischer Tue, 3 Nov 2015 07:58:16 +0000 (08:58 +0100)

hideRefs: add support for matching full refs

In addition to matching stripped refs, one can now add hideRefs
patterns that the full (unstripped) ref is matched against. To
distinguish between stripped and full matches, those new patterns
must be prefixed with a circumflex (^).

This commit also removes support for the undocumented and unintended
hideRefs settings ".have" (suppressing all "have" lines) and
"capabilities^{}" (suppressing the capabilities line).

Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

upload-pack: strip refs before calling ref_is_hidden()Lukas Fleischer Thu, 5 Nov 2015 06:07:29 +0000 (07:07 +0100)

upload-pack: strip refs before calling ref_is_hidden()

Make hideRefs handling in upload-pack consistent with the behavior
described in the documentation by stripping refs before comparing them
with prefixes in hideRefs.

Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

config.txt: document the semantics of hideRefs with... Lukas Fleischer Tue, 3 Nov 2015 07:58:14 +0000 (08:58 +0100)

config.txt: document the semantics of hideRefs with namespaces

Right now, there is no clear definition of how transfer.hideRefs should
behave when a namespace is set. Explain that hideRefs prefixes match
stripped names in that case. This is how hideRefs patterns are currently
handled in receive-pack.

Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1: allow limiting the size of the data passed to... Atousa Pahlevan Duprat Thu, 5 Nov 2015 06:38:42 +0000 (22:38 -0800)

sha1: allow limiting the size of the data passed to SHA1_Update()

Using the previous commit's inredirection mechanism for SHA1,
support a chunked implementation of SHA1_Update() that limits the
amount of data in the chunk passed to SHA1_Update().

This is enabled by using the Makefile variable SHA1_MAX_BLOCK_SIZE
to specify chunk size. When using Apple's CommonCrypto library this
is set to 1GiB (the implementation cannot handle more 4GiB).

Signed-off-by: Atousa Pahlevan Duprat <apahlevan@ieee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1: provide another level of indirection for the... Atousa Pahlevan Duprat Thu, 5 Nov 2015 06:38:41 +0000 (22:38 -0800)

sha1: provide another level of indirection for the SHA-1 functions

The git source uses git_SHA1_Update() and friends to call into the
code that computes the hashes. Traditionally, we used to map these
directly to underlying implementation of the SHA-1 hash (e.g.
SHA1_Update() from OpenSSL or blk_SHA1_Update() from block-sha1/).

This arrangement however makes it hard to tweak behaviour of the
underlying implementation without fully replacing. If we want to
introduce a tweaked_SHA1_Update() wrapper to implement the "Update"
in a slightly different way, for example, the implementation of the
wrapper still would want to call into the underlying implementation,
but tweaked_SHA1_Update() cannot call git_SHA1_Update() to get to
the underlying implementation (often but not always SHA1_Update()).

Add another level of indirection that maps platform_SHA1_Update()
and friends to their underlying implementations, and by default make
git_SHA1_Update() and friends map to platform_SHA1_* functions.

Doing it this way will later allow us to map git_SHA1_Update() to
tweaked_SHA1_Update(), and the latter can use platform_SHA1_Update()
in its implementation.

Signed-off-by: Atousa Pahlevan Duprat <apahlevan@ieee.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Wed, 4 Nov 2015 22:21:41 +0000 (14:21 -0800)

Sync with maint

* maint:

Merge branch 'xf/user-manual-ff' into maintJunio C Hamano Wed, 4 Nov 2015 22:20:49 +0000 (14:20 -0800)

Merge branch 'xf/user-manual-ff' into maint

* xf/user-manual-ff:
user-manual: fix the description of fast-forward

Merge branch 'xf/user-manual-markup' into maintJunio C Hamano Wed, 4 Nov 2015 22:20:47 +0000 (14:20 -0800)

Merge branch 'xf/user-manual-markup' into maint

AsciiDoc markup fixes.

* xf/user-manual-markup:
Documentation: match undefline with the text in old release notes
Documentation: match underline with the text
Documentation: fix header markup

Merge branch 'jc/everyday-markup' into maintJunio C Hamano Wed, 4 Nov 2015 22:20:46 +0000 (14:20 -0800)

Merge branch 'jc/everyday-markup' into maint

AsciiDoc markup fixes.

* jc/everyday-markup:
Documentation/everyday: match undefline with the text

Merge branch 'jc/em-dash-in-doc' into maintJunio C Hamano Wed, 4 Nov 2015 22:20:45 +0000 (14:20 -0800)

Merge branch 'jc/em-dash-in-doc' into maint

AsciiDoc markup fixes.

* jc/em-dash-in-doc:
Documentation: AsciiDoc spells em-dash as double-dashes, not triple

Merge branch 'es/worktree-add' into maintJunio C Hamano Wed, 4 Nov 2015 22:20:44 +0000 (14:20 -0800)

Merge branch 'es/worktree-add' into maint

* es/worktree-add:
worktree: usage: denote <branch> as optional with 'add'

gc: remove garbage .idx files from pack dirDoug Kelly Wed, 4 Nov 2015 03:05:08 +0000 (21:05 -0600)

gc: remove garbage .idx files from pack dir

Add a custom report_garbage handler to collect and remove
garbage .idx files from the pack directory.

Signed-off-by: Doug Kelly <dougk.ff7@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5304: test cleaning pack garbageDoug Kelly Wed, 4 Nov 2015 03:05:07 +0000 (21:05 -0600)

t5304: test cleaning pack garbage

Pack garbage, noticeably stale .idx files, can be cleaned up during
a garbage collection. This tests to ensure such garbage is properly
cleaned up.

Note that the prior test for checking pack garbage with count-objects
left some stale garbage after the test exited. This has also been
corrected.

Signed-off-by: Doug Kelly <dougk.ff7@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Tue, 3 Nov 2015 23:41:50 +0000 (15:41 -0800)

Sync with maint