git/git.git
2 years agobuilt-in rebase: set ORIG_HEAD just once, before the rebase
Johannes Schindelin [Sun, 3 Mar 2019 17:11:55 +0000 (09:11 -0800)]
built-in rebase: set ORIG_HEAD just once, before the rebase

Technically, the scripted version set ORIG_HEAD only in two spots (which
really could have been one, because it called `git checkout $onto^0` to
start the rebase and also if it could take a shortcut, and in both cases
it called `git update-ref $orig_head`).

Practically, it *implicitly* reset ORIG_HEAD whenever `git reset --hard`
was called.

However, what we really want is that it is set exactly once, at the
beginning of the rebase.

So let's do that.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agobuilt-in rebase: demonstrate that ORIG_HEAD is not set correctly
Johannes Schindelin [Sun, 3 Mar 2019 17:11:54 +0000 (09:11 -0800)]
built-in rebase: demonstrate that ORIG_HEAD is not set correctly

The ORIG_HEAD pseudo ref is supposed to refer to the original,
pre-rebase state after a successful rebase. Let's add a regression test
to prove that this regressed: With GIT_TEST_REBASE_USE_BUILTIN=false,
this test case passes, with GIT_TEST_REBASE_USE_BUILTIN=true (or unset),
it fails.

Reported by Nazri Ramliy.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agobuilt-in rebase: use the correct reflog when switching branches
Johannes Schindelin [Sun, 3 Mar 2019 17:11:54 +0000 (09:11 -0800)]
built-in rebase: use the correct reflog when switching branches

By mistake, we used the reflog intended for ORIG_HEAD.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agobuilt-in rebase: no need to check out `onto` twice
Johannes Schindelin [Sun, 3 Mar 2019 17:11:53 +0000 (09:11 -0800)]
built-in rebase: no need to check out `onto` twice

In the case that the rebase boils down to a fast-forward, the built-in
rebase reset the working tree twice: once to start the rebase at `onto`,
then realizing that the original (pre-rebase) HEAD was an ancestor and
we basically already fast-forwarded to the post-rebase HEAD,
`reset_head()` was called to update the original ref and to point HEAD
back to it.

That second `reset_head()` call does not need to touch the working tree,
though, as it does not change the actual tip commit (and therefore the
working tree should stay unchanged anyway): only the ref needs to be
updated (because the rebase detached the HEAD, and we want to go back to
the branch on which the rebase was started).

But that second `reset_head()` was called without the flag to leave the
working tree alone (the reason: when that call was introduced, that flag
was not yet even thought of). Let's avoid that unnecessary work by
passing that flag.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agobuilt-in rebase: call `git am` directly
Johannes Schindelin [Fri, 18 Jan 2019 15:09:27 +0000 (07:09 -0800)]
built-in rebase: call `git am` directly

While the scripted `git rebase` still has to rely on the
`git-rebase--am.sh` script to implement the glue between the `rebase`
and the `am` commands, we can go a more direct route in the built-in
rebase and avoid using a shell script altogether.

This patch represents a straight-forward port of `git-rebase--am.sh` to
C, along with the glue code to call it directly from within
`builtin/rebase.c`.

This reduces the chances of Git for Windows running into trouble due to
problems with the POSIX emulation layer (known as "MSYS2 runtime",
itself a derivative of the Cygwin runtime): when no shell script is
called, the POSIX emulation layer is avoided altogether.

Note: we pass an empty action to `reset_head()` here when moving back to
the original branch, as no other action is applicable, really. This
parameter is used to initialize `unpack_trees()`' messages.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorebase: teach `reset_head()` to optionally skip the worktree
Johannes Schindelin [Fri, 18 Jan 2019 15:09:26 +0000 (07:09 -0800)]
rebase: teach `reset_head()` to optionally skip the worktree

This is what the legacy (scripted) rebase does in
`move_to_original_branch`, and we will need this functionality in the
next commit.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorebase: avoid double reflog entry when switching branches
Johannes Schindelin [Fri, 18 Jan 2019 15:09:25 +0000 (07:09 -0800)]
rebase: avoid double reflog entry when switching branches

When switching a branch *and* updating said branch to a different
revision, let's avoid a double entry in HEAD's reflog by first updating
the branch and then adjusting the symbolic ref HEAD.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorebase: move `reset_head()` into a better spot
Johannes Schindelin [Fri, 18 Jan 2019 15:09:24 +0000 (07:09 -0800)]
rebase: move `reset_head()` into a better spot

Over the next commits, we want to make use of it in `run_am()` (i.e.
running the `--am` backend directly, without detouring to Unix shell
script code) which in turn will be called from `run_specific_rebase()`.

So let's move it before that latter function.

This commit is best viewed using --color-moved.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoSync with Git 2.20.1
Junio C Hamano [Sat, 15 Dec 2018 04:00:25 +0000 (13:00 +0900)]
Sync with Git 2.20.1

* maint:
  Git 2.20.1
  .gitattributes: ensure t/oid-info/* has eol=lf
  t9902: 'send-email' test case requires PERL
  t4256: mark support files as LF-only
  parse-options: fix SunCC compiler warning
  help -a: handle aliases with long names gracefully
  help.h: fix coding style
  run-command: report exec failure

2 years agoPrepare for 2.21 cycle to start soonish
Junio C Hamano [Sat, 15 Dec 2018 03:36:06 +0000 (12:36 +0900)]
Prepare for 2.21 cycle to start soonish

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoGit 2.20.1 v2.20.1
Junio C Hamano [Sat, 15 Dec 2018 03:31:34 +0000 (12:31 +0900)]
Git 2.20.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'jc/run-command-report-exec-failure-fix' into maint
Junio C Hamano [Sat, 15 Dec 2018 03:24:34 +0000 (12:24 +0900)]
Merge branch 'jc/run-command-report-exec-failure-fix' into maint

A recent update accidentally squelched an error message when the
run_command API failed to run a missing command, which has been
corrected.

* jc/run-command-report-exec-failure-fix:
  run-command: report exec failure

2 years agoMerge branch 'js/help-commands-verbose-by-default-fix' into maint
Junio C Hamano [Sat, 15 Dec 2018 03:24:33 +0000 (12:24 +0900)]
Merge branch 'js/help-commands-verbose-by-default-fix' into maint

"git help -a" did not work well when an overly long alias is
defined, which has been corrected.

* js/help-commands-verbose-by-default-fix:
  help -a: handle aliases with long names gracefully
  help.h: fix coding style

2 years agoMerge branch 'nd/show-gitcomp-compilation-fix' into maint
Junio C Hamano [Sat, 15 Dec 2018 03:24:33 +0000 (12:24 +0900)]
Merge branch 'nd/show-gitcomp-compilation-fix' into maint

Portability fix for a recent update to parse-options API.

* nd/show-gitcomp-compilation-fix:
  parse-options: fix SunCC compiler warning

2 years agoMerge branch 'js/t9902-send-email-completion-fix' into maint
Junio C Hamano [Sat, 15 Dec 2018 03:24:32 +0000 (12:24 +0900)]
Merge branch 'js/t9902-send-email-completion-fix' into maint

* js/t9902-send-email-completion-fix:
  t9902: 'send-email' test case requires PERL

2 years agoMerge branch 'js/mailinfo-format-flowed-fix' into maint
Junio C Hamano [Sat, 15 Dec 2018 03:24:32 +0000 (12:24 +0900)]
Merge branch 'js/mailinfo-format-flowed-fix' into maint

Test portability fix.

* js/mailinfo-format-flowed-fix:
  t4256: mark support files as LF-only

2 years agoMerge branch 'ds/hash-independent-tests-fix' into maint
Junio C Hamano [Sat, 15 Dec 2018 03:24:32 +0000 (12:24 +0900)]
Merge branch 'ds/hash-independent-tests-fix' into maint

Test portability fix.

* ds/hash-independent-tests-fix:
  .gitattributes: ensure t/oid-info/* has eol=lf

2 years ago.gitattributes: ensure t/oid-info/* has eol=lf
Derrick Stolee [Tue, 11 Dec 2018 20:35:46 +0000 (12:35 -0800)]
.gitattributes: ensure t/oid-info/* has eol=lf

The new test_oid machinery in the test library requires reading
some information from t/oid-info/hash-info and t/oid-info/oid.

The logic to read from these files in shell uses built-in "read"
command, which leaves CR at the end of these text files when they
are checked out with CRLF line endings, at least when run with bash
shipped with Git for Windows.  This results in an unexpected value
in the variable these lines are read into, leading the tests to
fail.

Mark them to be checked out always with the LF line endings.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agot9902: 'send-email' test case requires PERL
Johannes Schindelin [Thu, 13 Dec 2018 14:04:19 +0000 (06:04 -0800)]
t9902: 'send-email' test case requires PERL

The oneline notwithstanding, 13374987dd (completion: use _gitcompbuiltin
for format-patch, 2018-11-03) changed also the way send-email options
are completed, by asking the git send-email command itself what options
it offers.

Necessarily, this must fail when built with NO_PERL because send-email
itself is a Perl script. Which means that we need the PERL prerequisite
for the send-email test case in t9902.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agot4256: mark support files as LF-only
Johannes Schindelin [Wed, 12 Dec 2018 18:14:54 +0000 (10:14 -0800)]
t4256: mark support files as LF-only

The test t4256-am-format-flowed.sh requires carefully applying a
patch after ignoring padding whitespace. This breaks if the file
is munged to include CRLF line endings instead of LF.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoparse-options: fix SunCC compiler warning
Nguyễn Thái Ngọc Duy [Tue, 11 Dec 2018 15:35:01 +0000 (16:35 +0100)]
parse-options: fix SunCC compiler warning

The compiler reports this because show_gitcomp() never actually
returns a value:

    "parse-options.c", line 520: warning: Function has no return
    statement : show_gitcomp

We could shut the compiler up. But instead let's not bury exit() too
deep. Do the same as internal -h handling, return a special error code
and handle the exit() in parse_options() (and other
parse_options_step() callers) instead.

Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agohelp -a: handle aliases with long names gracefully
Johannes Schindelin [Tue, 11 Dec 2018 14:58:11 +0000 (06:58 -0800)]
help -a: handle aliases with long names gracefully

We take pains to determine the longest command beforehand, so that we
can align the category column after printing the command names.

However, then we re-use that value when printing the aliases. If any
alias name is longer than the longest command name, we consequently try
to add a negative number of spaces (but `mput_char()` does not expect
any negative values and simply decrements until the value is 0, i.e.
it tries to add close to 2**31 spaces).

Let's fix this by adjusting the `longest` variable before printing the
aliases.

This fixes https://github.com/git-for-windows/git/issues/1975.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agohelp.h: fix coding style
Johannes Schindelin [Tue, 11 Dec 2018 14:58:10 +0000 (06:58 -0800)]
help.h: fix coding style

We want a space after the `while` keyword.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorun-command: report exec failure
Junio C Hamano [Tue, 11 Dec 2018 05:46:07 +0000 (14:46 +0900)]
run-command: report exec failure

In 321fd823 ("run-command: mark path lookup errors with ENOENT",
2018-10-24), we rewrote the logic to execute a command by looking
in the directories on $PATH; as a side effect, a request to run a
command that is not found on $PATH is noticed even before a child
process is forked to execute it.

We however stopped to report an exec failure in such a case by
mistake.  Add a logic to report the error unless silent-exec-failure
is requested, to match the original code.

Reported-by: John Passaro <john.a.passaro@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoGit 2.20 v2.20.0
Junio C Hamano [Sun, 9 Dec 2018 04:16:21 +0000 (13:16 +0900)]
Git 2.20

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge tag 'l10n-2.20.0-rnd3' of https://github.com/git-l10n/git-po
Junio C Hamano [Sun, 9 Dec 2018 04:11:36 +0000 (13:11 +0900)]
Merge tag 'l10n-2.20.0-rnd3' of https://github.com/git-l10n/git-po

l10n-2.20.0-rnd3

* tag 'l10n-2.20.0-rnd3' of https://github.com/git-l10n/git-po: (22 commits)
  l10n: de.po: fix two messages
  l10n: zh_CN: for git v2.20.0 l10n round 1 to 3
  l10n: update German translation
  l10n: bg.po: Updated Bulgarian translation (4187t)
  l10n: sv.po: Update Swedish translation (4187t0f0u)
  l10n: fr.po v2.20.0 round 3
  l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3
  l10n: es.po v2.20.0 round 3
  l10n: git.pot: v2.20.0 round 3 (5 new, 3 removed)
  l10n: vi(4185t): Updated Vietnamese translation for v2.20.0
  l10n: es.po v2.20.0 round 1
  l10n: bg.po: Updated Bulgarian translation (4185t)
  l10n: git.pot: v2.20.0 round 2 (2 new, 2 removed)
  l10n: bg.po: Updated Bulgarian translation (4185t)
  l10n: sv.po: Update Swedish translation (4185t0f0u)
  l10n: fr.po v2.20 rnd 1
  l10n: Update Catalan translation
  l10n: git.pot: v2.20.0 round 1 (254 new, 27 removed)
  l10n: Update Catalan translation
  l10n: vi.po: fix typo in pack-objects
  ...

2 years agol10n: de.po: fix two messages
Ralf Thielow [Fri, 7 Dec 2018 18:43:07 +0000 (19:43 +0100)]
l10n: de.po: fix two messages

Reported-by: Phillip Szelat <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2 years agol10n: zh_CN: for git v2.20.0 l10n round 1 to 3
Jiang Xin [Tue, 20 Nov 2018 02:18:06 +0000 (10:18 +0800)]
l10n: zh_CN: for git v2.20.0 l10n round 1 to 3

Translate 257 new messages (4187t0f0u) for git 2.20.0.

Reviewed-by: Zhou Fangyi <fangyi.zhou@yuriko.moe>
Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2 years agol10n: update German translation
Ralf Thielow [Thu, 6 Dec 2018 06:44:41 +0000 (07:44 +0100)]
l10n: update German translation

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2 years agoMerge branch 'es/format-patch-range-diff-fix-fix'
Junio C Hamano [Tue, 4 Dec 2018 03:49:50 +0000 (12:49 +0900)]
Merge branch 'es/format-patch-range-diff-fix-fix'

* es/format-patch-range-diff-fix-fix:
  range-diff: always pass at least minimal diff options

2 years agoMerge branch 'en/rebase-consistency'
Junio C Hamano [Tue, 4 Dec 2018 03:49:39 +0000 (12:49 +0900)]
Merge branch 'en/rebase-consistency'

* en/rebase-consistency:
  rebase docs: fix incorrect format of the section Behavioral Differences

2 years agorebase docs: fix incorrect format of the section Behavioral Differences
Johannes Sixt [Mon, 3 Dec 2018 17:34:49 +0000 (18:34 +0100)]
rebase docs: fix incorrect format of the section Behavioral Differences

The text body of section Behavioral Differences is typeset as code,
but should be regular text. Remove the indentation to achieve that.

While here, prettify the language:

- use "the x backend" instead of "x-based rebase";
- use present tense instead of future tense;

and use subsections instead of a list.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoRelNotes 2.20: drop spurious double quote
Martin Ågren [Mon, 3 Dec 2018 20:21:51 +0000 (21:21 +0100)]
RelNotes 2.20: drop spurious double quote

We have three double-quote characters, which is one too many or too few.
Dropping the last one seems to match the original intention best.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoRelNotes 2.20: clarify sentence
Martin Ågren [Mon, 3 Dec 2018 20:21:50 +0000 (21:21 +0100)]
RelNotes 2.20: clarify sentence

I had to read this sentence a few times to understand it. Let's try to
clarify it.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoRelNotes 2.20: move some items between sections
Martin Ågren [Mon, 3 Dec 2018 20:21:49 +0000 (21:21 +0100)]
RelNotes 2.20: move some items between sections

Some items that should be in "Performance, Internal Implementation,
Development Support etc." have ended up in "UI, Workflows & Features"
and "Fixes since v2.19". Move them, and do s/uses/use/ while at it.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorange-diff: always pass at least minimal diff options
Martin Ågren [Mon, 3 Dec 2018 21:21:31 +0000 (16:21 -0500)]
range-diff: always pass at least minimal diff options

Commit d8981c3f88 ("format-patch: do not let its diff-options affect
--range-diff", 2018-11-30) taught `show_range_diff()` to accept a
NULL-pointer as an indication that it should use its own "reasonable
default". That fixed a regression from a5170794 ("Merge branch
'ab/range-diff-no-patch'", 2018-11-18), but unfortunately it introduced
a regression of its own.

In particular, it means we forget the `file` member of the diff options,
so rather than placing a range-diff in the cover-letter, we write it to
stdout. In order to fix this, rewrite the two callers adjusted by
d8981c3f88 to instead create a "dummy" set of diff options where they
only fill in the fields we absolutely require, such as output file and
color.

Modify and extend the existing tests to try and verify that the right
contents end up in the right place.

Don't revert `show_range_diff()`, i.e., let it keep accepting NULL.
Rather than removing what is dead code and figuring out it isn't
actually dead and we've broken 2.20, just leave it for now.

[es: retain diff coloring when going to stdout]

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Mon, 3 Dec 2018 04:49:45 +0000 (12:49 +0800)]
Merge branch 'master' of git://github.com/alshopov/git-po

2 years agol10n: bg.po: Updated Bulgarian translation (4187t)
Alexander Shopov [Sun, 2 Dec 2018 12:42:29 +0000 (13:42 +0100)]
l10n: bg.po: Updated Bulgarian translation (4187t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2 years agol10n: sv.po: Update Swedish translation (4187t0f0u)
Peter Krefting [Sun, 2 Dec 2018 14:43:34 +0000 (15:43 +0100)]
l10n: sv.po: Update Swedish translation (4187t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2 years agoMerge branch 'fr_2.20_round3' of git://github.com/jnavila/git
Jiang Xin [Sun, 2 Dec 2018 14:36:36 +0000 (22:36 +0800)]
Merge branch 'fr_2.20_round3' of git://github.com/jnavila/git

2 years agol10n: fr.po v2.20.0 round 3
Jean-Noël Avila [Sun, 2 Dec 2018 10:03:23 +0000 (11:03 +0100)]
l10n: fr.po v2.20.0 round 3

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2 years agoMerge branch 'master' of https://github.com/vnwildman/git
Jiang Xin [Sun, 2 Dec 2018 09:57:24 +0000 (17:57 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git

2 years agol10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3
Tran Ngoc Quan [Sun, 2 Dec 2018 07:15:00 +0000 (14:15 +0700)]
l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2 years agol10n: es.po v2.20.0 round 3
Christopher Diaz Riveros [Sun, 2 Dec 2018 04:12:59 +0000 (23:12 -0500)]
l10n: es.po v2.20.0 round 3

Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2 years agol10n: git.pot: v2.20.0 round 3 (5 new, 3 removed)
Jiang Xin [Sun, 2 Dec 2018 02:56:26 +0000 (10:56 +0800)]
l10n: git.pot: v2.20.0 round 3 (5 new, 3 removed)

Generate po/git.pot from v2.20.0-rc2 for git v2.20.0 l10n round 3.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Sun, 2 Dec 2018 02:55:14 +0000 (10:55 +0800)]
Merge branch 'master' of git://github.com/git-l10n/git-po

2 years agoMerge branch 'master' of https://github.com/vnwildman/git
Jiang Xin [Sun, 2 Dec 2018 02:25:09 +0000 (10:25 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git

2 years agol10n: vi(4185t): Updated Vietnamese translation for v2.20.0
Tran Ngoc Quan [Sun, 2 Dec 2018 01:56:42 +0000 (08:56 +0700)]
l10n: vi(4185t): Updated Vietnamese translation for v2.20.0

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2 years agol10n: es.po v2.20.0 round 1
Christopher Diaz Riveros [Sat, 1 Dec 2018 18:41:27 +0000 (13:41 -0500)]
l10n: es.po v2.20.0 round 1

Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2 years agoGit 2.20-rc2 v2.20.0-rc2
Junio C Hamano [Sat, 1 Dec 2018 12:44:56 +0000 (21:44 +0900)]
Git 2.20-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'gh/diff-raw-has-no-ellipses'
Junio C Hamano [Sat, 1 Dec 2018 12:41:45 +0000 (21:41 +0900)]
Merge branch 'gh/diff-raw-has-no-ellipses'

"git diff --raw" lost ellipses to adjust the output columns for
some time now, but the documentation still showed them.

* gh/diff-raw-has-no-ellipses:
  doc: update diff-format.txt for removed ellipses in --raw

2 years agoMerge branch 'ss/msvc-strcasecmp'
Junio C Hamano [Sat, 1 Dec 2018 12:41:45 +0000 (21:41 +0900)]
Merge branch 'ss/msvc-strcasecmp'

MSVC update.

* ss/msvc-strcasecmp:
  msvc: directly use MS version (_stricmp) of strcasecmp

2 years agoMerge branch 'sg/test-BUG'
Junio C Hamano [Sat, 1 Dec 2018 12:41:44 +0000 (21:41 +0900)]
Merge branch 'sg/test-BUG'

test framework has been updated to make a bug in the test script
(as opposed to bugs in Git that are discovered by running the
tests) stand out more prominently.

* sg/test-BUG:
  tests: send "bug in the test script" errors to the script's stderr

2 years agoMerge branch 'sg/test-cmp-rev'
Junio C Hamano [Sat, 1 Dec 2018 12:41:44 +0000 (21:41 +0900)]
Merge branch 'sg/test-cmp-rev'

Test framework update.

* sg/test-cmp-rev:
  test-lib-functions: make 'test_cmp_rev' more informative on failure

2 years agoMerge branch 'ab/push-example-in-doc'
Junio C Hamano [Sat, 1 Dec 2018 12:41:44 +0000 (21:41 +0900)]
Merge branch 'ab/push-example-in-doc'

An error message that sugggests how to give correct arguments to
"git push" has been updated.

* ab/push-example-in-doc:
  push: change needlessly ambiguous example in error

2 years agoMerge branch 'rt/rebase-in-c-message-fix'
Junio C Hamano [Sat, 1 Dec 2018 12:41:44 +0000 (21:41 +0900)]
Merge branch 'rt/rebase-in-c-message-fix'

* rt/rebase-in-c-message-fix:
  builtin/rebase.c: remove superfluous space in messages

2 years agoMerge branch 'sg/daemon-test-signal-fix'
Junio C Hamano [Sat, 1 Dec 2018 12:41:43 +0000 (21:41 +0900)]
Merge branch 'sg/daemon-test-signal-fix'

Test fix.

* sg/daemon-test-signal-fix:
  t/lib-git-daemon: fix signal checking

2 years agoMerge branch 'ma/reset-doc-rendering-fix'
Junio C Hamano [Sat, 1 Dec 2018 12:41:43 +0000 (21:41 +0900)]
Merge branch 'ma/reset-doc-rendering-fix'

Doc updates.

* ma/reset-doc-rendering-fix:
  git-reset.txt: render literal examples as monospace
  git-reset.txt: render tables correctly under Asciidoctor

2 years agoMerge branch 'ab/replace-graft-with-replace-advice'
Junio C Hamano [Sat, 1 Dec 2018 12:41:42 +0000 (21:41 +0900)]
Merge branch 'ab/replace-graft-with-replace-advice'

The advice message to tell the user to migrate an existing graft
file to the replace system when a graft file was read was shown
even when "git replace --convert-graft-file" command, which is the
way the message suggests to use, was running, which made little
sense.

* ab/replace-graft-with-replace-advice:
  advice: don't pointlessly suggest --convert-graft-file

2 years agoMerge branch 'js/rebase-stat-unrelated-fix'
Junio C Hamano [Sat, 1 Dec 2018 12:41:42 +0000 (21:41 +0900)]
Merge branch 'js/rebase-stat-unrelated-fix'

"git rebase --stat" to transplant a piece of history onto a totally
unrelated history were not working before and silently showed wrong
result.  With the recent reimplementation in C, it started to instead
die with an error message, as the original logic was not prepared
to cope with this case.  This has now been fixed.

* js/rebase-stat-unrelated-fix:
  rebase --stat: fix when rebasing to an unrelated history

2 years agoMerge branch 'js/rebase-reflog-action-fix'
Junio C Hamano [Sat, 1 Dec 2018 12:41:42 +0000 (21:41 +0900)]
Merge branch 'js/rebase-reflog-action-fix'

"git rebase" reimplemented recently in C accidentally changed the
way reflog entries are recorded (earlier "rebase -i" identified the
entries it leaves with "rebase -i", but the new version always
marks them with "rebase").  This has been corrected.

* js/rebase-reflog-action-fix:
  rebase: fix GIT_REFLOG_ACTION regression

2 years agoMerge branch 'jc/format-patch-range-diff-fix'
Junio C Hamano [Sat, 1 Dec 2018 12:41:42 +0000 (21:41 +0900)]
Merge branch 'jc/format-patch-range-diff-fix'

"git format-patch --range-diff" by mistake passed the diff options
used to generate the primary output of the command to the
range-diff machinery, which caused the range-diff in the cover
letter to include fairly useless "--stat" output.  This has been
corrected by forcing a non-customizable default formatting options
on the range-diff machinery when driven by format-patch.

* jc/format-patch-range-diff-fix:
  format-patch: do not let its diff-options affect --range-diff

2 years agobuiltin/rebase.c: remove superfluous space in messages
Ralf Thielow [Fri, 30 Nov 2018 18:11:45 +0000 (19:11 +0100)]
builtin/rebase.c: remove superfluous space in messages

The whitespace breakages in these messages were introduced while
reimplementing the subcommand in C.  Match these messages to those
in the original scripted version.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: bg.po: Updated Bulgarian translation (4185t)
Alexander Shopov [Sat, 1 Dec 2018 10:48:08 +0000 (11:48 +0100)]
l10n: bg.po: Updated Bulgarian translation (4185t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2 years agol10n: git.pot: v2.20.0 round 2 (2 new, 2 removed)
Jiang Xin [Sat, 1 Dec 2018 08:15:51 +0000 (16:15 +0800)]
l10n: git.pot: v2.20.0 round 2 (2 new, 2 removed)

Generate po/git.pot from v2.20.0-rc1-10-g7068cbc4ab for git v2.20.0 l10n
round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2 years agoMerge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Sat, 1 Dec 2018 08:14:16 +0000 (16:14 +0800)]
Merge branch 'master' of git://github.com/git-l10n/git-po

2 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Sat, 1 Dec 2018 08:13:31 +0000 (16:13 +0800)]
Merge branch 'master' of git://github.com/alshopov/git-po

2 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Sat, 1 Dec 2018 08:11:45 +0000 (16:11 +0800)]
Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

2 years agoMerge branch 'fr_2.20_rnd1' of git://github.com/jnavila/git
Jiang Xin [Sat, 1 Dec 2018 07:36:53 +0000 (15:36 +0800)]
Merge branch 'fr_2.20_rnd1' of git://github.com/jnavila/git

2 years agol10n: bg.po: Updated Bulgarian translation (4185t)
Alexander Shopov [Mon, 29 Oct 2018 12:31:37 +0000 (13:31 +0100)]
l10n: bg.po: Updated Bulgarian translation (4185t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2 years agorebase --stat: fix when rebasing to an unrelated history
Johannes Schindelin [Thu, 29 Nov 2018 13:01:54 +0000 (05:01 -0800)]
rebase --stat: fix when rebasing to an unrelated history

When rebasing to a commit history that has no common commits with the
current branch, there is no merge base. In diffstat mode, this means
that we cannot compare to the merge base, but we have to compare to the
empty tree instead.

Also, if running in verbose diffstat mode, we should not output

Changes from <merge-base> to <onto>

as that does not make sense without any merge base.

Note: neither scripted nor built-in versoin of `git rebase` were
prepared for this situation well. We use this opportunity not only to
fix the bug(s), but also to make both versions' output consistent in
this instance. And add a regression test to keep this working in all
eternity.

Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agorebase: fix GIT_REFLOG_ACTION regression
Johannes Schindelin [Thu, 29 Nov 2018 19:09:21 +0000 (11:09 -0800)]
rebase: fix GIT_REFLOG_ACTION regression

The scripted version of "rebase" honored the `GIT_REFLOG_ACTION`,
and some automation scripts expected the reflog entries to be
prefixed with "rebase -i", not "rebase", after running "rebase -i".
This regressed in the reimplementation in C.

Fix that, and add a regression test, both with `GIT_REFLOG_ACTION`
set and unset.

Note: the reflog message for "rebase finished" did *not* honor
GIT_REFLOG_ACTION, and as we are very late in the v2.20.0-rcN phase,
we leave that bug for later (as it seems that that bug has been with
us from the very beginning).

Reported by Ian Jackson.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoformat-patch: do not let its diff-options affect --range-diff
Junio C Hamano [Fri, 30 Nov 2018 04:27:11 +0000 (13:27 +0900)]
format-patch: do not let its diff-options affect --range-diff

Stop leaking how the primary output of format-patch is customized to
the range-diff machinery and instead let the latter use its own
"reasonable default", in order to correct the breakage introduced by
a5170794 ("Merge branch 'ab/range-diff-no-patch'", 2018-11-18) on
the 'master' front.  "git format-patch --range-diff..." without any
weird diff option started to include the "range-diff --stat" output,
which is rather useless right now, that made the whole thing
unusable and this is probably the least disruptive way to whip the
codebase into a shippable shape.

We may want to later make the range-diff driven by format-patch more
configurable, but that would have to wait until we have a good
design.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: sv.po: Update Swedish translation (4185t0f0u)
Peter Krefting [Thu, 29 Nov 2018 11:55:22 +0000 (12:55 +0100)]
l10n: sv.po: Update Swedish translation (4185t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2 years agoMerge branch 'ja/i18n-fix'
Junio C Hamano [Thu, 29 Nov 2018 07:28:39 +0000 (16:28 +0900)]
Merge branch 'ja/i18n-fix'

* ja/i18n-fix:
  i18n: fix small typos

2 years agoMerge branch 'nd/n18n-fix'
Junio C Hamano [Thu, 29 Nov 2018 07:28:39 +0000 (16:28 +0900)]
Merge branch 'nd/n18n-fix'

* nd/n18n-fix:
  transport-helper.c: do not translate a string twice

2 years agoi18n: fix small typos
Jean-Noël Avila [Wed, 28 Nov 2018 21:43:09 +0000 (22:43 +0100)]
i18n: fix small typos

Translating the new strings introduced for v2.20 showed some typos.

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agogit-reset.txt: render literal examples as monospace
Martin Ågren [Wed, 28 Nov 2018 19:02:10 +0000 (20:02 +0100)]
git-reset.txt: render literal examples as monospace

Large parts of this document do not use `backticks` around literal
examples such as branch names (`topic/wip`), git usages, `HEAD` and
`<commit-ish>` so they render as ordinary text. Fix that.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agogit-reset.txt: render tables correctly under Asciidoctor
Martin Ågren [Wed, 28 Nov 2018 19:02:09 +0000 (20:02 +0100)]
git-reset.txt: render tables correctly under Asciidoctor

Asciidoctor removes the indentation of each line in these tables, so the
last lines of each table have a completely broken alignment.

Similar to 379805051d ("Documentation: render revisions correctly under
Asciidoctor", 2018-05-06), use an explicit literal block to indicate
that we want to keep the leading whitespace in the tables.

Because this gives us some extra indentation, we can remove the one that
we have been carrying explicitly. That is, drop the first six spaces of
indentation on each line. With Asciidoc (8.6.10), this results in
identical rendering before and after this commit, both for git-reset.1
and git-reset.html.

Reported-by: Paweł Samoraj <samoraj.pawel@gmail.com>
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agotransport-helper.c: do not translate a string twice
Nguyễn Thái Ngọc Duy [Mon, 26 Nov 2018 19:57:56 +0000 (20:57 +0100)]
transport-helper.c: do not translate a string twice

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoadvice: don't pointlessly suggest --convert-graft-file
Ævar Arnfjörð Bjarmason [Tue, 27 Nov 2018 20:12:55 +0000 (21:12 +0100)]
advice: don't pointlessly suggest --convert-graft-file

The advice to run 'git replace --convert-graft-file' added in
f9f99b3f7d ("Deprecate support for .git/info/grafts", 2018-04-29)
didn't add an exception for the 'git replace --convert-graft-file'
codepath itself.

As a result we'd suggest running --convert-graft-file while the user
was running --convert-graft-file, which makes no sense. Before:

    $ git replace --convert-graft-file
    hint: Support for <GIT_DIR>/info/grafts is deprecated
    hint: and will be removed in a future Git version.
    hint:
    hint: Please use "git replace --convert-graft-file"
    hint: to convert the grafts into replace refs.
    hint:
    hint: Turn this message off by running
    hint: "git config advice.graftFileDeprecated false"

Add a check for that case and skip printing the advice while the user
is busy following our advice.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: fr.po v2.20 rnd 1
Jean-Noël Avila [Wed, 28 Nov 2018 21:16:56 +0000 (22:16 +0100)]
l10n: fr.po v2.20 rnd 1

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2 years agot/lib-git-daemon: fix signal checking
SZEDER Gábor [Mon, 26 Nov 2018 20:03:37 +0000 (21:03 +0100)]
t/lib-git-daemon: fix signal checking

Test scripts checking 'git daemon' stop the daemon with a TERM signal,
and the 'stop_git_daemon' helper checks the daemon's exit status to
make sure that it indeed died because of that signal.

This check is bogus since 03c39b3458 (t/lib-git-daemon: use
test_match_signal, 2016-06-24), for two reasons:

  - Right after killing 'git daemon', 'stop_git_daemon' saves its exit
    status in a variable, but since 03c39b3458 the condition checking
    the exit status looks at '$?', which at this point is not the exit
    status of 'git daemon', but that of the variable assignment, i.e.
    it's always 0.

  - The unexpected exit status should abort the whole test script with
    'error', but it doesn't, because 03c39b3458 forgot to negate
    'test_match_signal's exit status in the condition.

This patch fixes both issues.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'nd/per-worktree-ref-iteration'
Junio C Hamano [Mon, 26 Nov 2018 14:13:42 +0000 (23:13 +0900)]
Merge branch 'nd/per-worktree-ref-iteration'

Build fix.

* nd/per-worktree-ref-iteration:
  files-backend.c: fix build error on Solaris

2 years agoMerge branch 'tb/clone-case-smashing-warning-test'
Junio C Hamano [Mon, 26 Nov 2018 14:13:42 +0000 (23:13 +0900)]
Merge branch 'tb/clone-case-smashing-warning-test'

The code recently added to "git clone" to see if the platform's
filesystem is adequate to check out and use the project code
correctly (e.g. a case smashing filesystem cannot be used for a
project with two files whose paths are different only in case) was
meant to help Windows users, but the test for it was not enabled
for that platform, which has been corrected.

* tb/clone-case-smashing-warning-test:
  t5601-99: Enable colliding file detection for MINGW

2 years agoMerge branch 'jk/t5562-perl-path-fix'
Junio C Hamano [Mon, 26 Nov 2018 14:13:41 +0000 (23:13 +0900)]
Merge branch 'jk/t5562-perl-path-fix'

Hotfix for test breakage on platforms whose Perl is not at
/usr/bin/perl

* jk/t5562-perl-path-fix:
  t5562: fix perl path

2 years agodoc: update diff-format.txt for removed ellipses in --raw
Greg Hurrell [Sat, 24 Nov 2018 09:29:58 +0000 (10:29 +0100)]
doc: update diff-format.txt for removed ellipses in --raw

Since 7cb6ac1e4b ("diff: diff_aligned_abbrev: remove ellipsis after
abbreviated SHA-1 value", 2017-12-03), the "--raw" format of diff
does not add ellipses in an attempt to align the output, but the
documentation was not updated to reflect this.

Signed-off-by: Greg Hurrell <greg@hurrell.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agofiles-backend.c: fix build error on Solaris
Nguyễn Thái Ngọc Duy [Sun, 25 Nov 2018 04:58:16 +0000 (05:58 +0100)]
files-backend.c: fix build error on Solaris

This function files_reflog_path returns void, which usually means
"return;" not returning "void value" from another function.

Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agol10n: Update Catalan translation
Jordi Mas [Sun, 25 Nov 2018 13:53:41 +0000 (14:53 +0100)]
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
2 years agot5562: fix perl path
Jeff King [Thu, 22 Nov 2018 23:38:21 +0000 (01:38 +0200)]
t5562: fix perl path

Some systems do not have perl installed to /usr/bin. Use the variable
from the build settiings, and call perl directly than via shebang.

Signed-off-by: Max Kirillov <max@max630.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agot5601-99: Enable colliding file detection for MINGW
Torsten Bögershausen [Thu, 22 Nov 2018 17:59:52 +0000 (18:59 +0100)]
t5601-99: Enable colliding file detection for MINGW

Commit b878579ae7 (clone: report duplicate entries on case-insensitive
filesystems - 2018-08-17) adds a warning to user when cloning a repo
with case-sensitive file names on a case-insensitive file system.

This test has never been enabled for MINGW.
It had been working since day 1, but I forget to report that to the
author.
Enable it after a re-test.

Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoGit 2.20-rc1 v2.20.0-rc1
Junio C Hamano [Wed, 21 Nov 2018 14:24:52 +0000 (23:24 +0900)]
Git 2.20-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoSync with 2.19.2
Junio C Hamano [Wed, 21 Nov 2018 14:23:48 +0000 (23:23 +0900)]
Sync with 2.19.2

2 years agoGit 2.19.2 v2.19.2
Junio C Hamano [Wed, 21 Nov 2018 14:22:12 +0000 (23:22 +0900)]
Git 2.19.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2 years agoMerge branch 'sg/test-rebase-editor-fix' into maint
Junio C Hamano [Wed, 21 Nov 2018 13:58:10 +0000 (22:58 +0900)]
Merge branch 'sg/test-rebase-editor-fix' into maint

* sg/test-rebase-editor-fix:
  t3404-rebase-interactive: test abbreviated commands

2 years agoMerge branch 'tb/char-may-be-unsigned' into maint
Junio C Hamano [Wed, 21 Nov 2018 13:58:09 +0000 (22:58 +0900)]
Merge branch 'tb/char-may-be-unsigned' into maint

Build portability fix.

* tb/char-may-be-unsigned:
  path.c: char is not (always) signed

2 years agoMerge branch 'jk/uploadpack-packobjectshook-fix' into maint
Junio C Hamano [Wed, 21 Nov 2018 13:58:08 +0000 (22:58 +0900)]
Merge branch 'jk/uploadpack-packobjectshook-fix' into maint

Code clean-up that results in a small bugfix.

* jk/uploadpack-packobjectshook-fix:
  upload-pack: fix broken if/else chain in config callback

2 years agoMerge branch 'uk/merge-subtree-doc-update' into maint
Junio C Hamano [Wed, 21 Nov 2018 13:58:08 +0000 (22:58 +0900)]
Merge branch 'uk/merge-subtree-doc-update' into maint

Belated documentation update to adjust to a new world order that
happened a yew years ago.

* uk/merge-subtree-doc-update:
  howto/using-merge-subtree: mention --allow-unrelated-histories

2 years agoMerge branch 'jc/cocci-preincr' into maint
Junio C Hamano [Wed, 21 Nov 2018 13:58:08 +0000 (22:58 +0900)]
Merge branch 'jc/cocci-preincr' into maint

Code cleanup.

* jc/cocci-preincr:
  fsck: s/++i > 1/i++/
  cocci: simplify "if (++u > 1)" to "if (u++)"

2 years agoMerge branch 'ah/doc-updates' into maint
Junio C Hamano [Wed, 21 Nov 2018 13:58:07 +0000 (22:58 +0900)]
Merge branch 'ah/doc-updates' into maint

Doc updates.

* ah/doc-updates:
  doc: fix formatting in git-update-ref
  doc: fix indentation of listing blocks in gitweb.conf.txt
  doc: fix descripion for 'git tag --format'
  doc: fix inappropriate monospace formatting
  doc: fix ASCII art tab spacing
  doc: clarify boundaries of 'git worktree list --porcelain'