gitweb.git
Merge branch 'jk/HEAD-symref-in-xfer-namespaces' into... Junio C Hamano Thu, 25 Jul 2019 21:27:09 +0000 (14:27 -0700)

Merge branch 'jk/HEAD-symref-in-xfer-namespaces' into maint

The server side support for "git fetch" used to show incorrect
value for the HEAD symbolic ref when the namespace feature is in
use, which has been corrected.

* jk/HEAD-symref-in-xfer-namespaces:
upload-pack: strip namespace from symref data

Merge branch 'ew/server-info-remove-crufts' into maintJunio C Hamano Thu, 25 Jul 2019 21:27:08 +0000 (14:27 -0700)

Merge branch 'ew/server-info-remove-crufts' into maint

"git update-server-info" used to leave stale packfiles in its
output, which has been corrected.

* ew/server-info-remove-crufts:
server-info: do not list unlinked packs

Merge branch 'es/grep-require-name-when-needed' into... Junio C Hamano Thu, 25 Jul 2019 21:27:08 +0000 (14:27 -0700)

Merge branch 'es/grep-require-name-when-needed' into maint

More parameter validation.

* es/grep-require-name-when-needed:
grep: fail if call could output and name is null

Merge branch 'ds/object-info-for-prefetch-fix' into... Junio C Hamano Thu, 25 Jul 2019 21:27:08 +0000 (14:27 -0700)

Merge branch 'ds/object-info-for-prefetch-fix' into maint

Code cleanup and futureproof.

* ds/object-info-for-prefetch-fix:
sha1-file: split OBJECT_INFO_FOR_PREFETCH

Merge branch 'mh/import-transport-fd-fix' into maintJunio C Hamano Thu, 25 Jul 2019 21:27:07 +0000 (14:27 -0700)

Merge branch 'mh/import-transport-fd-fix' into maint

The ownership rule for the file descriptor to fast-import remote
backend was mixed up, leading to unrelated file descriptor getting
closed, which has been fixed.

* mh/import-transport-fd-fix:
Use xmmap_gently instead of xmmap in use_pack
dup() the input fd for fast-import used for remote helpers

Merge branch 'nd/corrupt-worktrees' into maintJunio C Hamano Thu, 25 Jul 2019 21:27:07 +0000 (14:27 -0700)

Merge branch 'nd/corrupt-worktrees' into maint

"git worktree add" used to fail when another worktree connected to
the same repository was corrupt, which has been corrected.

* nd/corrupt-worktrees:
worktree add: be tolerant of corrupt worktrees

Merge branch 'nd/init-relative-template-fix' into maintJunio C Hamano Thu, 25 Jul 2019 21:27:06 +0000 (14:27 -0700)

Merge branch 'nd/init-relative-template-fix' into maint

A relative pathname given to "git init --template=<path> <repo>"
ought to be relative to the directory "git init" gets invoked in,
but it instead was made relative to the repository, which has been
corrected.

* nd/init-relative-template-fix:
init: make --template path relative to $CWD

Git 2.22 v2.22.0Junio C Hamano Fri, 7 Jun 2019 16:39:21 +0000 (09:39 -0700)

Git 2.22

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

Merge tag 'l10n-2.22.0-rnd3' of git://github.com/git... Junio C Hamano Fri, 7 Jun 2019 16:36:32 +0000 (09:36 -0700)

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

l10n-2.22.0-rnd3

* tag 'l10n-2.22.0-rnd3' of git://github.com/git-l10n/git-po: (25 commits)
l10n: fr.po: Review French translation
l10n: de.po: Update German translation
l10n: de.po: improve description of 'git reset --quiet'
l10n: TEAMS: Change German translation team leader
l10n: bg.po: Updated Bulgarian translation (4581t)
l10n: zh_CN: Revision for git v2.22.0 l10n
l10n: zh_CN: for git v2.22.0 l10n round 1~3
l10n: es: 2.22.0 round 3
l10n: it.po: Updated Italian translation
l10n: fr v2.22.0 rnd 3
l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3
l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)
l10n: es: 2.22.0 round 2
l10n: bg.po: Updated Bulgarian translation (4580t)
l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2
l10n: fr.po v2.22.0 round 2
l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed)
l10n: bg.po: Updated Bulgarian translation (4577t)
l10n: es: 2.22.0 round 1
l10n: vi.po(4577t): Updated Vietnamese translation for v2.22.0 round 1
...

Merge branch 'fr_review' of git://github.com/jnavila/gitJiang Xin Fri, 7 Jun 2019 08:51:09 +0000 (16:51 +0800)

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

* 'fr_review' of git://github.com/jnavila/git:
l10n: fr.po: Review French translation

Merge branch 'master' of git://github.com/alshopov... Jiang Xin Fri, 7 Jun 2019 08:50:23 +0000 (16:50 +0800)

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

* 'master' of git://github.com/alshopov/git-po:
l10n: bg.po: Updated Bulgarian translation (4581t)

l10n: fr.po: Review French translationCédric Malard Wed, 5 Jun 2019 21:33:52 +0000 (23:33 +0200)

l10n: fr.po: Review French translation

Signed-off-by: Cédric Malard <c.malard-git@valdun.net>
Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>

Merge branch 'en/merge-directory-renames-fix'Junio C Hamano Thu, 6 Jun 2019 21:03:36 +0000 (14:03 -0700)

Merge branch 'en/merge-directory-renames-fix'

Recent code restructuring of merge-recursive engine introduced a
regression dealing with rename/add conflict.

* en/merge-directory-renames-fix:
merge-recursive: restore accidentally dropped setting of path

l10n: de.po: Update German translationMatthias Rüster Sat, 1 Jun 2019 12:32:49 +0000 (14:32 +0200)

l10n: de.po: Update German translation

Reviewed-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>

l10n: de.po: improve description of 'git reset --quiet'Ralf Thielow Thu, 28 Feb 2019 18:25:51 +0000 (19:25 +0100)

l10n: de.po: improve description of 'git reset --quiet'

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

l10n: TEAMS: Change German translation team leaderMatthias Rüster Sat, 1 Jun 2019 12:32:44 +0000 (14:32 +0200)

l10n: TEAMS: Change German translation team leader

Acked-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Matthias Rüster <matthias.ruester@gmail.com>

merge-recursive: restore accidentally dropped setting... Elijah Newren Tue, 4 Jun 2019 20:27:50 +0000 (13:27 -0700)

merge-recursive: restore accidentally dropped setting of path

In commit 8daec1df03de ("merge-recursive: switch from (oid,mode) pairs
to a diff_filespec", 2019-04-05), we actually switched from
(oid,mode,path) triplets to a diff_filespec -- but most callsites in the
patch only needed to worry about oid and mode so the commit message
focused on that. The oversight in the commit message apparently spilled
over to the code as well; one of the dozen or so callsites accidentally
dropped the setting of the path in the conversion. Restore the path
setting in that location.

Also, this pointed out that our testsuite was lacking a good rename/add
test, at least one that involved the need for merge content with the
rename. Add such a test, and since rename/add vs. add/rename could
possibly be important, redo the merge the opposite direction to make
sure we don't have issues with the direction of the merge. These
testcases failed before restoring the setting of path, but with the
paths appropriately set the testcases both pass.

Reported-by: Ben Humphreys <behumphreys@atlassian.com>
Based-on-patch-by: SZEDER Gábor <szeder.dev@gmail.com>
Tested-by: Ben Humphreys <behumphreys@atlassian.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: bg.po: Updated Bulgarian translation (4581t)Alexander Shopov Wed, 5 Jun 2019 06:51:15 +0000 (08:51 +0200)

l10n: bg.po: Updated Bulgarian translation (4581t)

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

l10n: zh_CN: Revision for git v2.22.0 l10nFangyi Zhou Sun, 2 Jun 2019 21:41:45 +0000 (22:41 +0100)

l10n: zh_CN: Revision for git v2.22.0 l10n

Revise 51 translations, improving consistency for some phrased.
Update email address for Fangyi Zhou

Signed-off-by: Fangyi Zhou <me@fangyi.io>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

l10n: zh_CN: for git v2.22.0 l10n round 1~3Jiang Xin Tue, 16 Apr 2019 00:56:12 +0000 (08:56 +0800)

l10n: zh_CN: for git v2.22.0 l10n round 1~3

Translate 274 new messages (4581t0f0u) for git 2.22.0.

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

Merge branch '2.22' of https://github.com/ChrisADR... Jiang Xin Wed, 5 Jun 2019 00:35:35 +0000 (08:35 +0800)

Merge branch '2.22' of https://github.com/ChrisADR/git-po

* '2.22' of https://github.com/ChrisADR/git-po:
l10n: es: 2.22.0 round 3

Merge branch 'it-l10n-wip' of github.com:AlessandroMent... Jiang Xin Wed, 5 Jun 2019 00:17:28 +0000 (08:17 +0800)

Merge branch 'it-l10n-wip' of github.com:AlessandroMenti/git-po

* 'it-l10n-wip' of github.com:AlessandroMenti/git-po:
l10n: it.po: Updated Italian translation

l10n: es: 2.22.0 round 3Christopher Diaz Riveros Tue, 4 Jun 2019 23:52:28 +0000 (18:52 -0500)

l10n: es: 2.22.0 round 3

Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>

l10n: it.po: Updated Italian translationAlessandro Menti Sun, 19 May 2019 06:51:55 +0000 (08:51 +0200)

l10n: it.po: Updated Italian translation

Signed-off-by: Alessandro Menti <alessandro.menti@alessandromenti.it>

l10n: fr v2.22.0 rnd 3Jean-Noël Avila Tue, 4 Jun 2019 17:53:32 +0000 (19:53 +0200)

l10n: fr v2.22.0 rnd 3

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>

l10n: vi.po(4581t): Updated Vietnamese translation... Tran Ngoc Quan Tue, 4 Jun 2019 01:10:46 +0000 (08:10 +0700)

l10n: vi.po(4581t): Updated Vietnamese translation for v2.22.0 round 3

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

l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)Jiang Xin Tue, 4 Jun 2019 00:27:36 +0000 (08:27 +0800)

l10n: git.pot: v2.22.0 round 3 (3 new, 2 removed)

Generate po/git.pot from v2.22.0-rc3 for git v2.22.0 l10n round 3.

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

Merge branch 'master' of git://git./git/gitJiang Xin Tue, 4 Jun 2019 00:24:28 +0000 (08:24 +0800)

Merge branch 'master' of git://git./git/git

* 'master' of git://git.kernel.org/pub/scm/git/git:
Git 2.22-rc3
i18n: fix typos found during l10n for git 2.22.0
RelNotes: minor typo fixes in 2.22.0 draft
list-objects-filter: disable 'sparse:path' filters

Git 2.22-rc3 v2.22.0-rc3Junio C Hamano Mon, 3 Jun 2019 18:25:12 +0000 (11:25 -0700)

Git 2.22-rc3

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

Merge branch 'cc/list-objects-filter-wo-sparse-path'Junio C Hamano Mon, 3 Jun 2019 18:18:54 +0000 (11:18 -0700)

Merge branch 'cc/list-objects-filter-wo-sparse-path'

Disable "--filter=sparse:path=<path>" that would allow reading from
paths on the filesystem.

* cc/list-objects-filter-wo-sparse-path:
list-objects-filter: disable 'sparse:path' filters

i18n: fix typos found during l10n for git 2.22.0Jiang Xin Sun, 2 Jun 2019 15:11:22 +0000 (23:11 +0800)

i18n: fix typos found during l10n for git 2.22.0

Fix two typos introduced by the following commits:

+ 31fba9d3b4 (diff-parseopt: convert --[src|dst]-prefix, 2019-03-24)
+ ed8b4132c8 (remote-curl: mark all error messages for translation,
2019-03-05)

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>

RelNotes: minor typo fixes in 2.22.0 draftTodd Zullinger Sat, 1 Jun 2019 15:51:06 +0000 (11:51 -0400)

RelNotes: minor typo fixes in 2.22.0 draft

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

l10n: es: 2.22.0 round 2Christopher Diaz Riveros Mon, 3 Jun 2019 14:34:50 +0000 (09:34 -0500)

l10n: es: 2.22.0 round 2

Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>

Merge branch 'master' of https://github.com/vnwildman/gitJiang Xin Sun, 2 Jun 2019 14:35:11 +0000 (22:35 +0800)

Merge branch 'master' of https://github.com/vnwildman/git

* 'master' of https://github.com/vnwildman/git:
l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2

Merge branch 'master' of git://github.com/alshopov... Jiang Xin Sun, 2 Jun 2019 14:09:35 +0000 (22:09 +0800)

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

* 'master' of git://github.com/alshopov/git-po:
l10n: bg.po: Updated Bulgarian translation (4580t)

l10n: bg.po: Updated Bulgarian translation (4580t)Alexander Shopov Sun, 2 Jun 2019 07:26:52 +0000 (09:26 +0200)

l10n: bg.po: Updated Bulgarian translation (4580t)

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

l10n: vi.po(4580t): Updated Vietnamese translation... Tran Ngoc Quan Sat, 1 Jun 2019 01:36:37 +0000 (08:36 +0700)

l10n: vi.po(4580t): Updated Vietnamese translation for v2.22.0 round 2

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

l10n: fr.po v2.22.0 round 2Jean-Noël Avila Fri, 31 May 2019 08:46:21 +0000 (10:46 +0200)

l10n: fr.po v2.22.0 round 2

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>

l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed)Jiang Xin Fri, 31 May 2019 06:36:22 +0000 (14:36 +0800)

l10n: git.pot: v2.22.0 round 2 (6 new, 3 removed)

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

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

Merge branch 'master' of git://git./git/gitJiang Xin Fri, 31 May 2019 06:34:26 +0000 (14:34 +0800)

Merge branch 'master' of git://git./git/git

* 'master' of git://git.kernel.org/pub/scm/git/git: (66 commits)
Git 2.22-rc2
...

Merge branch 'master' of https://github.com/Softcatala... Jiang Xin Fri, 31 May 2019 06:32:35 +0000 (14:32 +0800)

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

* 'master' of https://github.com/Softcatala/git-po:
l10n: Update Catalan translation

Git 2.22-rc2 v2.22.0-rc2Junio C Hamano Thu, 30 May 2019 17:56:29 +0000 (10:56 -0700)

Git 2.22-rc2

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

Merge branch 'js/rebase-config-bitfix'Junio C Hamano Thu, 30 May 2019 17:50:47 +0000 (10:50 -0700)

Merge branch 'js/rebase-config-bitfix'

* js/rebase-config-bitfix:
rebase: replace incorrect logical negation by correct bitwise one

Merge branch 'es/doc-gitsubmodules-markup'Junio C Hamano Thu, 30 May 2019 17:50:46 +0000 (10:50 -0700)

Merge branch 'es/doc-gitsubmodules-markup'

Doc markup fix.

* es/doc-gitsubmodules-markup:
gitsubmodules: align html and nroff lists

Merge branch 'ja/diff-opt-typofix'Junio C Hamano Thu, 30 May 2019 17:50:46 +0000 (10:50 -0700)

Merge branch 'ja/diff-opt-typofix'

Typofix.

* ja/diff-opt-typofix:
diff: fix mistake in translatable strings

Merge branch 'jt/clone-server-option'Junio C Hamano Thu, 30 May 2019 17:50:46 +0000 (10:50 -0700)

Merge branch 'jt/clone-server-option'

A brown-paper-bag bugfix to a change already in 'master'.

* jt/clone-server-option:
fetch-pack: send server options after command

Merge branch 'sg/progress-off-by-one-fix'Junio C Hamano Thu, 30 May 2019 17:50:45 +0000 (10:50 -0700)

Merge branch 'sg/progress-off-by-one-fix'

A brown-paper-bag bugfix to a change already in 'master'.

* sg/progress-off-by-one-fix:
progress: avoid empty line when breaking the progress line

Merge branch 'js/rebase-deprecate-preserve-merges'Junio C Hamano Thu, 30 May 2019 17:50:45 +0000 (10:50 -0700)

Merge branch 'js/rebase-deprecate-preserve-merges'

A bit more leftover clean-up to deprepcate "rebase -p".

* js/rebase-deprecate-preserve-merges:
rebase docs: recommend `-r` over `-p`
docs: say that `--rebase=preserve` is deprecated
tests: mark a couple more test cases as requiring `rebase -p`

Merge branch 'sg/trace2-rename'Junio C Hamano Thu, 30 May 2019 17:50:45 +0000 (10:50 -0700)

Merge branch 'sg/trace2-rename'

Rename environment variables that are used to control the "trace2"
mechanism to a more readable name.

* sg/trace2-rename:
trace2: document the supported values of GIT_TRACE2* env variables
trace2: rename environment variables to GIT_TRACE2*

Merge branch 'jh/trace2'Junio C Hamano Thu, 30 May 2019 17:50:44 +0000 (10:50 -0700)

Merge branch 'jh/trace2'

* jh/trace2:
trace2: fix tracing when NO_PTHREADS is defined

Merge branch 'nd/diff-parseopt'Junio C Hamano Thu, 30 May 2019 17:50:44 +0000 (10:50 -0700)

Merge branch 'nd/diff-parseopt'

A brown-paper-bag bugfix to a change already in 'master'.

* nd/diff-parseopt:
parse-options: check empty value in OPT_INTEGER and OPT_ABBREV
diff-parseopt: restore -U (no argument) behavior
diff-parseopt: correct variable types that are used by parseopt

list-objects-filter: disable 'sparse:path' filtersChristian Couder Wed, 29 May 2019 12:44:32 +0000 (14:44 +0200)

list-objects-filter: disable 'sparse:path' filters

If someone wants to use as a filter a sparse file that is in the
repository, something like "--filter=sparse:oid=<ref>:<path>"
already works.

So 'sparse:path' is only interesting if the sparse file is not in
the repository. In this case though the current implementation has
a big security issue, as it makes it possible to ask the server to
read any file, like for example /etc/password, and to explore the
filesystem, as well as individual lines of files.

If someone is interested in using a sparse file that is not in the
repository as a filter, then at the minimum a config option, such
as "uploadpack.sparsePathFilter", should be implemented first to
restrict the directory from which the files specified by
'sparse:path' can be read.

For now though, let's just disable 'sparse:path' filters.

Helped-by: Matthew DeVore <matvore@google.com>
Helped-by: Jeff Hostetler <git@jeffhostetler.com>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

parse-options: check empty value in OPT_INTEGER and... Nguyễn Thái Ngọc Duy Wed, 29 May 2019 09:11:16 +0000 (16:11 +0700)

parse-options: check empty value in OPT_INTEGER and OPT_ABBREV

When parsing the argument for OPT_INTEGER and OPT_ABBREV, we check if we
can parse the entire argument to a number with "if (*s)". There is one
missing check: if "arg" is empty to begin with, we fail to notice.

This could happen with long option by writing like

git diff --inter-hunk-context= blah blah

Before 16ed6c97cc (diff-parseopt: convert --inter-hunk-context,
2019-03-24), --inter-hunk-context is handled by a custom parser
opt_arg() and does detect this correctly.

This restores the bahvior for --inter-hunk-context and make sure all
other integer options are handled the same (sane) way. For OPT_ABBREV
this is new behavior. But it makes it consistent with the rest.

PS. OPT_MAGNITUDE has similar code but git_parse_ulong() does detect
empty "arg". So it's good to go.

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

diff-parseopt: restore -U (no argument) behaviorNguyễn Thái Ngọc Duy Wed, 29 May 2019 09:11:15 +0000 (16:11 +0700)

diff-parseopt: restore -U (no argument) behavior

Before d473e2e0e8 (diff.c: convert -U|--unified, 2019-01-27), -U and
--unified are implemented with a custom parser opt_arg() in diff.c. I
didn't check this code carefully and not realize that it's the
equivalent of PARSE_OPT_NONEG | PARSE_OPT_OPTARG.

In other words, if -U is specified without any argument, the option
should be accepted, and the default value should be used. Without
PARSE_OPT_OPTARG, parse_options() will reject this case and cause a
regression.

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

diff-parseopt: correct variable types that are used... Nguyễn Thái Ngọc Duy Wed, 29 May 2019 09:11:14 +0000 (16:11 +0700)

diff-parseopt: correct variable types that are used by parseopt

Most number-related OPT_ macros store the value in an 'int'
variable. Many of the variables in 'struct diff_options' have a
different type, but during the conversion to using parse_options() I
failed to notice and correct.

The problem was reported on s360x which is a big-endian
architechture. The variable to store '-w' option in this case is
xdl_opts, 'long' type, 8 bytes. But since parse_options() assumes
'int' (4 bytes), it will store bits in the wrong part of xdl_opts. The
problem was found on little-endian platforms because parse_options()
will accidentally store at the right part of xdl_opts.

There aren't much to say about the type change (except that 'int' for
xdl_opts should still be big enough, since Windows' long is the same
size as 'int' and nobody has complained so far). Some safety checks may
be implemented in the future to prevent class of bugs.

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

Merge branch 'master' of git://github.com/alshopov... Jiang Xin Wed, 29 May 2019 14:01:19 +0000 (22:01 +0800)

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

* 'master' of git://github.com/alshopov/git-po:
l10n: bg.po: Updated Bulgarian translation (4577t)

l10n: bg.po: Updated Bulgarian translation (4577t)Alexander Shopov Fri, 17 May 2019 08:27:52 +0000 (10:27 +0200)

l10n: bg.po: Updated Bulgarian translation (4577t)

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

sha1-file: split OBJECT_INFO_FOR_PREFETCHDerrick Stolee Tue, 28 May 2019 15:19:07 +0000 (08:19 -0700)

sha1-file: split OBJECT_INFO_FOR_PREFETCH

The OBJECT_INFO_FOR_PREFETCH bitflag was added to sha1-file.c in 0f4a4fb1
(sha1-file: support OBJECT_INFO_FOR_PREFETCH, 2019-03-29) and is used to
prevent the fetch_objects() method when enabled.

However, there is a problem with the current use. The definition of
OBJECT_INFO_FOR_PREFETCH is given by adding 32 to OBJECT_INFO_QUICK. This is
clearly stated above the definition (in a comment) that this is so
OBJECT_INFO_FOR_PREFETCH implies OBJECT_INFO_QUICK. The problem is that using
"flag & OBJECT_INFO_FOR_PREFETCH" means that OBJECT_INFO_QUICK also implies
OBJECT_INFO_FOR_PREFETCH.

Split out the single bit from OBJECT_INFO_FOR_PREFETCH into a new
OBJECT_INFO_SKIP_FETCH_OBJECT as the single bit and keep
OBJECT_INFO_FOR_PREFETCH as the union of two flags. This allows a clearer use
of flag checking while also keeping the implication of OBJECT_INFO_QUICK.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase docs: recommend `-r` over `-p`Johannes Schindelin Tue, 28 May 2019 12:42:16 +0000 (05:42 -0700)

rebase docs: recommend `-r` over `-p`

The `--preserve-merges` option is now deprecated in favor of
`--rebase-merges`; Let's stop recommending the former.

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

docs: say that `--rebase=preserve` is deprecatedJohannes Schindelin Tue, 28 May 2019 12:42:15 +0000 (05:42 -0700)

docs: say that `--rebase=preserve` is deprecated

As of Git v2.22.0, the `--preserve-merges` backend of `git rebase` will
be officially deprecated in favor of the `--rebase-merges` backend.
Consequently, `git pull --rebase=preserve` will also be deprected. State
this explicitly.

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

tests: mark a couple more test cases as requiring ... Johannes Schindelin Tue, 28 May 2019 12:42:14 +0000 (05:42 -0700)

tests: mark a couple more test cases as requiring `rebase -p`

The `--preserve-merges` option has been deprecated, and as a consequence
we started to mark test cases that require that option to be supported,
in preparation for removing that support eventually.

Since we marked those test cases, a couple more crept into the test
suite, and with this patch, we mark them, too.

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

server-info: do not list unlinked packsEric Wong Thu, 23 May 2019 17:27:23 +0000 (17:27 +0000)

server-info: do not list unlinked packs

Having non-existent packs in objects/info/packs causes
dumb HTTP clients to abort.

v2: use single loop with ALLOC_GROW as suggested by Jeff King

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

fetch-pack: send server options after commandJonathan Tan Wed, 22 May 2019 20:08:22 +0000 (13:08 -0700)

fetch-pack: send server options after command

Currently, if any server options are specified during a protocol v2
fetch, server options will be sent before "command=fetch". Write server
options to the request buffer in send_fetch_request() so that the
components of the request are sent in the correct order.

The protocol documentation states that the command must come first. The
Git server implementation in serve.c (see process_request() in that
file) tolerates any order of command and capability, which is perhaps
why we haven't noticed this. This was noticed when testing against a
JGit server implementation, which follows the documentation in this
regard.

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

grep: fail if call could output and name is nullEmily Shaffer Thu, 23 May 2019 20:23:56 +0000 (13:23 -0700)

grep: fail if call could output and name is null

grep_source(), which performs much of the work for Git's grep library,
allows passing an arbitrary struct grep_source which represents the text
which grep_source() should search to match a pattern in the provided
struct grep_opt. In most callers, the grep_source::name field is set to
an appropriate prefix to print before a colon when a result matches:

README:Git is an Open Source project covered by the GNU General

One caller, grep_buffer(), leaves the grep_source::name field set to
NULL because there isn't enough context to determine an appropriate name
for this kind of output line. In practice, this has been fine: the only
caller of grep_buffer() is "git log --grep", and that caller sets
grep_opt::status_only, which disables output and only checks whether a
match exists. But this is brittle: a future caller can call
grep_buffer() without grep_opt::status_only set, and as soon as it hits
a match, grep_source() will try to print the match and segfault:

(null):Git is an Open Source project covered by the GNU General

For example, a future caller might want to print all matching lines from
commits which match a regex.

Futureproof by diagnosing early a use of the API that could trigger that
condition, before we know whether the pattern matches:

BUG: grep.c:1783: grep call which could print a name requires
grep_source.name be non-NULL
Aborted

This way, the caller's author gets an indication of how to fix the issue
- by providing grep_source::name or setting grep_opt::status_only - and
they are warned of the potential for a segfault unconditionally, rather
than only if there is a match.

Noticed while adding such a call to a tutorial on revision walks.

Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

trace2: fix tracing when NO_PTHREADS is definedJeff Hostetler Tue, 21 May 2019 19:33:59 +0000 (12:33 -0700)

trace2: fix tracing when NO_PTHREADS is defined

Teach trace2 TLS code to not rely on pthread_getspecific() when NO_PTHREADS
is defined. Instead, always assume the context data of the main thread.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase: replace incorrect logical negation by correct... Johannes Schindelin Tue, 21 May 2019 17:50:20 +0000 (10:50 -0700)

rebase: replace incorrect logical negation by correct bitwise one

In bff014dac7d9 (builtin rebase: support the `verbose` and `diffstat`
options, 2018-09-04), we added a line that wanted to remove the
`REBASE_DIFFSTAT` bit from the flags, but it used an incorrect negation.

Found by Coverity.

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

progress: avoid empty line when breaking the progress... SZEDER Gábor Sun, 19 May 2019 14:45:46 +0000 (16:45 +0200)

progress: avoid empty line when breaking the progress line

Since commit 545dc345eb (progress: break too long progress bar lines,
2019-04-12) when splitting a too long progress line, sometimes it
looks as if a superfluous empty line were added between the title
line and the counters.

To make sure that the previously displayed progress line is completely
covered up when writing the new, shorter title line, we calculate how
many characters need to be overwritten with spaces. Alas, this
calculation doesn't account for the newline character at the end of
the new title line, and resulted in printing one more space than
strictly necessary. This extra space character doesn't matter, if the
length of the previous progress line was shorter than the width of the
terminal. However, if the previous line matched the terminal width,
then this extra space made the new line longer, effectively adding
that empty line after the title line.

Fix this off-by-one to avoid that spurious empty line.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

trace2: document the supported values of GIT_TRACE2... SZEDER Gábor Sun, 19 May 2019 14:43:09 +0000 (16:43 +0200)

trace2: document the supported values of GIT_TRACE2* env variables

The descriptions of the GIT_TRACE2* environment variables link to the
technical docs for further details on the supported values. However,
a link like this only really works if the docs are viewed in a browser
and the full documentation is available. OTOH, in 'man git' there are
no links to conveniently click on, and distro-shipped git packages
tend to include only the man pages, while the technical docs and the
docs in html format are in a separate 'git-doc' package.

So let's describe the supported values to make the manpage more
self-contained, but still keep the references to the technical docs
because the details of the SID, and the JSON and perf output formats
are definitely beyond the scope of 'man git'.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

trace2: rename environment variables to GIT_TRACE2*SZEDER Gábor Sun, 19 May 2019 14:43:08 +0000 (16:43 +0200)

trace2: rename environment variables to GIT_TRACE2*

For an environment variable that is supposed to be set by users, the
GIT_TR2* env vars are just too unclear, inconsistent, and ugly.

Most of the established GIT_* environment variables don't use
abbreviations, and in case of the few that do (GIT_DIR,
GIT_COMMON_DIR, GIT_DIFF_OPTS) it's quite obvious what the
abbreviations (DIR and OPTS) stand for. But what does TR stand for?
Track, traditional, trailer, transaction, transfer, transformation,
transition, translation, transplant, transport, traversal, tree,
trigger, truncate, trust, or ...?!

The trace2 facility, as the '2' suffix in its name suggests, is
supposed to eventually supercede Git's original trace facility. It's
reasonable to expect that the corresponding environment variables
follow suit, and after the original GIT_TRACE variables they are
called GIT_TRACE2; there is no such thing is 'GIT_TR'.

All trace2-specific config variables are, very sensibly, in the
'trace2' section, not in 'tr2'.

OTOH, we don't gain anything at all by omitting the last three
characters of "trace" from the names of these environment variables.

So let's rename all GIT_TR2* environment variables to GIT_TRACE2*,
before they make their way into a stable release.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

upload-pack: strip namespace from symref dataJeff King Thu, 23 May 2019 06:11:21 +0000 (02:11 -0400)

upload-pack: strip namespace from symref data

Since 7171d8c15f (upload-pack: send symbolic ref information as
capability, 2013-09-17), we've sent cloning and fetching clients special
information about which branch HEAD is pointing to, so that they don't
have to guess based on matching up commit ids.

However, this feature has never worked properly with the GIT_NAMESPACE
feature. Because upload-pack uses head_ref_namespaced(find_symref), we
do find and report on refs/namespaces/foo/HEAD instead of the actual
HEAD of the repo. This makes sense, since the branch pointed to by the
top-level HEAD may not be advertised at all. But we do two things wrong:

1. We report the full name refs/namespaces/foo/HEAD, instead of just
HEAD. Meaning no client is going to bother doing anything with that
symref, since we're not otherwise advertising it.

2. We report the symref destination using its full name (e.g.,
refs/namespaces/foo/refs/heads/master). That's similarly useless to
the client, who only saw "refs/heads/master" in the advertisement.

We should be stripping the namespace prefix off of both places (which
this patch fixes).

Likely nobody noticed because we tend to do the right thing anyway. Bug
(1) means that we said nothing about HEAD (just refs/namespace/foo/HEAD).
And so the client half of the code, from a45b5f0552 (connect: annotate
refs with their symref information in get_remote_head(), 2013-09-17),
does not annotate HEAD, and we use the fallback in guess_remote_head(),
matching refs by object id. Which is usually right. It only falls down
in ambiguous cases, like the one laid out in the included test.

This also means that we don't have to worry about breaking anybody who
was putting pre-stripped names into their namespace symrefs when we fix
bug (2). Because of bug (1), nobody would have been using the symref we
advertised in the first place (not to mention that those symrefs would
have appeared broken for any non-namespaced access).

Note that we have separate fixes here for the v0 and v2 protocols. The
symref advertisement moved in v2 to be a part of the ls-refs command.
This actually gets part (1) right, since the symref annotation
piggy-backs on the existing ref advertisement, which is properly
stripped. But it still needs a fix for part (2). The included tests
cover both protocols.

Reported-by: Bryan Turner <bturner@atlassian.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitsubmodules: align html and nroff listsEmily Shaffer Wed, 1 May 2019 20:32:17 +0000 (13:32 -0700)

gitsubmodules: align html and nroff lists

There appears to be a bug in the toolchain generating manpages from
lettered lists. When a list is enumerated with letters, the resulting
nroff shows numbers instead. Mostly this is harmless, but in the case of
gitsubmodules, the paragraph following the list refers back to each
bullet by letter. As a result, reading this documentation via `man
gitsubmodules` is hard to parse - readers must infer that a bug exists
and a refers to 1, b refers to 2, and c refers to 3 in the list above.

The problem specifically was introduced in ad47194; previously rather
than generating numerated lists the bulleted area was entirely
monospaced in HTML and shown in plaintext in nroff.

The bug seems to exist in docbook-xml - I've reported it on May 1 via
the docbook-apps mail list - but for now it may make more sense to just
work around the issue.

Signed-off-by: Emily Shaffer <emilyshaffer@google.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: es: 2.22.0 round 1Christopher Diaz Riveros Tue, 28 May 2019 16:33:00 +0000 (11:33 -0500)

l10n: es: 2.22.0 round 1

Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>

Merge branch 'master' of https://github.com/vnwildman/gitJiang Xin Tue, 21 May 2019 00:55:54 +0000 (08:55 +0800)

Merge branch 'master' of https://github.com/vnwildman/git

* 'master' of https://github.com/vnwildman/git:
l10n: vi.po(4577t): Updated Vietnamese translation for v2.22.0 round 1

Git 2.22-rc1 v2.22.0-rc1Junio C Hamano Sun, 19 May 2019 07:46:42 +0000 (16:46 +0900)

Git 2.22-rc1

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

Merge branch 'js/difftool-no-index'Junio C Hamano Sun, 19 May 2019 07:45:35 +0000 (16:45 +0900)

Merge branch 'js/difftool-no-index'

The "--dir-diff" mode of "git difftool" is not useful in "--no-index"
mode; they are now explicitly marked as mutually incompatible.

* js/difftool-no-index:
difftool --no-index: error out on --dir-diff (and don't crash)

Merge branch 'jk/get-oid-indexed-object-name'Junio C Hamano Sun, 19 May 2019 07:45:35 +0000 (16:45 +0900)

Merge branch 'jk/get-oid-indexed-object-name'

The codepath to parse :<path> that obtains the object name for an
indexed object has been made more robust.

* jk/get-oid-indexed-object-name:
get_oid: handle NULL repo->index

Merge branch 'jc/set-packet-header-signature-fix'Junio C Hamano Sun, 19 May 2019 07:45:35 +0000 (16:45 +0900)

Merge branch 'jc/set-packet-header-signature-fix'

Code clean-up.

* jc/set-packet-header-signature-fix:
pkt-line: drop 'const'-ness of a param to set_packet_header()

Merge branch 'cb/http-push-null-in-message-fix'Junio C Hamano Sun, 19 May 2019 07:45:35 +0000 (16:45 +0900)

Merge branch 'cb/http-push-null-in-message-fix'

Code clean-up.

* cb/http-push-null-in-message-fix:
http-push: prevent format overflow warning with gcc >= 9

Merge branch 'js/stash-in-c-use-builtin-doc'Junio C Hamano Sun, 19 May 2019 07:45:34 +0000 (16:45 +0900)

Merge branch 'js/stash-in-c-use-builtin-doc'

Doc update.

* js/stash-in-c-use-builtin-doc:
stash: document stash.useBuiltin

Merge branch 'tz/test-lib-check-working-jgit'Junio C Hamano Sun, 19 May 2019 07:45:34 +0000 (16:45 +0900)

Merge branch 'tz/test-lib-check-working-jgit'

A prerequiste check in the test suite to see if a working jgit is
available was made more robust.

* tz/test-lib-check-working-jgit:
test-lib: try harder to ensure a working jgit

Merge branch 'js/parseopt-unknown-cb-returns-an-enum'Junio C Hamano Sun, 19 May 2019 07:45:34 +0000 (16:45 +0900)

Merge branch 'js/parseopt-unknown-cb-returns-an-enum'

Code clean-up.

* js/parseopt-unknown-cb-returns-an-enum:
parse-options: adjust `parse_opt_unknown_cb()`s declared return type

Merge branch 'ab/sha1dc'Junio C Hamano Sun, 19 May 2019 07:45:34 +0000 (16:45 +0900)

Merge branch 'ab/sha1dc'

Update collision-detecting SHA-1 code to build properly on HP-UX.

* ab/sha1dc:
sha1dc: update from upstream

Merge branch 'js/rebase-i-label-shown-in-status-fix'Junio C Hamano Sun, 19 May 2019 07:45:33 +0000 (16:45 +0900)

Merge branch 'js/rebase-i-label-shown-in-status-fix'

"git status" did not know that the "label" instruction in the
todo-list "rebase -i -r" uses should not be shown as a hex object
name.

* js/rebase-i-label-shown-in-status-fix:
status: fix display of rebase -ir's `label` command

Merge branch 'es/check-non-portable-pre-5.10'Junio C Hamano Sun, 19 May 2019 07:45:33 +0000 (16:45 +0900)

Merge branch 'es/check-non-portable-pre-5.10'

Developer support update.

* es/check-non-portable-pre-5.10:
check-non-portable-shell: support Perl versions older than 5.10

Merge branch 'ds/trace2-document-env-vars'Junio C Hamano Sun, 19 May 2019 07:45:33 +0000 (16:45 +0900)

Merge branch 'ds/trace2-document-env-vars'

Doc update.

* ds/trace2-document-env-vars:
trace2: add variable description to git.txt

Merge branch 'js/fsmonitor-refresh-after-discarding... Junio C Hamano Sun, 19 May 2019 07:45:33 +0000 (16:45 +0900)

Merge branch 'js/fsmonitor-refresh-after-discarding-index'

The fsmonitor interface got out of sync after the in-core index
file gets discarded, which has been corrected.

* js/fsmonitor-refresh-after-discarding-index:
fsmonitor: force a refresh after the index was discarded
fsmonitor: demonstrate that it is not refreshed after discard_index()

Merge branch 'cm/notes-comment-fix'Junio C Hamano Sun, 19 May 2019 07:45:32 +0000 (16:45 +0900)

Merge branch 'cm/notes-comment-fix'

A stale in-code comment has been updated.

* cm/notes-comment-fix:
notes: correct documentation of format_display_notes()

Merge branch 'tt/no-ipv6-fallback-for-winxp'Junio C Hamano Sun, 19 May 2019 07:45:32 +0000 (16:45 +0900)

Merge branch 'tt/no-ipv6-fallback-for-winxp'

Code cleanup.

* tt/no-ipv6-fallback-for-winxp:
mingw: remove obsolete IPv6-related code

Merge branch 'js/t5580-unc-alternate-test'Junio C Hamano Sun, 19 May 2019 07:45:32 +0000 (16:45 +0900)

Merge branch 'js/t5580-unc-alternate-test'

An additional test for MinGW

* js/t5580-unc-alternate-test:
t5580: verify that alternates can be UNC paths

Merge branch 'ds/cvsexportcommit-force-text'Junio C Hamano Sun, 19 May 2019 07:45:31 +0000 (16:45 +0900)

Merge branch 'ds/cvsexportcommit-force-text'

"git cvsexportcommit" running on msys did not expect cvsnt showed
"cvs status" output with CRLF line endings.

* ds/cvsexportcommit-force-text:
cvsexportcommit: force crlf translation

Merge branch 'sg/ci-libsvn-perl'Junio C Hamano Sun, 19 May 2019 07:45:31 +0000 (16:45 +0900)

Merge branch 'sg/ci-libsvn-perl'

To run tests for Git SVN, our scripts for CI used to install the
git-svn package (in the hope that it would bring in the right
dependencies). This has been updated to install the more direct
dependency, namely, libsvn-perl.

* sg/ci-libsvn-perl:
ci: install 'libsvn-perl' instead of 'git-svn'

Merge branch 'bl/t4253-exit-code-from-format-patch'Junio C Hamano Sun, 19 May 2019 07:45:31 +0000 (16:45 +0900)

Merge branch 'bl/t4253-exit-code-from-format-patch'

Avoid patterns to pipe output from a git command to feed another
command in tests.

* bl/t4253-exit-code-from-format-patch:
t4253-am-keep-cr-dos: avoid using pipes

Merge branch 'ds/midx-too-many-packs'Junio C Hamano Sun, 19 May 2019 07:45:30 +0000 (16:45 +0900)

Merge branch 'ds/midx-too-many-packs'

The code to generate the multi-pack idx file was not prepared to
see too many packfiles and ran out of open file descriptor, which
has been corrected.

* ds/midx-too-many-packs:
midx: add packs to packed_git linked list
midx: pass a repository pointer

Merge branch 'en/unicode-in-refnames'Junio C Hamano Sun, 19 May 2019 07:45:30 +0000 (16:45 +0900)

Merge branch 'en/unicode-in-refnames'

On a filesystem like HFS+, the names of the refs stored as filesystem
entities may become different from what the end-user expects, just
like files in the working tree get "renamed". Work around the
mismatch by paying attention to the core.precomposeUnicode
configuration.

* en/unicode-in-refnames:
Honor core.precomposeUnicode in more places

Merge branch 'dl/difftool-mergetool'Junio C Hamano Sun, 19 May 2019 07:45:30 +0000 (16:45 +0900)

Merge branch 'dl/difftool-mergetool'

Update "git difftool" and "git mergetool" so that the combinations
of {diff,merge}.{tool,guitool} configuration variables serve as
fallback settings of each other in a sensible order.

* dl/difftool-mergetool:
difftool: fallback on merge.guitool
difftool: make --gui, --tool and --extcmd mutually exclusive
mergetool: fallback to tool when guitool unavailable
mergetool--lib: create gui_mode function
mergetool: use get_merge_tool function
t7610: add mergetool --gui tests
t7610: unsuppress output

Merge branch 'mh/http-fread-api-fix'Junio C Hamano Sun, 19 May 2019 07:45:29 +0000 (16:45 +0900)

Merge branch 'mh/http-fread-api-fix'

A pair of private functions in http.c that had names similar to
fread/fwrite did not return the number of elements, which was found
to be confusing.

* mh/http-fread-api-fix:
Make fread/fwrite-like functions in http.c more like fread/fwrite.

Merge branch 'js/t6500-use-windows-pid-on-mingw'Junio C Hamano Sun, 19 May 2019 07:45:29 +0000 (16:45 +0900)

Merge branch 'js/t6500-use-windows-pid-on-mingw'

Future-proof a test against an update to MSYS2 runtime v3.x series.

* js/t6500-use-windows-pid-on-mingw:
t6500(mingw): use the Windows PID of the shell

Merge branch 'jk/apache-lsan'Junio C Hamano Sun, 19 May 2019 07:45:29 +0000 (16:45 +0900)

Merge branch 'jk/apache-lsan'

Allow tests that involve httpd to be run under leak sanitizer, just
like we can already do so under address sanitizer.

* jk/apache-lsan:
t/lib-httpd: pass LSAN_OPTIONS through apache

Merge branch 'nd/parse-options-aliases'Junio C Hamano Sun, 19 May 2019 07:45:28 +0000 (16:45 +0900)

Merge branch 'nd/parse-options-aliases'

Attempt to use an abbreviated option in "git clone --recurs" is
responded by a request to disambiguate between --recursive and
--recurse-submodules, which is bad because these two are synonyms.
The parse-options API has been extended to define such synonyms
more easily and not produce an unnecessary failure.

* nd/parse-options-aliases:
parse-options: don't emit "ambiguous option" for aliases

Merge branch 'dl/branch-from-3dot-merge-base'Junio C Hamano Sun, 19 May 2019 07:45:28 +0000 (16:45 +0900)

Merge branch 'dl/branch-from-3dot-merge-base'

"git branch new A...B" and "git checkout -b new A...B" have been
taught that in their contexts, the notation A...B means "the merge
base between these two commits", just like "git checkout A...B"
detaches HEAD at that commit.

* dl/branch-from-3dot-merge-base:
branch: make create_branch accept a merge base rev
t2018: cleanup in current test