Commit Graph

93400 Commits

Author SHA1 Message Date
Johannes Schindelin
09f326d9fa README: add a build badge (status of the Azure Pipelines build)
Just like so many other OSS projects, we now also have a build badge.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:48 +01:00
Johannes Schindelin
a3975a6888 tests: record more stderr with --write-junit-xml in case of failure
Sometimes, failures in a test case are actually caused by issues in
earlier test cases.

To make it easier to see those issues, let's attach the output from
before the failing test case (i.e. stdout/stderr since the previous
failing test case, or the start of the test script). This will be
visible in the "Attachments" of the details of the failed test.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:48 +01:00
Johannes Schindelin
326b7151b8 tests: include detailed trace logs with --write-junit-xml upon failure
The JUnit XML format lends itself to be presented in a powerful UI,
where you can drill down to the information you are interested in very
quickly.

For test failures, this usually means that you want to see the detailed
trace of the failing tests.

With Travis CI, we passed the `--verbose-log` option to get those
traces. However, that seems excessive, as we do not need/use the logs in
almost all of those cases: only when a test fails do we have a way to
include the trace.

So let's do something different when using Azure DevOps: let's run all
the tests with `--quiet` first, and only if a failure is encountered,
try to trace the commands as they are executed.

Of course, we cannot turn on `--verbose-log` after the fact. So let's
just re-run the test with all the same options, adding `--verbose-log`.
And then munging the output file into the JUnit XML on the fly.

Note: there is an off chance that re-running the test in verbose mode
"fixes" the failures (and this does happen from time to time!). That is
a possibility we should be able to live with. Ideally, we would label
this as "Passed upon rerun", and Azure Pipelines even know about that
outcome, but it is not available when using the JUnit XML format for
now:
https://github.com/Microsoft/azure-pipelines-agent/blob/master/src/Agent.Worker/TestResults/JunitResultReader.cs

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:47 +01:00
Johannes Schindelin
fda58d53c6 git-p4: use test_atexit to kill the daemon
This should be more reliable than the current method, and prepares the
test suite for a consistent way to clean up before re-running the tests
with different options.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:46 +01:00
Johannes Schindelin
88b38aebd1 git-daemon: use test_atexit in the tests
This makes use of the just-introduced consistent way to specify that a
long-running process needs to be terminated at the end of a test script
run.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:45 +01:00
Johannes Schindelin
91525ecb83 tests: introduce test_atexit
When running the p4 daemon or `git daemon`, we want to kill it at the
end of the test script.

So far, we do this "manually".

However, in the next few commits we want to teach the test suite to
optionally re-run scripts with different options, therefore we will have
to have a consistent way to stop daemons.

Let's introduce `test_atexit`, which is loosely modeled after
`test_when_finished` (but has a broader scope: rather than running the
commands after the current test case, run them when the test script
finishes, and also run them when the `--immediate` option is in effect).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:45 +01:00
Johannes Schindelin
70f440e6ec Add a build definition for Azure DevOps
This commit adds an azure-pipelines.yml file which is Azure DevOps'
equivalent to Travis CI's .travis.yml.

To make things a bit easier to understand, we refrain from using the
`matrix` feature here because (while it is powerful) it can be a bit
confusing to users who are not familiar with CI setups. Therefore, we
use a separate phase even for similar configurations (such as GCC vs
Clang on Linux, GCC vs Clang on macOS).

Also, we make use of the shiny new feature we just introduced where the
test suite can output JUnit-style .xml files. This information is made
available in a nice UI that allows the viewer to filter by phase and/or
test number, and to see trends such as: number of (failing) tests, time
spent running the test suite, etc.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:44 +01:00
Johannes Schindelin
94174eeb89 ci/lib.sh: add support for Azure Pipelines
This patch introduces a conditional arm that defines some environment
variables and a function that displays the URL given the job id (to
identify previous runs for known-good trees).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:44 +01:00
Johannes Schindelin
4cd52a8b8b tests: optionally write results as JUnit-style .xml
This will come in handy when publishing the results of Git's test suite
during an automated Azure DevOps run.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:43 +01:00
Johannes Schindelin
66ce72bd78 test-date: add a subcommand to measure times in shell scripts
In the next commit, we want to teach Git's test suite to optionally
output test results in JUnit-style .xml files. These files contain
information about the time spent. So we need a way to measure time.

While we could use `date +%s` for that, this will give us only seconds,
i.e. very coarse-grained timings.

GNU `date` supports `date +%s.%N` (i.e. nanosecond-precision output),
but there is no equivalent in BSD `date` (read: on macOS, we would not
be able to obtain precise timings).

So let's introduce `test-tool date getnanos`, with an optional start
time, that outputs preciser values.

Granted, it is a bit pointless to try measuring times accurately in
shell scripts, certainly to nanosecond precision. But it is better than
second-granularity.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:43 +01:00
Johannes Schindelin
7c14aaae1f ci/lib.sh: encapsulate Travis-specific things
The upcoming patches will allow building git.git via Azure Pipelines
(i.e. Azure DevOps' Continuous Integration), where variable names and
URLs look a bit different than in Travis CI.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:42 +01:00
Johannes Schindelin
9adaca8ee4 ci: rename the library of common functions
The name is hard-coded to reflect that we use Travis CI for continuous
testing.

In the next commits, we will extend this to be able use Azure DevOps,
too.

So let's adjust the name to make it more generic.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:42 +01:00
Johannes Schindelin
0821f31c81 tests: optionally skip bin-wrappers/
This speeds up the tests by a bit on Windows, where running Unix shell
scripts (and spawning processes) is not exactly a cheap operation.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:41 +01:00
Johannes Schindelin
317df9e906 t0061: fix with --with-dashes and RUNTIME_PREFIX
When building Git with RUNTIME_PREFIX and starting a test helper from
t/helper/, it fails to detect the system prefix correctly.

This is the reason that the warning

	RUNTIME_PREFIX requested, but prefix computation failed. [...]

to be printed.

In t0061, we did not expect that to happen, and it actually did not
happen in the normal case, because bin-wrappers/test-tool specifically
sets GIT_TEXTDOMAINDIR (and as a consequence, nothing in test-tool wants
to know about the runtime prefix).

However, with --with-dashes, bin-wrappers/test-tool is no longer called,
but t/helper/test-tool is called directly.

So let's just ignore the RUNTIME_PREFIX warning.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:40 +01:00
Johannes Schindelin
b6c7188573 tests: add t/helper/ to the PATH with --with-dashes
We really need to be able to find the test helpers... Really. This
change was forgotten when we moved the test helpers into t/helper/

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:06:40 +01:00
Johannes Schindelin
e2445268b4 Start the merging-rebase to v2.20.0
This commit starts the rebase of 26af515b80 to 90141c8595
2018-12-09 11:06:20 +01:00
Johannes Schindelin
0f58b02568 Merge branch 'origin/master'
For a short while, we had two tracks: the `master` one, based on
v2.19.2, and the `rebase-to-v2.20.0-rc<N>` one, following the -rc
versions of v2.20.0.

Since we forward-ported all changes from `master` to the -rc track (or
backported them in the other direction), at this point we have all of
`origin/master` already, and can continue the merging rebase to v2.20.0
based on the `rebase-to-v2.20.0-rc<N>` track (which has a lot of the
merge conflicts resolved already).

So let's just merge in the commit history of `master`, without changing
the tree (i.e. with `-s ours`, just like the fake merge starting the
merging rebase). That way, the new `master` will fast-forward from the
old `master`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-09 11:01:35 +01:00
Junio C Hamano
5d826e9729 Git 2.20
Signed-off-by: Junio C Hamano <gitster@pobox.com>
v2.20.0
2018-12-09 13:16:21 +09:00
Junio C Hamano
b5796d9a32 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
  ...
2018-12-09 13:11:36 +09:00
Ralf Thielow
0688c551a3 l10n: de.po: fix two messages
Reported-by: Phillip Szelat <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2018-12-07 19:43:07 +01:00
Johannes Schindelin
53f0d18676 Merge pull request #1968 from dscho/http-version
http: add support selecting http version
2018-12-06 23:35:41 +01:00
Force Charlie
729b647e22 http: add support selecting http version
Usually we don't need to set libcurl to choose which version of the
HTTP protocol to use to communicate with a server.
But different versions of libcurl, the default value is not the same.

CURL >= 7.62.0: CURL_HTTP_VERSION_2TLS
CURL < 7.62: CURL_HTTP_VERSION_1_1

In order to give users the freedom to control the HTTP version,
we need to add a setting to choose which HTTP version to use.

Signed-off-by: Force Charlie <charlieio@outlook.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-06 23:35:18 +01:00
Johannes Schindelin
433dc93305 Merge pull request #1968 from dscho/http-version
http: add support selecting http version
2018-12-06 23:31:37 +01:00
Jiang Xin
4c27fcb576 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>
2018-12-06 16:00:29 +08:00
Ralf Thielow
cf4c0c2505 l10n: update German translation
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2018-12-06 07:44:41 +01:00
Force Charlie
64ff4f906a http: add support selecting http version
Usually we don't need to set libcurl to choose which version of the
HTTP protocol to use to communicate with a server.
But different versions of libcurl, the default value is not the same.

CURL >= 7.62.0: CURL_HTTP_VERSION_2TLS
CURL < 7.62: CURL_HTTP_VERSION_1_1

In order to give users the freedom to control the HTTP version,
we need to add a setting to choose which HTTP version to use.

Signed-off-by: Force Charlie <charlieio@outlook.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2018-12-04 22:44:56 +01:00
Johannes Schindelin
96889860af fixup! builtin rebase: call git am directly
This fixes the reflog messages, as expected by t3406 in v2.20.0-rc2, as
well as fixing a compiler warning about "" being an invalid
printf()-style format. Also, while at it, ensure that
.git/rebased-patches is truncated if it already exists.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-04 11:26:52 +01:00
Johannes Schindelin
fb6ad2412c 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 by first updating the branch and
then adjusting the symbolic ref HEAD.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-04 11:26:50 +01:00
Junio C Hamano
965798d1f2 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
2018-12-04 12:49:50 +09:00
Junio C Hamano
5335669531 Merge branch 'en/rebase-consistency'
* en/rebase-consistency:
  rebase docs: fix incorrect format of the section Behavioral Differences
2018-12-04 12:49:39 +09:00
Johannes Sixt
6fcbad87d4 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>
2018-12-04 11:50:52 +09:00
Martin Ågren
7e75a63d74 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>
2018-12-04 11:26:40 +09:00
Martin Ågren
7a49e44465 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>
2018-12-04 11:26:38 +09:00
Martin Ågren
00ac55c7bd 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>
2018-12-04 11:26:36 +09:00
Martin Ågren
ac0edf1f46 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>
2018-12-04 10:36:14 +09:00
Jiang Xin
609713eb66 Merge branch 'master' of git://github.com/alshopov/git-po 2018-12-03 12:49:45 +08:00
Alexander Shopov
9290395fe9 l10n: bg.po: Updated Bulgarian translation (4187t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2018-12-02 16:09:21 +01:00
Peter Krefting
7345044379 l10n: sv.po: Update Swedish translation (4187t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2018-12-02 15:43:34 +01:00
Jiang Xin
a8f5329e04 Merge branch 'fr_2.20_round3' of git://github.com/jnavila/git 2018-12-02 22:36:36 +08:00
Jean-Noël Avila
5386321271 l10n: fr.po v2.20.0 round 3
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2018-12-02 11:03:23 +01:00
Jiang Xin
cd1eab5882 Merge branch 'master' of https://github.com/vnwildman/git 2018-12-02 17:57:24 +08:00
Tran Ngoc Quan
8173e9c772 l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2018-12-02 14:15:00 +07:00
Christopher Diaz Riveros
7c6767be71 l10n: es.po v2.20.0 round 3
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
2018-12-01 23:17:55 -05:00
Jiang Xin
578d8ea381 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>
2018-12-02 10:56:26 +08:00
Jiang Xin
924a01f237 Merge branch 'master' of git://github.com/git-l10n/git-po 2018-12-02 10:55:14 +08:00
Jiang Xin
26a567e4c3 Merge branch 'master' of https://github.com/vnwildman/git 2018-12-02 10:25:09 +08:00
Tran Ngoc Quan
84368b62b0 l10n: vi(4185t): Updated Vietnamese translation for v2.20.0
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
2018-12-02 09:00:09 +07:00
Johannes Schindelin
091f41c798 Merge pull request #1958 from dscho/ansi-unicode
mingw: safeguard against compiling with `-DUNICODE`
2018-12-01 22:58:11 +01:00
Johannes Schindelin
147f162c80 Merge pull request #1937 from benpeart/fscache-NtQueryDirectoryFile-gfw
fscache: teach fscache to use NtQueryDirectoryFile
2018-12-01 22:58:10 +01:00
Johannes Schindelin
63bc068956 mingw: use ANSI or Unicode functions explicitly
For many Win32 functions, there actually exist two variants: one with
the `A` suffix that takes ANSI parameters (`char *` or `const char *`)
and one with the `W` suffix that takes Unicode parameters (`wchar_t *`
or `const wchar_t *`).

Let's be precise what we want to use.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2018-12-01 22:58:10 +01:00