gitweb.git
Merge branch 'nd/worktree-list-fixup'Junio C Hamano Fri, 16 Dec 2016 23:27:48 +0000 (15:27 -0800)

Merge branch 'nd/worktree-list-fixup'

The output from "git worktree list" was made in readdir() order,
and was unstable.

* nd/worktree-list-fixup:
worktree list: keep the list sorted
worktree.c: get_worktrees() takes a new flag argument
get_worktrees() must return main worktree as first item even on error
worktree: reorder an if statement
worktree.c: zero new 'struct worktree' on allocation

Merge branch 'nd/qsort-in-merge-recursive'Junio C Hamano Fri, 16 Dec 2016 23:27:48 +0000 (15:27 -0800)

Merge branch 'nd/qsort-in-merge-recursive'

Code simplification.

* nd/qsort-in-merge-recursive:
merge-recursive.c: use string_list_sort instead of qsort

Merge branch 'bw/push-dry-run'Junio C Hamano Fri, 16 Dec 2016 23:27:48 +0000 (15:27 -0800)

Merge branch 'bw/push-dry-run'

"git push --dry-run --recurse-submodule=on-demand" wasn't
"--dry-run" in the submodules.

* bw/push-dry-run:
push: fix --dry-run to not push submodules
push: --dry-run updates submodules when --recurse-submodules=on-demand

Merge branch 'hv/submodule-not-yet-pushed-fix'Junio C Hamano Fri, 16 Dec 2016 23:27:47 +0000 (15:27 -0800)

Merge branch 'hv/submodule-not-yet-pushed-fix'

The code in "git push" to compute if any commit being pushed in the
superproject binds a commit in a submodule that hasn't been pushed
out was overly inefficient, making it unusable even for a small
project that does not have any submodule but have a reasonable
number of refs.

* hv/submodule-not-yet-pushed-fix:
submodule_needs_pushing(): explain the behaviour when we cannot answer
batch check whether submodule needs pushing into one call
serialize collection of refs that contain submodule changes
serialize collection of changed submodules

Merge branch 'dt/empty-submodule-in-merge'Junio C Hamano Fri, 16 Dec 2016 23:27:47 +0000 (15:27 -0800)

Merge branch 'dt/empty-submodule-in-merge'

An empty directory in a working tree that can simply be nuked used
to interfere while merging or cherry-picking a change to create a
submodule directory there, which has been fixed..

* dt/empty-submodule-in-merge:
submodules: allow empty working-tree dirs in merge/cherry-pick

Merge branch 'jk/rev-parse-symbolic-parents-fix'Junio C Hamano Fri, 16 Dec 2016 23:27:47 +0000 (15:27 -0800)

Merge branch 'jk/rev-parse-symbolic-parents-fix'

"git rev-parse --symbolic" failed with a more recent notation like
"HEAD^-1" and "HEAD^!".

* jk/rev-parse-symbolic-parents-fix:
rev-parse: fix parent shorthands with --symbolic

Early fixes for 2.11.x seriesJunio C Hamano Tue, 13 Dec 2016 22:13:17 +0000 (14:13 -0800)

Early fixes for 2.11.x series

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

Merge branch 'ew/svn-fixes'Junio C Hamano Tue, 13 Dec 2016 22:09:27 +0000 (14:09 -0800)

Merge branch 'ew/svn-fixes'

* ew/svn-fixes:
git-svn: document useLogAuthor and addAuthorFrom config keys
git-svn: allow "0" in SVN path components

Merge branch 'js/mingw-isatty'Junio C Hamano Tue, 13 Dec 2016 22:09:27 +0000 (14:09 -0800)

Merge branch 'js/mingw-isatty'

We often decide if a session is interactive by checking if the
standard I/O streams are connected to a TTY, but isatty() emulation
on Windows incorrectly returned true if it is used on NUL (i.e. an
equivalent to /dev/null). This has been fixed.

* js/mingw-isatty:
mingw: intercept isatty() to handle /dev/null as Git expects it

git-svn: document useLogAuthor and addAuthorFrom config... Eric Wong Sun, 11 Dec 2016 00:06:46 +0000 (00:06 +0000)

git-svn: document useLogAuthor and addAuthorFrom config keys

We've always supported these config keys in git-svn,
so document them so users won't have to respecify them
on every invocation.

Reported-by: Juergen Kosel <juergen.kosel@gmx.de>
Signed-off-by: Eric Wong <e@80x24.org>

git-svn: allow "0" in SVN path componentsEric Wong Wed, 30 Nov 2016 00:45:41 +0000 (00:45 +0000)

git-svn: allow "0" in SVN path components

Blindly checking a path component for falsiness is unwise, as
"0" is false to Perl, but a valid pathname component for SVN
(or any filesystem).

Found via random code reading.

Signed-off-by: Eric Wong <e@80x24.org>

mingw: intercept isatty() to handle /dev/null as Git... Johannes Schindelin Sun, 11 Dec 2016 11:16:57 +0000 (12:16 +0100)

mingw: intercept isatty() to handle /dev/null as Git expects it

When Git's source code calls isatty(), it really asks whether the
respective file descriptor is connected to an interactive terminal.

Windows' _isatty() function, however, determines whether the file
descriptor is associated with a character device. And NUL, Windows'
equivalent of /dev/null, is a character device.

Which means that for years, Git mistakenly detected an associated
interactive terminal when being run through the test suite, which
almost always redirects stdin, stdout and stderr to /dev/null.

This bug only became obvious, and painfully so, when the new
bisect--helper entered the `pu` branch and made the automatic build & test
time out because t6030 was waiting for an answer.

For details, see

https://msdn.microsoft.com/en-us/library/f4s0ddew.aspx

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

Start post 2.11 cycleJunio C Hamano Mon, 5 Dec 2016 19:31:47 +0000 (11:31 -0800)

Start post 2.11 cycle

For now, let's call it 2.12 tentatively.

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

Sync with maint-2.10Junio C Hamano Mon, 5 Dec 2016 19:25:47 +0000 (11:25 -0800)

Sync with maint-2.10

* maint-2.10:
preparing for 2.10.3

preparing for 2.10.3Junio C Hamano Mon, 5 Dec 2016 19:25:02 +0000 (11:25 -0800)

preparing for 2.10.3

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

Merge branch 'jk/common-main' into maint-2.10Junio C Hamano Mon, 5 Dec 2016 19:24:17 +0000 (11:24 -0800)

Merge branch 'jk/common-main' into maint-2.10

* jk/common-main:
common-main: stop munging argv[0] path
git-compat-util: move content inside ifdef/endif guards

Merge branch 'tk/diffcore-delta-remove-unused' into... Junio C Hamano Tue, 29 Nov 2016 21:28:03 +0000 (13:28 -0800)

Merge branch 'tk/diffcore-delta-remove-unused' into maint

Code cleanup.

* tk/diffcore-delta-remove-unused:
diffcore-delta: remove unused parameter to diffcore_count_changes()

Merge branch 'jk/create-branch-remove-unused-param... Junio C Hamano Tue, 29 Nov 2016 21:28:02 +0000 (13:28 -0800)

Merge branch 'jk/create-branch-remove-unused-param' into maint

Code clean-up.

* jk/create-branch-remove-unused-param:
create_branch: drop unused "head" parameter

Merge branch 'nd/worktree-lock' into maintJunio C Hamano Tue, 29 Nov 2016 21:28:02 +0000 (13:28 -0800)

Merge branch 'nd/worktree-lock' into maint

Typofix.

* nd/worktree-lock:
git-worktree.txt: fix typo "to"/"two", and add comma

Merge branch 'ps/common-info-doc' into maintJunio C Hamano Tue, 29 Nov 2016 21:28:01 +0000 (13:28 -0800)

Merge branch 'ps/common-info-doc' into maint

Doc fix.

* ps/common-info-doc:
doc: fix location of 'info/' with $GIT_COMMON_DIR

Merge branch 'rs/cocci' into maintJunio C Hamano Tue, 29 Nov 2016 21:28:00 +0000 (13:28 -0800)

Merge branch 'rs/cocci' into maint

Improve the rule to convert "unsigned char [20]" into "struct
object_id *" in contrib/coccinelle/

* rs/cocci:
cocci: avoid self-references in object_id transformations

Merge branch 'nd/test-helpers' into maintJunio C Hamano Tue, 29 Nov 2016 21:28:00 +0000 (13:28 -0800)

Merge branch 'nd/test-helpers' into maint

Update to the test framework made in 2.9 timeframe broke running
the tests under valgrind, which has been fixed.

* nd/test-helpers:
valgrind: support test helpers

Merge branch 'sc/fmt-merge-msg-doc-markup-fix' into... Junio C Hamano Tue, 29 Nov 2016 21:27:59 +0000 (13:27 -0800)

Merge branch 'sc/fmt-merge-msg-doc-markup-fix' into maint

Documentation fix.

* sc/fmt-merge-msg-doc-markup-fix:
Documentation/fmt-merge-msg: fix markup in example

Merge branch 'rs/commit-pptr-simplify' into maintJunio C Hamano Tue, 29 Nov 2016 21:27:59 +0000 (13:27 -0800)

Merge branch 'rs/commit-pptr-simplify' into maint

Code simplification.

* rs/commit-pptr-simplify:
commit: simplify building parents list

Merge branch 'jk/rebase-config-insn-fmt-docfix' into... Junio C Hamano Tue, 29 Nov 2016 21:27:58 +0000 (13:27 -0800)

Merge branch 'jk/rebase-config-insn-fmt-docfix' into maint

Documentation fix.

* jk/rebase-config-insn-fmt-docfix:
doc: fix missing "::" in config list

Merge branch 'ak/pre-receive-hook-template-modefix... Junio C Hamano Tue, 29 Nov 2016 21:27:57 +0000 (13:27 -0800)

Merge branch 'ak/pre-receive-hook-template-modefix' into maint

A trivial clean-up to a recently graduated topic.

* ak/pre-receive-hook-template-modefix:
pre-receive.sample: mark it executable

Merge branch 'ls/macos-update' into maintJunio C Hamano Tue, 29 Nov 2016 21:27:56 +0000 (13:27 -0800)

Merge branch 'ls/macos-update' into maint

Portability update and workaround for builds on recent Mac OS X.

* ls/macos-update:
travis-ci: disable GIT_TEST_HTTPD for macOS
Makefile: set NO_OPENSSL on macOS by default

Merge branch 'as/merge-attr-sleep' into maintJunio C Hamano Tue, 29 Nov 2016 21:27:56 +0000 (13:27 -0800)

Merge branch 'as/merge-attr-sleep' into maint

Fix for a racy false-positive test failure.

* as/merge-attr-sleep:
t6026: clarify the point of "kill $(cat sleep.pid)"
t6026: ensure that long-running script really is
Revert "t6026-merge-attr: don't fail if sleep exits early"
Revert "t6026-merge-attr: ensure that the merge driver was called"
t6026-merge-attr: ensure that the merge driver was called
t6026-merge-attr: don't fail if sleep exits early

Merge branch 'ak/sh-setup-dot-source-i18n-fix' into... Junio C Hamano Tue, 29 Nov 2016 21:27:56 +0000 (13:27 -0800)

Merge branch 'ak/sh-setup-dot-source-i18n-fix' into maint

Recent update to git-sh-setup (a library of shell functions that
are used by our in-tree scripted Porcelain commands) included
another shell library git-sh-i18n without specifying where it is,
relying on the $PATH. This has been fixed to be more explicit by
prefixing $(git --exec-path) output in front.

* ak/sh-setup-dot-source-i18n-fix:
git-sh-setup: be explicit where to dot-source git-sh-i18n from.

Merge branch 'jk/daemon-path-ok-check-truncation' into... Junio C Hamano Tue, 29 Nov 2016 21:27:55 +0000 (13:27 -0800)

Merge branch 'jk/daemon-path-ok-check-truncation' into maint

"git daemon" used fixed-length buffers to turn URL to the
repository the client asked for into the server side directory
path, using snprintf() to avoid overflowing these buffers, but
allowed possibly truncated paths to the directory. This has been
tightened to reject such a request that causes overlong path to be
required to serve.

* jk/daemon-path-ok-check-truncation:
daemon: detect and reject too-long paths

Merge branch 'rs/ring-buffer-wraparound' into maintJunio C Hamano Tue, 29 Nov 2016 21:27:55 +0000 (13:27 -0800)

Merge branch 'rs/ring-buffer-wraparound' into maint

The code that we have used for the past 10+ years to cycle
4-element ring buffers turns out to be not quite portable in
theoretical world.

* rs/ring-buffer-wraparound:
hex: make wraparound of the index into ring-buffer explicit

Merge branch 'mm/send-email-cc-cruft-after-address... Junio C Hamano Tue, 29 Nov 2016 21:27:54 +0000 (13:27 -0800)

Merge branch 'mm/send-email-cc-cruft-after-address' into maint

"git send-email" attempts to pick up valid e-mails from the
trailers, but people in real world write non-addresses there, like
"Cc: Stable <add@re.ss> # 4.8+", which broke the output depending
on the availability and vintage of Mail::Address perl module.

* mm/send-email-cc-cruft-after-address:
Git.pm: add comment pointing to t9000
t9000-addresses: update expected results after fix
parse_mailboxes: accept extra text after <...> address

Merge branch 'cp/completion-negative-refs' into maintJunio C Hamano Tue, 29 Nov 2016 21:27:53 +0000 (13:27 -0800)

Merge branch 'cp/completion-negative-refs' into maint

The command-line completion script (in contrib/) learned to
complete "git cmd ^mas<HT>" to complete the negative end of
reference to "git cmd ^master".

* cp/completion-negative-refs:
completion: support excluding refs

Merge branch 'jc/am-read-author-file' into maintJunio C Hamano Tue, 29 Nov 2016 21:27:53 +0000 (13:27 -0800)

Merge branch 'jc/am-read-author-file' into maint

Extract a small helper out of the function that reads the authors
script file "git am" internally uses.
This by itself is not useful until a second caller appears in the
future for "rebase -i" helper.

* jc/am-read-author-file:
am: refactor read_author_script()

Git 2.11 v2.11.0Junio C Hamano Tue, 29 Nov 2016 20:23:07 +0000 (12:23 -0800)

Git 2.11

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

Merge branch 'jk/common-main'Junio C Hamano Tue, 29 Nov 2016 20:22:13 +0000 (12:22 -0800)

Merge branch 'jk/common-main'

Fix for a small regression in a topic already in 'master'.

* jk/common-main:
common-main: stop munging argv[0] path

Merge tag 'l10n-2.11.0-rnd3.1' of git://github.com... Junio C Hamano Tue, 29 Nov 2016 19:36:11 +0000 (11:36 -0800)

Merge tag 'l10n-2.11.0-rnd3.1' of git://github.com/git-l10n/git-po

l10n-2.11.0-rnd3.1: update ru and ca translations

* tag 'l10n-2.11.0-rnd3.1' of git://github.com/git-l10n/git-po:
l10n: ru.po: update Russian translation
l10n: ca.po: update translation

common-main: stop munging argv[0] pathJeff King Sun, 27 Nov 2016 04:31:13 +0000 (23:31 -0500)

common-main: stop munging argv[0] path

Since 650c44925 (common-main: call git_extract_argv0_path(),
2016-07-01), the argv[0] that is seen in cmd_main() of
individual programs is always the basename of the
executable, as common-main strips off the full path. This
can produce confusing results for git-daemon, which wants to
re-exec itself.

For instance, if the program was originally run as
"/usr/lib/git/git-daemon", it will try just re-execing
"git-daemon", which will find the first instance in $PATH.
If git's exec-path has not been prepended to $PATH, we may
find the git-daemon from a different version (or no
git-daemon at all).

Normally this isn't a problem. Git commands are run as "git
daemon", the git wrapper puts the exec-path at the front of
$PATH, and argv[0] is already "daemon" anyway. But running
git-daemon via its full exec-path, while not really a
recommended method, did work prior to 650c44925. Let's make
it work again.

The real goal of 650c44925 was not to munge argv[0], but to
reliably set the argv0_path global. The only reason it
munges at all is that one caller, the git.c wrapper,
piggy-backed on that computation to find the command
basename. Instead, let's leave argv[0] untouched in
common-main, and have git.c do its own basename computation.

While we're at it, let's drop the return value from
git_extract_argv0_path(). It was only ever used in this one
callsite, and its dual purposes is what led to this
confusion in the first place.

Note that by changing the interface, the compiler can
confirm for us that there are no other callers storing the
return value. But the compiler can't tell us whether any of
the cmd_main() functions (besides git.c) were relying on the
basename munging. However, we can observe that prior to
650c44925, no other cmd_main() functions did that munging,
and no new cmd_main() functions have been introduced since
then. So we can't be regressing any of those cases.

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

Merge branch 'russian-l10n' of https://github.com/DJm00... Jiang Xin Tue, 29 Nov 2016 13:19:43 +0000 (21:19 +0800)

Merge branch 'russian-l10n' of https://github.com/DJm00n/git-po-ru

* 'russian-l10n' of https://github.com/DJm00n/git-po-ru:
l10n: ru.po: update Russian translation

l10n: ru.po: update Russian translationDimitriy Ryazantcev Tue, 29 Nov 2016 09:33:07 +0000 (11:33 +0200)

l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>

l10n: ca.po: update translationAlex Henrie Tue, 29 Nov 2016 03:06:25 +0000 (20:06 -0700)

l10n: ca.po: update translation

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>

RelNotes: spelling and phrasing fixupsMarc Branchaud Thu, 24 Nov 2016 16:59:00 +0000 (11:59 -0500)

RelNotes: spelling and phrasing fixups

Signed-off-by: Marc Branchaud <marcnarc@xiplink.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-recursive.c: use string_list_sort instead of... Nguyễn Thái Ngọc Duy Thu, 24 Nov 2016 11:45:36 +0000 (18:45 +0700)

merge-recursive.c: use string_list_sort instead of qsort

Merge-recursive sorts a string list using a raw qsort(), where it
feeds the "items" from one struct but the "nr" and size fields from
another struct. This isn't a bug because one list is a copy of the
other, but it's unnecessarily confusing (and also caused our recent
QSORT() cleanups via coccinelle to miss this call site).

Let's use string_list_sort() instead, which is more concise and harder
to get wrong. Note that we need to adjust our comparison function,
which gets fed only the strings now, not the string_list_items. That's
OK because we don't use the "util" field as part of our sort.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge tag 'l10n-2.11.0-rnd3' of git://github.com/git... Junio C Hamano Mon, 28 Nov 2016 23:28:04 +0000 (15:28 -0800)

Merge tag 'l10n-2.11.0-rnd3' of git://github.com/git-l10n/git-po

l10n-2.11.0-rnd3

* tag 'l10n-2.11.0-rnd3' of git://github.com/git-l10n/git-po:
l10n: de.po: translate 210 new messages
l10n: fix unmatched single quote in error message

worktree list: keep the list sortedNguyễn Thái Ngọc Duy Mon, 28 Nov 2016 09:36:56 +0000 (16:36 +0700)

worktree list: keep the list sorted

It makes it easier to write tests for. But it should also be good for
the user since locating a worktree by eye would be easier once they
notice this.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

worktree.c: get_worktrees() takes a new flag argumentNguyễn Thái Ngọc Duy Mon, 28 Nov 2016 09:36:55 +0000 (16:36 +0700)

worktree.c: get_worktrees() takes a new flag argument

This is another no-op patch, in preparation for get_worktrees() to do
optional things, like sorting.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

get_worktrees() must return main worktree as first... Nguyễn Thái Ngọc Duy Mon, 28 Nov 2016 09:36:54 +0000 (16:36 +0700)

get_worktrees() must return main worktree as first item even on error

This is required by git-worktree.txt, stating that the main worktree is
the first line (especially in --porcelain mode when we can't just change
behavior at will).

There's only one case when get_worktrees() may skip main worktree, when
parse_ref() fails. Update the code so that we keep first item as main
worktree and return something sensible in this case:

- In user-friendly mode, since we're not constraint by anything,
returning "(error)" should do the job (we already show "(detached
HEAD)" which is not machine-friendly). Actually errors should be
printed on stderr by parse_ref() (*)

- In plumbing mode, we do not show neither 'bare', 'detached' or
'branch ...', which is possible by the format description if I read
it right.

Careful readers may realize that when the local variable "head_ref" in
get_main_worktree() is emptied, add_head_info() will do nothing to
wt->head_sha1. But that's ok because head_sha1 is zero-ized in the
previous patch.

(*) Well, it does not. But it's supposed to be a stop gap implementation
until we can reuse refs code to parse "ref: " stuff in HEAD, from
resolve_refs_unsafe(). Now may be the time since refs refactoring is
mostly done.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

worktree: reorder an if statementNguyễn Thái Ngọc Duy Mon, 28 Nov 2016 09:36:53 +0000 (16:36 +0700)

worktree: reorder an if statement

This is no-op. But it helps reduce diff noise in the next patch.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: de.po: translate 210 new messagesRalf Thielow Wed, 2 Nov 2016 17:51:08 +0000 (18:51 +0100)

l10n: de.po: translate 210 new messages

Translate 210 new messages came from git.pot update in fda7b09
(l10n: git.pot: v2.11.0 round 1 (209 new, 53 removed)) and c091ffb
(l10n: git.pot: v2.11.0 round 2 (1 new, 1 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

l10n: fix unmatched single quote in error messageJiang Xin Sun, 20 Nov 2016 12:26:17 +0000 (20:26 +0800)

l10n: fix unmatched single quote in error message

Translate one message introduced by commit:

* 358718064b i18n: fix unmatched single quote in error message

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

Git 2.11-rc3 v2.11.0-rc3Junio C Hamano Wed, 23 Nov 2016 19:24:59 +0000 (11:24 -0800)

Git 2.11-rc3

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

Merge branch 'jc/setup-cleanup-fix'Junio C Hamano Wed, 23 Nov 2016 19:23:17 +0000 (11:23 -0800)

Merge branch 'jc/setup-cleanup-fix'

"git archive" and "git mailinfo" stopped reading from local
configuration file with a recent update.

* jc/setup-cleanup-fix:
archive: read local configuration
mailinfo: read local configuration

Merge branch 'jt/trailer-with-cruft'Junio C Hamano Wed, 23 Nov 2016 19:23:17 +0000 (11:23 -0800)

Merge branch 'jt/trailer-with-cruft'

Doc update.

* jt/trailer-with-cruft:
doc: mention user-configured trailers

Merge branch 'js/rebase-i-commentchar-fix'Junio C Hamano Wed, 23 Nov 2016 19:23:17 +0000 (11:23 -0800)

Merge branch 'js/rebase-i-commentchar-fix'

"git rebase -i" did not work well with core.commentchar
configuration variable for two reasons, both of which have been
fixed.

* js/rebase-i-commentchar-fix:
rebase -i: handle core.commentChar=auto
stripspace: respect repository config
rebase -i: highlight problems with core.commentchar

Merge branch 'jc/for-each-ref-head-segfault-fix'Junio C Hamano Wed, 23 Nov 2016 19:23:16 +0000 (11:23 -0800)

Merge branch 'jc/for-each-ref-head-segfault-fix'

Using a %(HEAD) placeholder in "for-each-ref --format=" option
caused the command to segfault when on an unborn branch.

* jc/for-each-ref-head-segfault-fix:
for-each-ref: do not segv with %(HEAD) on an unborn branch

worktree.c: zero new 'struct worktree' on allocationNguyễn Thái Ngọc Duy Tue, 22 Nov 2016 10:00:44 +0000 (17:00 +0700)

worktree.c: zero new 'struct worktree' on allocation

This keeps things a bit simpler when we add more fields, knowing that
default values are always zero.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: fix --dry-run to not push submodulesBrandon Williams Thu, 17 Nov 2016 18:46:04 +0000 (10:46 -0800)

push: fix --dry-run to not push submodules

Teach push to respect the --dry-run option when configured to
recursively push submodules 'on-demand'. This is done by passing the
--dry-run flag to the child process which performs a push for a
submodules when performing a dry-run.

In order to preserve good user experience, the additional check for
unpushed submodules is skipped during a dry-run when
--recurse-submodules=on-demand. The check is skipped because the submodule
pushes were performed as dry-runs and this check would always fail as the
submodules would still need to be pushed.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

push: --dry-run updates submodules when --recurse-submo... Brandon Williams Thu, 17 Nov 2016 18:46:03 +0000 (10:46 -0800)

push: --dry-run updates submodules when --recurse-submodules=on-demand

This patch adds a test to illustrate how push run with --dry-run doesn't
actually perform a dry-run when push is configured to push submodules
on-demand. Instead all submodules which need to be pushed are actually
pushed to their remotes while any updates for the superproject are
performed as a dry-run. This is a bug and not the intended behaviour of
a dry-run.

Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge tag 'l10n-2.11.0-rnd2' of git://github.com/git... Junio C Hamano Tue, 22 Nov 2016 22:16:06 +0000 (14:16 -0800)

Merge tag 'l10n-2.11.0-rnd2' of git://github.com/git-l10n/git-po

l10n-2.11.0-rnd2

* tag 'l10n-2.11.0-rnd2' of git://github.com/git-l10n/git-po:
l10n: Fixed typo of git fetch-pack command
l10n: git.pot: v2.11.0 round 2 (1 new, 1 removed)
l10n: zh_CN: for git v2.11.0 l10n round 1
l10n: pt_PT: update Portuguese translation
l10n: fr.po fix grammar mistakes
l10n: fr.po v2.11.0_rnd1
l10n: sv.po: Update Swedish translation (2913t0f0u)
l10n: vi.po: Updated translation to v2.11.0 (2913t)
l10n: ko.po: Update Korean translation
l10n: git.pot: v2.11.0 round 1 (209 new, 53 removed)
l10n: ru.po: update Russian translation

Merge branch 'js/prepare-sequencer'Junio C Hamano Tue, 22 Nov 2016 22:15:38 +0000 (14:15 -0800)

Merge branch 'js/prepare-sequencer'

Fix for an error message string.

* js/prepare-sequencer:
i18n: fix unmatched single quote in error message

archive: read local configurationJunio C Hamano Tue, 22 Nov 2016 21:37:04 +0000 (13:37 -0800)

archive: read local configuration

Since b9605bc4f2 ("config: only read .git/config from configured
repos", 2016-09-12), we do not read from ".git/config" unless we
know we are in a repository. "git archive" however didn't do the
repository discovery and instead relied on the old behaviour.

Teach the command to run a "gentle" version of repository discovery
so that local configuration variables are honoured.

[jc: stole tests from peff]
Signed-off-by: Junio C Hamano <gitster@pobox.com>

mailinfo: read local configurationJunio C Hamano Tue, 22 Nov 2016 21:13:16 +0000 (13:13 -0800)

mailinfo: read local configuration

Since b9605bc4f2 ("config: only read .git/config from configured
repos", 2016-09-12), we do not read from ".git/config" unless we
know we are in a repository. "git mailinfo" however didn't do the
repository discovery and instead relied on the old behaviour. This
was mostly OK because it was merely run as a helper program by other
porcelain scripts that first chdir's up to the root of the working
tree.

Teach the command to run a "gentle" version of repository discovery
so that local configuration variables like mailinfo.scissors are
honoured.

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

l10n: Fixed typo of git fetch-pack commandJiang Xin Tue, 22 Nov 2016 14:24:59 +0000 (22:24 +0800)

l10n: Fixed typo of git fetch-pack command

Git 2.11.0-rc2 introduced one small l10n update, and this commit fixed
the affected translations all in one batch.

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

l10n: git.pot: v2.11.0 round 2 (1 new, 1 removed)Jiang Xin Tue, 22 Nov 2016 14:22:59 +0000 (22:22 +0800)

l10n: git.pot: v2.11.0 round 2 (1 new, 1 removed)

Generate po/git.pot from v2.11.0-rc2 for git v2.11.0 l10n round 2.

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

Merge branch 'master' of git://github.com/git-l10n... Jiang Xin Tue, 22 Nov 2016 14:08:47 +0000 (22:08 +0800)

Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
l10n: zh_CN: for git v2.11.0 l10n round 1
l10n: pt_PT: update Portuguese translation
l10n: fr.po fix grammar mistakes
l10n: fr.po v2.11.0_rnd1
l10n: sv.po: Update Swedish translation (2913t0f0u)
l10n: vi.po: Updated translation to v2.11.0 (2913t)
l10n: ko.po: Update Korean translation
l10n: git.pot: v2.11.0 round 1 (209 new, 53 removed)
l10n: ru.po: update Russian translation

doc: mention user-configured trailersJonathan Tan Mon, 21 Nov 2016 20:47:21 +0000 (12:47 -0800)

doc: mention user-configured trailers

In commit 1462450 ("trailer: allow non-trailers in trailer block",
2016-10-21), functionality was added (and tested [1]) to allow
non-trailer lines in trailer blocks, as long as those blocks contain at
least one Git-generated or user-configured trailer, and consists of at
least 25% trailers. The documentation was updated to mention this new
functionality, but did not mention "user-configured trailer".

Further update the documentation to also mention "user-configured
trailer".

[1] "with non-trailer lines mixed with a configured trailer" in
t/t7513-interpret-trailers.sh

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase -i: handle core.commentChar=autoJohannes Schindelin Mon, 21 Nov 2016 14:18:29 +0000 (15:18 +0100)

rebase -i: handle core.commentChar=auto

When 84c9dc2 (commit: allow core.commentChar=auto for character auto
selection, 2014-05-17) extended the core.commentChar functionality to
allow for the value 'auto', it forgot that rebase -i was already taught to
handle core.commentChar, and in turn forgot to let rebase -i handle that
new value gracefully.

Reported by Taufiq Hoven.

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

stripspace: respect repository configJohannes Schindelin Mon, 21 Nov 2016 14:18:24 +0000 (15:18 +0100)

stripspace: respect repository config

The way "git stripspace" reads the configuration was not quite
kosher, in that the code forgot to probe for a possibly existing
repository (note: stripspace is designed to be usable outside the
repository as well). It read .git/config only when it was run from
the top-level of the working tree by accident. A recent change
b9605bc4f2 ("config: only read .git/config from configured repos",
2016-09-12) stopped reading the repository-local configuration file
".git/config" unless the repository discovery process is done, so
that .git/config is never read even when run from the top-level,
exposing the old bug more.

When rebasing interactively with a commentChar defined in the
current repository's config, the help text at the bottom of the edit
script potentially used an incorrect comment character. This was not
only funny-looking, but also resulted in tons of warnings like this
one:

Warning: the command isn't recognized in the following line
- #

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

rebase -i: highlight problems with core.commentcharJohannes Schindelin Mon, 21 Nov 2016 14:18:05 +0000 (15:18 +0100)

rebase -i: highlight problems with core.commentchar

The interactive rebase does not currently play well with
core.commentchar. Let's add some tests to highlight those problems
that will be fixed in the remainder of the series.

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

i18n: fix unmatched single quote in error messageJiang Xin Sun, 20 Nov 2016 12:26:17 +0000 (20:26 +0800)

i18n: fix unmatched single quote in error message

Fixed unmatched single quote introduced by commit:

* f56fffef9a sequencer: teach write_message() to append an optional LF

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: zh_CN: for git v2.11.0 l10n round 1Jiang Xin Thu, 27 Oct 2016 13:53:37 +0000 (21:53 +0800)

l10n: zh_CN: for git v2.11.0 l10n round 1

Update 209 translations (2913t0f0u) for git v2.11.0-rc0.

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

for-each-ref: do not segv with %(HEAD) on an unborn... Junio C Hamano Fri, 18 Nov 2016 23:21:12 +0000 (15:21 -0800)

for-each-ref: do not segv with %(HEAD) on an unborn branch

The code to flip between "*" and " " prefixes depending on what
branch is checked out used in --format='%(HEAD)' did not consider
that HEAD may resolve to an unborn branch and dereferenced a NULL.

This will become a lot easier to trigger as the codepath will be
used to reimplement "git branch [--list]" in the future.

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

submodules: allow empty working-tree dirs in merge... David Turner Mon, 7 Nov 2016 18:31:31 +0000 (13:31 -0500)

submodules: allow empty working-tree dirs in merge/cherry-pick

When a submodule is being merged or cherry-picked into a working
tree that already contains a corresponding empty directory, do not
record a conflict.

One situation where this bug appears is:

- Commit 1 adds a submodule
- Commit 2 removes that submodule and re-adds it into a subdirectory
(sub1 to sub1/sub1).
- Commit 3 adds an unrelated file.

Now the user checks out commit 1 (first deinitializing the submodule),
and attempts to cherry-pick commit 3. Previously, this would fail,
because the incoming submodule sub1/sub1 would falsely conflict with
the empty sub1 directory.

This patch ignores the empty sub1 directory, fixing the bug. We only
ignore the empty directory if the object being emplaced is a
submodule, which expects an empty directory.

Signed-off-by: David Turner <dturner@twosigma.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.11-rc2 v2.11.0-rc2Junio C Hamano Thu, 17 Nov 2016 21:47:36 +0000 (13:47 -0800)

Git 2.11-rc2

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

Merge branch 'tk/diffcore-delta-remove-unused'Junio C Hamano Thu, 17 Nov 2016 21:45:22 +0000 (13:45 -0800)

Merge branch 'tk/diffcore-delta-remove-unused'

Code cleanup.

* tk/diffcore-delta-remove-unused:
diffcore-delta: remove unused parameter to diffcore_count_changes()

Merge branch 'jk/create-branch-remove-unused-param'Junio C Hamano Thu, 17 Nov 2016 21:45:21 +0000 (13:45 -0800)

Merge branch 'jk/create-branch-remove-unused-param'

Code clean-up.

* jk/create-branch-remove-unused-param:
create_branch: drop unused "head" parameter

Merge branch 'nd/worktree-lock'Junio C Hamano Thu, 17 Nov 2016 21:45:21 +0000 (13:45 -0800)

Merge branch 'nd/worktree-lock'

Typofix.

* nd/worktree-lock:
git-worktree.txt: fix typo "to"/"two", and add comma

submodule_needs_pushing(): explain the behaviour when... Heiko Voigt Wed, 16 Nov 2016 15:11:07 +0000 (16:11 +0100)

submodule_needs_pushing(): explain the behaviour when we cannot answer

When we do not have commits that are involved in the update of the
superproject in our copy of submodule, we cannot tell if the remote
end needs to acquire these commits to be able to check out the
superproject tree. Explain why we answer "no there is no need/point
in pushing from our submodule repository" in this case.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

batch check whether submodule needs pushing into one... Heiko Voigt Wed, 16 Nov 2016 15:11:06 +0000 (16:11 +0100)

batch check whether submodule needs pushing into one call

We run a command for each sha1 change in a submodule. This is
unnecessary since we can simply batch all sha1's we want to check into
one command. Lets do it so we can speedup the check when many submodule
changes are in need of checking.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

serialize collection of refs that contain submodule... Heiko Voigt Wed, 16 Nov 2016 15:11:05 +0000 (16:11 +0100)

serialize collection of refs that contain submodule changes

We are iterating over each pushed ref and want to check whether it
contains changes to submodules. Instead of immediately checking each ref
lets first collect them and then do the check for all of them in one
revision walk.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

serialize collection of changed submodulesHeiko Voigt Wed, 16 Nov 2016 15:11:04 +0000 (16:11 +0100)

serialize collection of changed submodules

To check whether a submodule needs to be pushed we need to collect all
changed submodules. Lets collect them first and then execute the
possibly expensive test whether certain revisions are already pushed
only once per submodule.

There is further potential for optimization since we can assemble one
command and only issued that instead of one call for each remote ref in
the submodule.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rev-parse: fix parent shorthands with --symbolicJeff King Wed, 16 Nov 2016 08:46:26 +0000 (00:46 -0800)

rev-parse: fix parent shorthands with --symbolic

The try_parent_shorthands() function shows each parent via
show_rev(). We pass the correct parent sha1, but our "name"
parameter still points at the original refname. So asking
for a regular rev-parse works fine (it prints the sha1s),
but asking for the symbolic name gives nonsense like:

$ git rev-parse --symbolic HEAD^-1
HEAD
^HEAD

which is always an empty set of commits. Asking for "^!" is
likewise broken, with the added bonus that its prints ^HEAD
for _each_ parent. And "^@" just prints HEAD repeatedly.

Arguably it would be correct to just pass NULL as the name
here, and always get the parent expressed as a sha1. The
"--symbolic" documentaton claims only "as close to the
original input as possible", and we certainly fallback to
sha1s where necessary. But it's pretty easy to generate a
symbolic name on the fly from the original.

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

diffcore-delta: remove unused parameter to diffcore_cou... Tobias Klauser Mon, 14 Nov 2016 13:39:05 +0000 (14:39 +0100)

diffcore-delta: remove unused parameter to diffcore_count_changes()

The delta_limit parameter to diffcore_count_changes() has been unused
since commit ba23bbc8e ("diffcore-delta: make change counter to byte
oriented again.", 2006-03-04).

Remove the parameter and adjust all callers.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-worktree.txt: fix typo "to"/"two", and add commaBen North Sat, 12 Nov 2016 08:55:16 +0000 (08:55 +0000)

git-worktree.txt: fix typo "to"/"two", and add comma

Signed-off-by: Ben North <ben@redfrontdoor.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: pt_PT: update Portuguese translationVasco Almeida Sun, 6 Nov 2016 13:04:01 +0000 (12:04 -0100)

l10n: pt_PT: update Portuguese translation

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

Git 2.11.0-rc1 v2.11.0-rc1Junio C Hamano Fri, 11 Nov 2016 22:04:32 +0000 (14:04 -0800)

Git 2.11.0-rc1

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

Merge branch 'rt/fetch-pack-error-message-fix'Junio C Hamano Fri, 11 Nov 2016 21:56:31 +0000 (13:56 -0800)

Merge branch 'rt/fetch-pack-error-message-fix'

An error message in fetch-pack executable that was newly marked for
translation was misspelt, which has been fixed.

* rt/fetch-pack-error-message-fix:
fetch-pack.c: correct command at the beginning of an error message

Merge branch 'ps/common-info-doc'Junio C Hamano Fri, 11 Nov 2016 21:56:31 +0000 (13:56 -0800)

Merge branch 'ps/common-info-doc'

Doc fix.

* ps/common-info-doc:
doc: fix location of 'info/' with $GIT_COMMON_DIR

Merge branch 'js/pwd-var-vs-pwd-cmd-fix'Junio C Hamano Fri, 11 Nov 2016 21:56:30 +0000 (13:56 -0800)

Merge branch 'js/pwd-var-vs-pwd-cmd-fix'

Last minute fixes to two fixups merged to 'master' recently.

* js/pwd-var-vs-pwd-cmd-fix:
t0021, t5615: use $PWD instead of $(pwd) in PATH-like shell variables

Merge branch 'ls/macos-update'Junio C Hamano Fri, 11 Nov 2016 21:56:30 +0000 (13:56 -0800)

Merge branch 'ls/macos-update'

Portability update and workaround for builds on recent Mac OS X.

* ls/macos-update:
travis-ci: disable GIT_TEST_HTTPD for macOS
Makefile: set NO_OPENSSL on macOS by default

Merge branch 'js/prepare-sequencer'Junio C Hamano Fri, 11 Nov 2016 21:56:30 +0000 (13:56 -0800)

Merge branch 'js/prepare-sequencer'

Silence a clang warning introduced by a recently graduated topic.

* js/prepare-sequencer:
sequencer: silence -Wtautological-constant-out-of-range-compare

Merge branch 'ls/filter-process'Junio C Hamano Fri, 11 Nov 2016 21:56:30 +0000 (13:56 -0800)

Merge branch 'ls/filter-process'

Test portability improvements and optimization for an
already-graduated topic.

* ls/filter-process:
t0021: remove debugging cruft

Merge branch 'as/merge-attr-sleep'Junio C Hamano Fri, 11 Nov 2016 21:56:30 +0000 (13:56 -0800)

Merge branch 'as/merge-attr-sleep'

Fix for a racy false-positive test failure.

* as/merge-attr-sleep:
t6026: clarify the point of "kill $(cat sleep.pid)"
t6026: ensure that long-running script really is
Revert "t6026-merge-attr: don't fail if sleep exits early"
Revert "t6026-merge-attr: ensure that the merge driver was called"
t6026-merge-attr: ensure that the merge driver was called
t6026-merge-attr: don't fail if sleep exits early

fetch-pack.c: correct command at the beginning of an... Ralf Thielow Fri, 11 Nov 2016 17:21:00 +0000 (18:21 +0100)

fetch-pack.c: correct command at the beginning of an error message

One error message in fetch-pack.c uses 'git fetch_pack' at the beginning
which is not a git command. Use 'git fetch-pack' instead.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0021: remove debugging cruftJunio C Hamano Fri, 11 Nov 2016 21:07:37 +0000 (13:07 -0800)

t0021: remove debugging cruft

The redirection of the standard error stream to a temporary file is
a leftover cruft during debugging. Remove it.

Besides, it is reported by folks on the Windows that the test is
flaky with this redirection; somebody gets confused and this
merely-redirected-to file gets marked as delete-pending by git.exe
and makes it finish with a non-zero exit status when "git checkout"
finishes. Windows folks may want to figure that one out, but for
the purpose of this test, it shouldn't become a show-stopper.

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

t6026: clarify the point of "kill $(cat sleep.pid)"Johannes Sixt Fri, 11 Nov 2016 20:24:44 +0000 (21:24 +0100)

t6026: clarify the point of "kill $(cat sleep.pid)"

We lengthened the time the leftover process sleeps in the previous
commit to make sure it will be there while 'git merge' runs and
finishes. It therefore needs to be killed before leaving the test.
And it needs to be killed even when 'git merge' fails, so it has to
be triggered via test_when_finished mechanism.

Explain all that in a large comment, and move the use site of
test_when_finished to immediately before 'git merge' invocation,
where the process is spawned.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0021, t5615: use $PWD instead of $(pwd) in PATH-like... Johannes Sixt Fri, 11 Nov 2016 17:31:48 +0000 (18:31 +0100)

t0021, t5615: use $PWD instead of $(pwd) in PATH-like shell variables

We have to use $PWD instead of $(pwd) because on Windows the latter
would add a C: style path to bash's Unix-style $PATH variable, which
becomes confused by the colon after the drive letter. ($PWD is a
Unix-style path.)

In the case of GIT_ALTERNATE_OBJECT_DIRECTORIES, bash on Windows
assembles a Unix-style path list with the colon as separators. It
converts the value to a Windows-style path list with the semicolon as
path separator when it forwards the variable to git.exe. The same
confusion happens when bash's original value is contaminated with
Windows style paths.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

doc: fix location of 'info/' with $GIT_COMMON_DIRPatrick Steinhardt Fri, 11 Nov 2016 11:23:32 +0000 (12:23 +0100)

doc: fix location of 'info/' with $GIT_COMMON_DIR

With the introduction of the $GIT_COMMON_DIR variable, the
repository layout manual was changed to reflect the location for
many files in case the variable is set. While adding the new
locations, one typo snuck in regarding the location of the
'info/' folder, which is falsely claimed to reside at
"$GIT_COMMON_DIR/index".

Fix the typo to point to "$GIT_COMMON_DIR/info/" instead.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t6026: ensure that long-running script really isJohannes Schindelin Wed, 9 Nov 2016 13:51:22 +0000 (14:51 +0100)

t6026: ensure that long-running script really is

When making sure that background tasks are cleaned up in 5babb5b
(t6026-merge-attr: clean up background process at end of test case,
2016-09-07), we considered to let the background task sleep longer, just
to be certain that it will still be running when we want to kill it
after the test.

Sadly, the assumption appears not to hold true that the test case passes
quickly enough to kill the background task within a second.

Simply increase it to an hour. No system can be possibly slow enough to
make above-mentioned assumption incorrect.

Reported by Andreas Schwab.

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

Revert "t6026-merge-attr: don't fail if sleep exits... Junio C Hamano Thu, 10 Nov 2016 23:55:13 +0000 (15:55 -0800)

Revert "t6026-merge-attr: don't fail if sleep exits early"

This reverts commit 734fde2d7167e4b20d2ff6062ade3846949b0741.

The point of the test is that the stray process was still running
when 'git merge' did its thing through its completion, so a failure
to "kill" it means we didn't give a condition to the test to trigger
a possible future breakage. Appending "|| :" to the "kill" is
sweeping a test-bug under the rug.