gitweb.git
test-lib: add in-shell "env" replacementJeff King Wed, 1 Jun 2016 07:04:26 +0000 (03:04 -0400)

test-lib: add in-shell "env" replacement

The one-shot environment variable syntax:

FOO=BAR some-program

is unportable when some-program is actually a shell
function, like test_must_fail (on some shells FOO remains
set after the function returns, and on others it does not).

We sometimes get around this by using env, like:

test_must_fail env FOO=BAR some-program

But that only works because test_must_fail's arguments are
themselves a command which can be run. You can't run:

env FOO=BAR test_must_fail some-program

because env does not know about our shell functions. So
there is no equivalent for test_commit, for example, and one
must resort to:

(
FOO=BAR
export FOO
test_commit
)

which is a bit verbose. Let's add a version of "env" that
works _inside_ the shell, by creating a subshell, exporting
variables from its argument list, and running the command.

Its use is demonstrated on a currently-unportable case in
t4014.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.9-rc1 v2.9.0-rc1Junio C Hamano Tue, 31 May 2016 21:07:08 +0000 (14:07 -0700)

Git 2.9-rc1

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

Merge branch 'maint'Junio C Hamano Tue, 31 May 2016 21:12:08 +0000 (14:12 -0700)

Merge branch 'maint'

* maint:
More topics for 2.8.4

More topics for 2.8.4Junio C Hamano Tue, 31 May 2016 21:11:38 +0000 (14:11 -0700)

More topics for 2.8.4

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

Merge branch 'sb/submodule-deinit-all' into maintJunio C Hamano Tue, 31 May 2016 21:09:46 +0000 (14:09 -0700)

Merge branch 'sb/submodule-deinit-all' into maint

Correct faulty recommendation to use "git submodule deinit ." when
de-initialising all submodules, which would result in a strange
error message in a pathological corner case.

* sb/submodule-deinit-all:
submodule deinit: require '--all' instead of '.' for all submodules

Merge branch 'bn/http-cookiefile-config' into maintJunio C Hamano Tue, 31 May 2016 21:08:28 +0000 (14:08 -0700)

Merge branch 'bn/http-cookiefile-config' into maint

"http.cookieFile" configuration variable clearly wants a pathname,
but we forgot to treat it as such by e.g. applying tilde expansion.

* bn/http-cookiefile-config:
http: expand http.cookieFile as a path
Documentation: config: improve word ordering for http.cookieFile

Merge branch 'jk/test-send-sh-x-trace-elsewhere' into... Junio C Hamano Tue, 31 May 2016 21:08:27 +0000 (14:08 -0700)

Merge branch 'jk/test-send-sh-x-trace-elsewhere' into maint

Running tests with '-x' option to trace the individual command
executions is a useful way to debug test scripts, but some tests
that capture the standard error stream and check what the command
said can be broken with the trace output mixed in. When running
our tests under "bash", however, we can redirect the trace output
to another file descriptor to keep the standard error of programs
being tested intact.

* jk/test-send-sh-x-trace-elsewhere:
test-lib: set BASH_XTRACEFD automatically

Merge branch 'js/name-rev-use-oldest-ref' into maintJunio C Hamano Tue, 31 May 2016 21:08:26 +0000 (14:08 -0700)

Merge branch 'js/name-rev-use-oldest-ref' into maint

"git describe --contains" often made a hard-to-justify choice of
tag to give name to a given commit, because it tried to come up
with a name with smallest number of hops from a tag, causing an old
commit whose close descendant that is recently tagged were not
described with respect to an old tag but with a newer tag. It did
not help that its computation of "hop" count was further tweaked to
penalize being on a side branch of a merge. The logic has been
updated to favor using the tag with the oldest tagger date, which
is a lot easier to explain to the end users: "We describe a commit
in terms of the (chronologically) oldest tag that contains the
commit."

* js/name-rev-use-oldest-ref:
name-rev: include taggerdate in considering the best name

rebase -i: remove an unnecessary 'rerere' invocationJohannes Sixt Fri, 27 May 2016 16:28:21 +0000 (18:28 +0200)

rebase -i: remove an unnecessary 'rerere' invocation

Interactive rebase uses 'git cherry-pick' and 'git merge' to replay
commits. Both invoke the 'rerere' machinery when they fail due to merge
conflicts. Note that all code paths with these two commands also invoke
the shell function die_with_patch when the commands fail.

Since commit 629716d2 ("rerere: do use multiple variants") the second
operation of the rerere machinery can be observed by a duplicated
message "Recorded preimage for 'file'". This second operation records
the same preimage as the first one and, hence, only wastes cycles.
Remove the 'git rerere' invocation from die_with_patch.

Shell function die_with_patch can be called after the failure of
"git commit", too, which also calls into the rerere machinery, but it
does so only after a successful commit to record the resolution.
Therefore, it is wrong to call 'git rerere' from die_with_patch after
"git commit" fails.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

perf: make the tests work without a worktreeRené Scharfe Sun, 29 May 2016 16:43:41 +0000 (18:43 +0200)

perf: make the tests work without a worktree

In regular repositories $source_git and $objects_dir contain relative
paths based on $source. Go there to allow cp to resolve them.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

grep: -W: don't extend context to trailing empty linesRené Scharfe Sat, 28 May 2016 15:06:19 +0000 (17:06 +0200)

grep: -W: don't extend context to trailing empty lines

Empty lines between functions are shown by grep -W, as it considers them
to be part of the function preceding them. They are not interesting in
most languages. The previous patches stopped showing them for diff -W.

Stop showing empty lines trailing a function with grep -W. Grep scans
the lines of a buffer from top to bottom and prints matching lines
immediately. Thus we need to peek ahead in order to determine if an
empty line is part of a function body and worth showing or not.

Remember how far ahead we peeked in order to avoid having to do so
repeatedly when handling multiple consecutive empty lines.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7810: add test for grep -W and trailing empty context... René Scharfe Sat, 28 May 2016 15:05:41 +0000 (17:05 +0200)

t7810: add test for grep -W and trailing empty context lines

Add a test demonstrating that git grep -W prints empty lines following
the function context we're actually interested in. The modified test
file makes it necessary to adjust three unrelated test cases.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

xdiff: don't trim common tail with -WRené Scharfe Sat, 28 May 2016 15:04:31 +0000 (17:04 +0200)

xdiff: don't trim common tail with -W

The function trim_common_tail() exits early if context lines are
requested. If -U0 and -W are specified together then it can still trim
context lines that might belong to a changed function. As a result
that function is shown incompletely.

Fix that by calling trim_common_tail() only if no function context or
fixed context is requested. The parameter ctx is no longer needed now;
remove it.

While at it fix an outdated comment as well.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

xdiff: -W: don't include common trailing empty lines... René Scharfe Sat, 28 May 2016 15:03:16 +0000 (17:03 +0200)

xdiff: -W: don't include common trailing empty lines in context

Empty lines between functions are shown by diff -W, as it considers them
to be part of the function preceding them. They are not interesting in
most languages. The previous patch stopped showing them in the special
case of a function added at the end of a file.

Stop extending context to those empty lines by skipping back over them
from the start of the next function.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

xdiff: ignore empty lines before added functions with -WRené Scharfe Sat, 28 May 2016 15:02:24 +0000 (17:02 +0200)

xdiff: ignore empty lines before added functions with -W

If a new function and a preceding empty line is appended, diff -W shows
the previous function in full in order to provide context for that empty
line. In most languages empty lines between sections are not
interesting in and off themselves and showing a whole extra function for
them is not what we want.

Skip empty lines when checking of the appended chunk starts with a
function line, thereby avoiding to extend the context just for them.

Helped-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

xdiff: handle appended chunks better with -WRené Scharfe Sat, 28 May 2016 15:00:28 +0000 (17:00 +0200)

xdiff: handle appended chunks better with -W

If lines are added at the end of a file, diff -W shows the whole file.
That's because get_func_line() only considers the pre-image and gives up
if it sees a record index beyond its end.

Consider the post-image as well to see if the added lines already make
up a full function. If it doesn't then search for the previous function
line by starting from the bottom of the pre-image, thereby avoiding to
confuse get_func_line().

Reuse the existing label called "again", as it's exactly where we need
to jump to when we're done handling the pre-context, but rename it to
"post_context_calculation" in order to document its new purpose better.

Reported-by: Junio C Hamano <gitster@pobox.com>
Initial-patch-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

xdiff: factor out match_func_rec()René Scharfe Sat, 28 May 2016 14:58:47 +0000 (16:58 +0200)

xdiff: factor out match_func_rec()

Add match_func_rec(), a helper that wraps accessing a record and calling
the appropriate function for checking if it contains a function line.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4051: rewrite, add more testsRené Scharfe Tue, 31 May 2016 20:00:38 +0000 (22:00 +0200)

t4051: rewrite, add more tests

Remove the tests that checked against a fixed result and replace them
with more focused checks of desired properties of the created diffs.
That way we get more detailed and meaningful diagnostics.

Store test file contents in files in a subdirectory in order to avoid
cluttering the test script with them.

Use tagged commits to store the changes to test diff -W against instead
of using changes to the worktree. Use the worktree instead to try and
apply the generated patch in order to validate it.

Document unwanted features: trailing empty lines, too much context for
appended functions, insufficient context at the end with -U0.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'es/t1500-modernize'Junio C Hamano Tue, 31 May 2016 19:40:55 +0000 (12:40 -0700)

Merge branch 'es/t1500-modernize'

test updates to make it more readable and maintainable.

* es/t1500-modernize:
t1500: avoid setting environment variables outside of tests
t1500: avoid setting configuration options outside of tests
t1500: avoid changing working directory outside of tests
t1500: test_rev_parse: facilitate future test enhancements
t1500: be considerate to future potential tests

Merge branch 'jk/cat-file-buffered-batch-all'Junio C Hamano Tue, 31 May 2016 19:40:54 +0000 (12:40 -0700)

Merge branch 'jk/cat-file-buffered-batch-all'

"git cat-file --batch-all" has been sped up, by taking advantage
of the fact that it does not have to read a list of objects, in two
ways.

* jk/cat-file-buffered-batch-all:
cat-file: default to --buffer when --batch-all-objects is used
cat-file: avoid noop calls to sha1_object_info_extended

Merge branch 'fc/fast-import-broken-marks-file'Junio C Hamano Tue, 31 May 2016 19:40:53 +0000 (12:40 -0700)

Merge branch 'fc/fast-import-broken-marks-file'

"git fast-import --export-marks" would overwrite the existing marks
file even when it makes a dump from its custom die routine.
Prevent it from doing so when we have an import-marks file but
haven't finished reading it.

* fc/fast-import-broken-marks-file:
fast-import: do not truncate exported marks file

Documentation: bold literals in manErwan Mathoniere Tue, 31 May 2016 16:20:33 +0000 (18:20 +0200)

Documentation: bold literals in man

Backticks are emphasized through monospaced styling in the HTML
version of Git documentation. But they were left unstyled in the
manual pages.

To make the man pages more comfortably read, `MAN_BOLD_LITERAL` was
added by 5121a6d (Documentation: option to render literal text as
bold for manpages, 2009-03-27). It allowed the user to build the
manpages with literals in bold style.

For precaution it was not set by default back then.

Since 79c461d (docs: default to more modern toolset, 2010-11-19), it
is assumed ASCIIDOC 8 and at least docbook-xsl 1.73 are used, so the
need for compatibility concern is much lessor now.

Remove `MAN_BOLD_LITERAL`, and typeset literals as bold by default .
Add `NO_MAN_BOLD_LITERAL`, a new Makefile option, disabling this
feature when defined.

Signed-off-by: Erwan MATHONIERE <erwan.mathoniere@grenoble-inp.org>
Signed-off-by: Samuel GROOT <samuel.groot@grenoble-inp.org>
Signed-off-by: Tom RUSSELLO <tom.russello@grenoble-inp.org>
Signed-off-by: Matthieu MOY <matthieu.moy@grenoble-inp.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: pt_PT: update Portuguese translationVasco Almeida Fri, 27 May 2016 19:17:32 +0000 (19:17 +0000)

l10n: pt_PT: update Portuguese translation

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>

l10n: pt_PT: update according to git-gui glossaryVasco Almeida Fri, 27 May 2016 15:09:29 +0000 (15:09 +0000)

l10n: pt_PT: update according to git-gui glossary

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>

l10n: pt_PT: merge git.pot fileVasco Almeida Sat, 28 May 2016 17:14:12 +0000 (17:14 +0000)

l10n: pt_PT: merge git.pot file

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>

Makefile: move 'ifdef DEVELOPER' after config.mak*... Matthieu Moy Tue, 31 May 2016 13:24:43 +0000 (15:24 +0200)

Makefile: move 'ifdef DEVELOPER' after config.mak* inclusion

The DEVELOPER knob was introduced in 658df95 (add DEVELOPER makefile
knob to check for acknowledged warnings, 2016-02-25), and works well
when used as "make DEVELOPER=1", and when the configure script was not
used.

However, the advice given in CodingGuidelines to add DEVELOPER=1 to
config.mak does not: config.mak is included after testing for
DEVELOPER in the Makefile, and at least GNU Make's manual specifies
"Conditional directives are parsed immediately", hence the config.mak
declaration is not visible at the time the conditional is evaluated.

Also, when using the configure script to generate a
config.mak.autogen, the later file contained a "CFLAGS = <flags>"
initialization, which overrode the "CFLAGS += -W..." triggered by
DEVELOPER.

This patch fixes both issues.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

README.md: format CLI commands with code syntaxBenjamin Dopplinger Mon, 30 May 2016 03:08:16 +0000 (03:08 +0000)

README.md: format CLI commands with code syntax

CLI commands which are mentioned in the readme are now formatted with
the Markdown code syntax to make the documentation more readable.

Signed-off-by: Benjamin Dopplinger <b.dopplinger@gmail.com>
Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Final batch before 2.9-rc1Junio C Hamano Mon, 30 May 2016 01:08:26 +0000 (18:08 -0700)

Final batch before 2.9-rc1

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

Merge branch 'ak/t0008-ksh88-workaround'Junio C Hamano Mon, 30 May 2016 01:06:44 +0000 (18:06 -0700)

Merge branch 'ak/t0008-ksh88-workaround'

Test portability workaround.

* ak/t0008-ksh88-workaround:
t0008: 4 tests fail with ksh88

Merge branch 'js/t6044-use-test-seq'Junio C Hamano Mon, 30 May 2016 01:06:43 +0000 (18:06 -0700)

Merge branch 'js/t6044-use-test-seq'

Test portability fix.

* js/t6044-use-test-seq:
t6044: replace seq by test_seq

Merge branch 'ak/t4204-shell-portability'Junio C Hamano Mon, 30 May 2016 01:06:43 +0000 (18:06 -0700)

Merge branch 'ak/t4204-shell-portability'

Update a test to run also under ksh88.

* ak/t4204-shell-portability:
t4204: do not let $name variable clobbered

Merge branch 'rj/log-decorate-auto'Junio C Hamano Mon, 30 May 2016 01:06:42 +0000 (18:06 -0700)

Merge branch 'rj/log-decorate-auto'

We forgot to add "git log --decorate=auto" to documentation when we
added the feature back in v2.1.0 timeframe.

* rj/log-decorate-auto:
log: document the --decorate=auto option

Merge branch 'mr/send-email-doc-gmail-2fa'Junio C Hamano Mon, 30 May 2016 01:06:42 +0000 (18:06 -0700)

Merge branch 'mr/send-email-doc-gmail-2fa'

Give hints to GMail users with two-factor auth enabled that
they need app-specific-password when using send-email.

* mr/send-email-doc-gmail-2fa:
Documentation: add instructions to help setup gmail 2FA

Merge branch 'kb/msys2-tty'Junio C Hamano Mon, 30 May 2016 01:06:41 +0000 (18:06 -0700)

Merge branch 'kb/msys2-tty'

The "are we talking with TTY, doing an interactive session?"
detection has been updated to work better for "Git for Windows".

* kb/msys2-tty:
mingw: make isatty() recognize MSYS2's pseudo terminals (/dev/pty*)

git-cherry-pick.txt: correct a small typoPablo Santiago Blum de Aguiar Sun, 29 May 2016 19:29:29 +0000 (16:29 -0300)

git-cherry-pick.txt: correct a small typo

Most of the document mentions `behavior` instead of the British
variation, `behaviour`. This change makes it consistent.

Signed-off-by: Pablo Santiago Blum de Aguiar <scorphus@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

patch-id: use starts_with() and skip_prefix()René Scharfe Sat, 28 May 2016 16:20:23 +0000 (18:20 +0200)

patch-id: use starts_with() and skip_prefix()

Get rid of magic numbers and avoid running over the end of a NUL
terminated string by using starts_with() and skip_prefix() instead
of memcmp().

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

apply: remove unused parameters from name_terminate()René Scharfe Sat, 28 May 2016 16:12:01 +0000 (18:12 +0200)

apply: remove unused parameters from name_terminate()

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: Updated Bulgarian translation of git (2597t,0f,0u)Alexander Shopov Sun, 6 Mar 2016 15:19:16 +0000 (07:19 -0800)

l10n: Updated Bulgarian translation of git (2597t,0f,0u)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>

Merge branch 'v2.9.0_rnd1_fr' of git://github.com/jnavi... Jiang Xin Sun, 29 May 2016 11:55:26 +0000 (19:55 +0800)

Merge branch 'v2.9.0_rnd1_fr' of git://github.com/jnavila/git

* 'v2.9.0_rnd1_fr' of git://github.com/jnavila/git:
l10n: fr.po v2.9.0rnd1

Documentation: add instructions to help setup gmail 2FAMichael Rappazzo Fri, 27 May 2016 20:39:57 +0000 (16:39 -0400)

Documentation: add instructions to help setup gmail 2FA

For those who use two-factor authentication with gmail, git-send-email
will not work unless it is setup with an app-specific password. The
example for setting up git-send-email for use with gmail will now
include information on generating and storing the app-specific password.

Signed-off-by: Michael Rappazzo <rappazzo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

log: document the --decorate=auto optionRamsay Jones Fri, 27 May 2016 15:56:02 +0000 (16:56 +0100)

log: document the --decorate=auto option

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format_commit_message: honor `color=auto` for `%C(auto)`Edward Thomson Fri, 27 May 2016 03:46:10 +0000 (22:46 -0500)

format_commit_message: honor `color=auto` for `%C(auto)`

git-log(1) documents that when specifying the `%C(auto)` format
placeholder will "turn on auto coloring on the next %placeholders
until the color is switched again."

However, when `%C(auto)` is used, the present implementation will turn
colors on unconditionally (even if the color configuration is turned off
for the current context - for example, `--no-color` was specified or the
color is `auto` and the output is not a tty).

Update `format_commit_one` to examine the current context when a format
string of `%C(auto)` is specified, which ensures that we will not
unconditionally write colors. This brings that behavior in line with
the behavior of `%C(auto,<colorname>)`, and allows the user the ability
to specify that color should be displayed only when the output is a
tty.

Additionally, add a test for `%C(auto)` and update the existing tests
for `%C(auto,...)` as they were misidentified as being applicable to
`%C(auto)`.

Tests from Jeff King.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Edward Thomson <ethomson@edwardthomson.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: sv.po: Update Swedish translation (2597t0f0u)Peter Krefting Fri, 27 May 2016 13:04:42 +0000 (14:04 +0100)

l10n: sv.po: Update Swedish translation (2597t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

l10n: fr.po v2.9.0rnd1Jean-Noel Avila Thu, 26 May 2016 20:46:41 +0000 (22:46 +0200)

l10n: fr.po v2.9.0rnd1

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>

Sync with maintJunio C Hamano Thu, 26 May 2016 20:28:24 +0000 (13:28 -0700)

Sync with maint

* maint:
Start preparing for 2.8.4
archive-tar: convert snprintf to xsnprintf

Start preparing for 2.8.4Junio C Hamano Thu, 26 May 2016 20:21:00 +0000 (13:21 -0700)

Start preparing for 2.8.4

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

Merge branch 'jc/linkgit-fix' into maintJunio C Hamano Thu, 26 May 2016 20:17:26 +0000 (13:17 -0700)

Merge branch 'jc/linkgit-fix' into maint

Many 'linkgit:<git documentation page>' references were broken,
which are all fixed with this.

* jc/linkgit-fix:
Documentation: fix linkgit references

Merge branch 'ls/travis-build-doc' into maintJunio C Hamano Thu, 26 May 2016 20:17:25 +0000 (13:17 -0700)

Merge branch 'ls/travis-build-doc' into maint

CI test was taught to build documentation pages.

* ls/travis-build-doc:
travis-ci: build documentation

Merge branch 'jc/fsck-nul-in-commit' into maintJunio C Hamano Thu, 26 May 2016 20:17:24 +0000 (13:17 -0700)

Merge branch 'jc/fsck-nul-in-commit' into maint

"git fsck" learned to catch NUL byte in a commit object as
potential error and warn.

* jc/fsck-nul-in-commit:
fsck: detect and warn a commit with embedded NUL
fsck_commit_buffer(): do not special case the last validation

Merge branch 'jk/rebase-interative-eval-fix' into maintJunio C Hamano Thu, 26 May 2016 20:17:24 +0000 (13:17 -0700)

Merge branch 'jk/rebase-interative-eval-fix' into maint

Portability enhancement for "rebase -i" to help platforms whose
shell does not like "for i in <empty>" (which is not POSIX-kosher).

* jk/rebase-interative-eval-fix:
rebase--interactive: avoid empty list in shell for-loop

Merge branch 'js/windows-dotgit' into maintJunio C Hamano Thu, 26 May 2016 20:17:23 +0000 (13:17 -0700)

Merge branch 'js/windows-dotgit' into maint

On Windows, .git and optionally any files whose name starts with a
dot are now marked as hidden, with a core.hideDotFiles knob to
customize this behaviour.

* js/windows-dotgit:
mingw: remove unnecessary definition
mingw: introduce the 'core.hideDotFiles' setting

Merge branch 'kf/gpg-sig-verification-doc' into maintJunio C Hamano Thu, 26 May 2016 20:17:22 +0000 (13:17 -0700)

Merge branch 'kf/gpg-sig-verification-doc' into maint

Documentation for "git merge --verify-signatures" has been updated
to clarify that the signature of only the commit at the tip is
verified. Also the phrasing used for signature and key validity is
adjusted to align with that used by OpenPGP.

* kf/gpg-sig-verification-doc:
Documentation: clarify signature verification

Merge branch 'lp/typofixes' into maintJunio C Hamano Thu, 26 May 2016 20:17:21 +0000 (13:17 -0700)

Merge branch 'lp/typofixes' into maint

Typofixes.

* lp/typofixes:
typofix: assorted typofixes in comments, documentation and messages

Merge branch 'sb/z-is-gnutar-ism' into maintJunio C Hamano Thu, 26 May 2016 20:17:21 +0000 (13:17 -0700)

Merge branch 'sb/z-is-gnutar-ism' into maint

Test fix.

* sb/z-is-gnutar-ism:
t6041: do not compress backup tar file
t3513: do not compress backup tar file

Merge branch 'va/i18n-misc-updates' into maintJunio C Hamano Thu, 26 May 2016 20:17:20 +0000 (13:17 -0700)

Merge branch 'va/i18n-misc-updates' into maint

Mark several messages for translation.

* va/i18n-misc-updates:
i18n: unpack-trees: avoid substituting only a verb in sentences
i18n: builtin/pull.c: split strings marked for translation
i18n: builtin/pull.c: mark placeholders for translation
i18n: git-parse-remote.sh: mark strings for translation
i18n: branch: move comment for translators
i18n: branch: unmark string for translation
i18n: builtin/rm.c: remove a comma ',' from string
i18n: unpack-trees: mark strings for translation
i18n: builtin/branch.c: mark option for translation
i18n: index-pack: use plural string instead of normal one

Merge branch 'bn/config-doc-tt-varnames' into maintJunio C Hamano Thu, 26 May 2016 20:17:19 +0000 (13:17 -0700)

Merge branch 'bn/config-doc-tt-varnames' into maint

Doc formatting fixes.

* bn/config-doc-tt-varnames:
config: consistently format $variables in monospaced font
config: describe 'pathname' value type

Merge branch 'nd/remote-plural-ours-plus-theirs' into... Junio C Hamano Thu, 26 May 2016 20:17:18 +0000 (13:17 -0700)

Merge branch 'nd/remote-plural-ours-plus-theirs' into maint

Message fix.

* nd/remote-plural-ours-plus-theirs:
remote.c: specify correct plural form in "commit diverge" message

Merge branch 'ak/t4151-ls-files-could-be-empty' into... Junio C Hamano Thu, 26 May 2016 20:17:17 +0000 (13:17 -0700)

Merge branch 'ak/t4151-ls-files-could-be-empty' into maint

Test fix.

* ak/t4151-ls-files-could-be-empty:
t4151: make sure argument to 'test -z' is given

Merge branch 'jc/test-seq' into maintJunio C Hamano Thu, 26 May 2016 20:17:16 +0000 (13:17 -0700)

Merge branch 'jc/test-seq' into maint

Test fix.

* jc/test-seq:
test-lib-functions.sh: rewrite test_seq without Perl
test-lib-functions.sh: remove misleading comment on test_seq

Merge branch 'tb/t5601-sed-fix' into maintJunio C Hamano Thu, 26 May 2016 20:17:15 +0000 (13:17 -0700)

Merge branch 'tb/t5601-sed-fix' into maint

Test fix.

* tb/t5601-sed-fix:
t5601: Remove trailing space in sed expression

Merge branch 'va/i18n-remote-comment-to-align' into... Junio C Hamano Thu, 26 May 2016 20:17:14 +0000 (13:17 -0700)

Merge branch 'va/i18n-remote-comment-to-align' into maint

Message fix.

* va/i18n-remote-comment-to-align:
i18n: remote: add comment for translators

Merge branch 'va/mailinfo-doc-typofix' into maintJunio C Hamano Thu, 26 May 2016 20:17:13 +0000 (13:17 -0700)

Merge branch 'va/mailinfo-doc-typofix' into maint

Typofix.

* va/mailinfo-doc-typofix:
Documentation/git-mailinfo: fix typo

Merge branch 'maint-2.7' into maintJunio C Hamano Thu, 26 May 2016 20:16:51 +0000 (13:16 -0700)

Merge branch 'maint-2.7' into maint

* maint-2.7:
archive-tar: convert snprintf to xsnprintf

mingw: make isatty() recognize MSYS2's pseudo terminals... Karsten Blees Wed, 27 Apr 2016 15:16:37 +0000 (17:16 +0200)

mingw: make isatty() recognize MSYS2's pseudo terminals (/dev/pty*)

MSYS2 emulates pseudo terminals via named pipes, and isatty() returns 0
for such file descriptors. Therefore, some interactive functionality
(such as launching a pager, asking if a failed unlink should be repeated
etc.) doesn't work when run in a terminal emulator that uses MSYS2's
ptys (such as mintty).

However, MSYS2 uses special names for its pty pipes ('msys-*-pty*'),
which allows us to distinguish them from normal piped input / output.

On startup, check if stdin / stdout / stderr are connected to such pipes
using the NtQueryObject API from NTDll.dll. If the names match, adjust
the flags in MSVCRT's ioinfo structure accordingly.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/war-on-sprintf' into maint-2.7Junio C Hamano Thu, 26 May 2016 17:45:37 +0000 (10:45 -0700)

Merge branch 'jk/war-on-sprintf' into maint-2.7

* jk/war-on-sprintf:
archive-tar: convert snprintf to xsnprintf

archive-tar: convert snprintf to xsnprintfJeff King Thu, 26 May 2016 04:28:08 +0000 (00:28 -0400)

archive-tar: convert snprintf to xsnprintf

Commit f2f0267 (archive-tar: use xsnprintf for trivial
formatting, 2015-09-24) converted cases of "sprintf" to
"xsnprintf", but accidentally left one as just "snprintf".
This meant that we could silently truncate the resulting
buffer instead of flagging an error.

In practice, this is impossible to achieve, as we are
formatting a ustar checksum, which can be at most 7
characters. But the point of xsnprintf is to document and
check for "should be impossible" conditions; this site was
just accidentally mis-converted during f2f0267.

Noticed-by: Paul Green <Paul.Green@stratus.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'fix_fr' of git://github.com/jnavila/gitJiang Xin Thu, 26 May 2016 15:40:48 +0000 (23:40 +0800)

Merge branch 'fix_fr' of git://github.com/jnavila/git

* 'fix_fr' of git://github.com/jnavila/git:
l10n: fr.po Fixed grammar mistake

daemon: enable SO_KEEPALIVE for all socketsEric Wong Wed, 25 May 2016 03:15:05 +0000 (03:15 +0000)

daemon: enable SO_KEEPALIVE for all sockets

While --init-timeout and --timeout options exist and I've never
run git-daemon without them, some users may forget to set them
and encounter hung daemon processes when connections fail.
Enable socket-level timeouts so the kernel can send keepalive
probes as necessary to detect failed connections.

Signed-off-by: Eric Wong <e@80x24.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: Updated Vietnamese translation (2597t)Tran Ngoc Quan Wed, 25 May 2016 00:42:13 +0000 (07:42 +0700)

l10n: Updated Vietnamese translation (2597t)

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

t4204: do not let $name variable clobberedJunio C Hamano Mon, 23 May 2016 22:23:56 +0000 (15:23 -0700)

t4204: do not let $name variable clobbered

test_patch_id_file_order shell function uses $name variable to hold
one filename, and calls another shell function calc_patch_id as a
downstream of one pipeline. The called function, however, also uses
the same $name variable. With a shell implementation that runs the
callee in the current shell environment, the caller's $name would
be clobbered by the callee's use of the same variable.

This hasn't been an issue with dash and bash. ksh93 reveals the
breakage in the test script.

Fix it by using a distinct variable name in the callee.

Reported-by: Armin Kunaschik <megabreit@googlemail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: git.pot: v2.9.0 round 1 (104 new, 37 removed)Jiang Xin Tue, 24 May 2016 15:43:14 +0000 (23:43 +0800)

l10n: git.pot: v2.9.0 round 1 (104 new, 37 removed)

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

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

Git 2.9-rc0 v2.9.0-rc0Junio C Hamano Mon, 23 May 2016 22:02:48 +0000 (15:02 -0700)

Git 2.9-rc0

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

Merge branch 'svn-travis' of git://bogomips.org/git-svnJunio C Hamano Mon, 23 May 2016 22:01:03 +0000 (15:01 -0700)

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

* 'svn-travis' of git://bogomips.org/git-svn:
travis-ci: enable Git SVN tests t91xx on Linux

Merge branch 'jc/rerere-multi'Junio C Hamano Mon, 23 May 2016 21:54:37 +0000 (14:54 -0700)

Merge branch 'jc/rerere-multi'

* jc/rerere-multi:
rerere: remove an null statement
rerere: plug memory leaks upon "rerere forget" failure

Merge branch 'da/difftool'Junio C Hamano Mon, 23 May 2016 21:54:36 +0000 (14:54 -0700)

Merge branch 'da/difftool'

"git difftool" learned to handle unmerged paths correctly in
dir-diff mode.

* da/difftool:
difftool: handle unmerged files in dir-diff mode
difftool: initialize variables for readability

Merge branch 'jk/test-z-n-unquoted'Junio C Hamano Mon, 23 May 2016 21:54:35 +0000 (14:54 -0700)

Merge branch 'jk/test-z-n-unquoted'

t9xxx series has been updated primarily for readability, while
fixing small bugs in it. A few scripted Porcelains have also been
updated to fix possible bugs around their use of "test -z" and
"test -n".

* jk/test-z-n-unquoted:
always quote shell arguments to test -z/-n
t9103: modernize test style
t9107: switch inverted single/double quotes in test
t9107: use "return 1" instead of "exit 1"
t9100,t3419: enclose all test code in single-quotes
t/lib-git-svn: drop $remote_git_svn and $git_svn_id

Merge branch 'ar/diff-args-osx-precompose'Junio C Hamano Mon, 23 May 2016 21:54:35 +0000 (14:54 -0700)

Merge branch 'ar/diff-args-osx-precompose'

Many commands normalize command line arguments from NFD to NFC
variant of UTF-8 on OSX, but commands in the "diff" family did
not, causing "git diff $path" to complain that no such path is
known to Git. They have been taught to do the normalization.

* ar/diff-args-osx-precompose:
diff: run arguments through precompose_argv

Merge branch 'jc/doc-lint'Junio C Hamano Mon, 23 May 2016 21:54:34 +0000 (14:54 -0700)

Merge branch 'jc/doc-lint'

Find common mistakes when writing gitlink: in our documentation and
drive the check from "make check-docs".

I am not entirely happy with the way the script chooses what input
file to validate, but it is not worse than not having anything, so
let's move it forward and have the logic improved later when people
care about it deeply.

* jc/doc-lint:
ci: validate "linkgit:" in documentation

Merge branch 'js/perf-rebase-i'Junio C Hamano Mon, 23 May 2016 21:54:33 +0000 (14:54 -0700)

Merge branch 'js/perf-rebase-i'

Add perf test for "rebase -i"

* js/perf-rebase-i:
perf: run "rebase -i" under perf
perf: make the tests work in worktrees
perf: let's disable symlinks when they are not available

Merge branch 'jc/test-parse-options-expect'Junio C Hamano Mon, 23 May 2016 21:54:32 +0000 (14:54 -0700)

Merge branch 'jc/test-parse-options-expect'

t0040 had too many unnecessary repetitions in its test data. Teach
test-parse-options program so that a caller can tell what it
expects in its output, so that these repetitions can be cleaned up.

* jc/test-parse-options-expect:
t0040: convert a few tests to use test-parse-options --expect
t0040: remove unused test helpers
test-parse-options: --expect=<string> option to simplify tests
test-parse-options: fix output when callback option fails

Merge branch 'pb/commit-verbose-config'Junio C Hamano Mon, 23 May 2016 21:54:31 +0000 (14:54 -0700)

Merge branch 'pb/commit-verbose-config'

"git commit" learned to pay attention to "commit.verbose"
configuration variable and act as if "--verbose" option was
given from the command line.

* pb/commit-verbose-config:
commit: add a commit.verbose config variable
t7507-commit-verbose: improve test coverage by testing number of diffs
parse-options.c: make OPTION_COUNTUP respect "unspecified" values
t/t7507: improve test coverage
t0040-parse-options: improve test coverage
test-parse-options: print quiet as integer
t0040-test-parse-options.sh: fix style issues

Merge branch 'xy/format-patch-base'Junio C Hamano Mon, 23 May 2016 21:54:31 +0000 (14:54 -0700)

Merge branch 'xy/format-patch-base'

"git format-patch" learned a new "--base" option to record what
(public, well-known) commit the original series was built on in
its output.

* xy/format-patch-base:
format-patch: introduce format.useAutoBase configuration
format-patch: introduce --base=auto option
format-patch: add '--base' option to record base tree info
patch-ids: make commit_patch_id() a public helper function

Merge branch 'tb/core-eol-fix'Junio C Hamano Mon, 23 May 2016 21:54:30 +0000 (14:54 -0700)

Merge branch 'tb/core-eol-fix'

A couple of bugs around core.autocrlf have been fixed.

* tb/core-eol-fix:
convert.c: ident + core.autocrlf didn't work
t0027: test cases for combined attributes
convert: allow core.autocrlf=input and core.eol=crlf
t0027: make commit_chk_wrnNNO() reliable

Merge branch 'nd/worktree-various-heads'Junio C Hamano Mon, 23 May 2016 21:54:29 +0000 (14:54 -0700)

Merge branch 'nd/worktree-various-heads'

The experimental "multiple worktree" feature gains more safety to
forbid operations on a branch that is checked out or being actively
worked on elsewhere, by noticing that e.g. it is being rebased.

* nd/worktree-various-heads:
branch: do not rename a branch under bisect or rebase
worktree.c: check whether branch is bisected in another worktree
wt-status.c: split bisect detection out of wt_status_get_state()
worktree.c: check whether branch is rebased in another worktree
worktree.c: avoid referencing to worktrees[i] multiple times
wt-status.c: make wt_status_check_rebase() work on any worktree
wt-status.c: split rebase detection out of wt_status_get_state()
path.c: refactor and add worktree_git_path()
worktree.c: mark current worktree
worktree.c: make find_shared_symref() return struct worktree *
worktree.c: store "id" instead of "git_dir"
path.c: add git_common_path() and strbuf_git_common_path()
dir.c: rename str(n)cmp_icase to fspath(n)cmp

Merge branch 'ss/commit-dry-run-resolve-merge-to-no-op'Junio C Hamano Mon, 23 May 2016 21:54:28 +0000 (14:54 -0700)

Merge branch 'ss/commit-dry-run-resolve-merge-to-no-op'

"git commit --dry-run" reported "No, no, you cannot commit." in one
case where "git commit" would have allowed you to commit, and this
improves it a little bit ("git commit --dry-run --short" still does
not give you the correct answer, for example). This is a stop-gap
measure in that "commit --short --dry-run" still gives an incorrect
result.

* ss/commit-dry-run-resolve-merge-to-no-op:
wt-status.c: set commitable bit if there is a meaningful merge.

travis-ci: enable Git SVN tests t91xx on LinuxLars Schneider Thu, 19 May 2016 09:10:08 +0000 (11:10 +0200)

travis-ci: enable Git SVN tests t91xx on Linux

Install the "git-svn" package to make the Perl SVN libraries available
to the Git SVN tests on Travis-CI Linux build machines.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Eric Wong <e@80x24.org>

t0008: 4 tests fail with ksh88Armin Kunaschik Fri, 20 May 2016 14:31:30 +0000 (16:31 +0200)

t0008: 4 tests fail with ksh88

In t0008, we have

cat <<-EOF
...
a/b/.gitignore:8:!on* "a/b/one\"three"
...
EOF

and expect that the backslash-dq is passed through literally.

ksh88 eats the backslash and produces a wrong expect file to
compare the actual output with.

Using \\" works this around without breaking other POSIX shells
(which collapse backslash-backslash to a single backslash), and
ksh88 does so, too.

It makes it easier to read, too, because the reason why we are
writing backslash there is *not* because we think dq is special and
want to quote it (if that were the case we would have two more
backslashes on that line). It is simply because we want a single
literal backslash there. Since backslash is treated specially in
unquoted here-document, explicitly doubling it to quote it expresses
our intent better than relying on the character that immediately
comes after it (i.e. '"') not being a special character.

Signed-off-by: Armin Kunaschik <megabreit@googlemail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rerere: remove an null statementJunio C Hamano Thu, 19 May 2016 19:51:22 +0000 (12:51 -0700)

rerere: remove an null statement

J6t spotted that previous commit added an empty statement by
mistake.

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

Sync with 2.8.3Junio C Hamano Wed, 18 May 2016 22:33:57 +0000 (15:33 -0700)

Sync with 2.8.3

* maint:
Git 2.8.3

Git 2.8.3 v2.8.3Junio C Hamano Wed, 18 May 2016 21:45:08 +0000 (14:45 -0700)

Git 2.8.3

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

Merge branch 'jk/push-client-deadlock-fix'Junio C Hamano Wed, 18 May 2016 22:11:46 +0000 (15:11 -0700)

Merge branch 'jk/push-client-deadlock-fix'

Some Windows SDK lacks pthread_sigmask() implementation and fails
to compile the recently updated "git push" codepath that uses it.

* jk/push-client-deadlock-fix:
Windows: only add a no-op pthread_sigmask() when needed
Windows: add pthread_sigmask() that does nothing

Merge branch 'sb/misc-cleanups' into HEADJunio C Hamano Wed, 18 May 2016 21:40:15 +0000 (14:40 -0700)

Merge branch 'sb/misc-cleanups' into HEAD

* sb/misc-cleanups:
submodule-config: don't shadow `cache`
config.c: drop local variable
credential-cache, send_request: close fd when done
bundle: don't leak an fd in case of early return
abbrev_sha1_in_line: don't leak memory
notes: don't leak memory in git_config_get_notes_strategy

Merge branch 'ew/doc-split-pack-disables-bitmap' into... Junio C Hamano Wed, 18 May 2016 21:40:15 +0000 (14:40 -0700)

Merge branch 'ew/doc-split-pack-disables-bitmap' into HEAD

Doc update.

* ew/doc-split-pack-disables-bitmap:
pack-objects: warn on split packs disabling bitmaps

Merge branch 'sb/clean-test-fix' into HEADJunio C Hamano Wed, 18 May 2016 21:40:14 +0000 (14:40 -0700)

Merge branch 'sb/clean-test-fix' into HEAD

* sb/clean-test-fix:
t7300: mark test with SANITY

Merge branch 'rn/glossary-typofix' into HEADJunio C Hamano Wed, 18 May 2016 21:40:13 +0000 (14:40 -0700)

Merge branch 'rn/glossary-typofix' into HEAD

* rn/glossary-typofix:
Documentation: fix typo 'In such these cases'

Merge branch 'ew/normal-to-e' into HEADJunio C Hamano Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)

Merge branch 'ew/normal-to-e' into HEAD

* ew/normal-to-e:
.mailmap: update to my shorter email address

Merge branch 'sb/config-exit-status-list' into HEADJunio C Hamano Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)

Merge branch 'sb/config-exit-status-list' into HEAD

Doc update.

* sb/config-exit-status-list:
config doc: improve exit code listing

Merge branch 'rt/string-list-lookup-cleanup' into HEADJunio C Hamano Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)

Merge branch 'rt/string-list-lookup-cleanup' into HEAD

Code cleanup.

* rt/string-list-lookup-cleanup:
string_list: use string-list API in unsorted_string_list_lookup()

Merge branch 'jk/fix-attribute-macro-in-2.5' into HEADJunio C Hamano Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)

Merge branch 'jk/fix-attribute-macro-in-2.5' into HEAD

Code fixup.

* jk/fix-attribute-macro-in-2.5:
remote.c: spell __attribute__ correctly

Merge branch 'sg/test-lib-simplify-expr-away' into... Junio C Hamano Wed, 18 May 2016 21:40:11 +0000 (14:40 -0700)

Merge branch 'sg/test-lib-simplify-expr-away' into HEAD

Code cleanup.

* sg/test-lib-simplify-expr-away:
test-lib: simplify '--option=value' parsing