gitweb.git
Git 2.23-rc2 v2.23.0-rc2Junio C Hamano Fri, 9 Aug 2019 17:15:39 +0000 (10:15 -0700)

Git 2.23-rc2

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

Merge branch 'bc/hash-independent-tests-part-4'Junio C Hamano Fri, 9 Aug 2019 17:13:14 +0000 (10:13 -0700)

Merge branch 'bc/hash-independent-tests-part-4'

Test fix.

* bc/hash-independent-tests-part-4:
t0000: reword comments for "local" test
t: decrease nesting in test_oid_to_path

Merge branch 'rs/plug-strbuf-reak-in-read-alt-refs'Junio C Hamano Fri, 9 Aug 2019 17:13:14 +0000 (10:13 -0700)

Merge branch 'rs/plug-strbuf-reak-in-read-alt-refs'

Leakfix.

* rs/plug-strbuf-reak-in-read-alt-refs:
sha1-file: release strbuf after use

Merge branch 'mt/dir-iterator-updates'Junio C Hamano Fri, 9 Aug 2019 17:13:14 +0000 (10:13 -0700)

Merge branch 'mt/dir-iterator-updates'

Leakfix.

* mt/dir-iterator-updates:
test-dir-iterator: use path argument directly
dir-iterator: release strbuf after use

Merge branch 'ds/commit-graph-incremental'Junio C Hamano Fri, 9 Aug 2019 17:13:13 +0000 (10:13 -0700)

Merge branch 'ds/commit-graph-incremental'

Leakfix.

* ds/commit-graph-incremental:
commit-graph: release strbufs after use

Merge branch 'ja/l10n-fixes'Junio C Hamano Thu, 8 Aug 2019 21:26:10 +0000 (14:26 -0700)

Merge branch 'ja/l10n-fixes'

A few messages have been updated to help localization better.

* ja/l10n-fixes:
l10n: reformat some localized strings for v2.23.0

Merge branch 'en/disable-dir-rename-in-recursive-merge'Junio C Hamano Thu, 8 Aug 2019 21:26:10 +0000 (14:26 -0700)

Merge branch 'en/disable-dir-rename-in-recursive-merge'

"merge-recursive" hit a BUG() when building a virtual merge base
detected a directory rename.

* en/disable-dir-rename-in-recursive-merge:
merge-recursive: avoid directory rename detection in recursive case

Merge branch 'nd/switch-and-restore'Junio C Hamano Thu, 8 Aug 2019 21:26:09 +0000 (14:26 -0700)

Merge branch 'nd/switch-and-restore'

Docfix.

* nd/switch-and-restore:
restore: fix typo in docs

Merge branch 'mr/doc-can-not-to-cannot'Junio C Hamano Thu, 8 Aug 2019 21:26:09 +0000 (14:26 -0700)

Merge branch 'mr/doc-can-not-to-cannot'

Docfix.

* mr/doc-can-not-to-cannot:
doc: typo: s/can not/cannot/ and s/is does/does/

Merge branch 'ds/commit-graph-octopus-fix'Junio C Hamano Thu, 8 Aug 2019 21:26:09 +0000 (14:26 -0700)

Merge branch 'ds/commit-graph-octopus-fix'

commit-graph did not handle commits with more than two parents
correctly, which has been corrected.

* ds/commit-graph-octopus-fix:
commit-graph: fix bug around octopus merges

t0000: reword comments for "local" testJeff King Thu, 8 Aug 2019 09:37:33 +0000 (05:37 -0400)

t0000: reword comments for "local" test

Commit 01d3a526ad (t0000: check whether the shell supports the "local"
keyword, 2017-10-26) added a test to gather data on whether people run
the test suite with shells that don't support "local".

After almost two years, nobody has complained, and several other uses
have cropped up in test-lib-functions.sh. Let's declare it acceptable to
use.

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

t: decrease nesting in test_oid_to_pathJonathan Nieder Thu, 8 Aug 2019 06:56:14 +0000 (23:56 -0700)

t: decrease nesting in test_oid_to_path

t1410.3 ("corrupt and checks") fails when run using dash versions
before 0.5.8, with a cryptic message:

mv: cannot stat '.git/objects//e84adb2704cbd49549e52169b4043871e13432': No such file or directory

The function generating that path:

test_oid_to_path () {
echo "${1%${1#??}}/${1#??}"
}

which is supposed to produce a result like

12/3456789....

But a dash bug[*] causes it to instead expand to

/3456789...

The stream of symbols that makes up this function is hard for humans
to follow, too. The complexity mostly comes from the repeated use of
the expression ${1#??} for the basename of the loose object. Use a
variable instead --- nowadays, the dialect of shell used by Git
permits local variables, so this is cheap.

An alternative way to work around [*] is to remove the double-quotes
around test_oid_to_path's return value. That makes the expression
easier for dash to read, but harder for humans. Let's prefer the
rephrasing that's helpful for humans, too.

Noticed by building on Ubuntu trusty, which uses dash 0.5.7.

[*] Fixed by v0.5.8~13 ("[EXPAND] Propagate EXP_QPAT in subevalvar, 2013-08-23).

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

sha1-file: release strbuf after useRené Scharfe Wed, 7 Aug 2019 11:15:25 +0000 (13:15 +0200)

sha1-file: release strbuf after use

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

test-dir-iterator: use path argument directlyRené Scharfe Wed, 7 Aug 2019 11:15:20 +0000 (13:15 +0200)

test-dir-iterator: use path argument directly

Avoid allocating and leaking a strbuf for holding a verbatim copy of the
path argument and pass the latter directly to dir_iterator_begin()
instead.

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

dir-iterator: release strbuf after useRené Scharfe Wed, 7 Aug 2019 11:15:14 +0000 (13:15 +0200)

dir-iterator: release strbuf after use

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

commit-graph: release strbufs after useRené Scharfe Wed, 7 Aug 2019 11:15:02 +0000 (13:15 +0200)

commit-graph: release strbufs after use

Signed-off-by: René Scharfe <l.s.r@web.de>
Acked-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: reformat some localized strings for v2.23.0Jean-Noël Avila Tue, 6 Aug 2019 17:19:52 +0000 (19:19 +0200)

l10n: reformat some localized strings for v2.23.0

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-recursive: avoid directory rename detection in... Elijah Newren Mon, 5 Aug 2019 22:33:50 +0000 (15:33 -0700)

merge-recursive: avoid directory rename detection in recursive case

Ever since commit 8c8e5bd6eb33 ("merge-recursive: switch directory
rename detection default", 2019-04-05), the default handling with
directory rename detection was to report a conflict and leave unstaged
entries in the index. However, when creating a virtual merge base in
the recursive case, we absolutely need a tree, and the only way a tree
can be written is if we have no unstaged entries -- otherwise we hit a
BUG().

There are a few fixes possible here which at least fix the BUG(), but
none of them seem optimal for other reasons; see the comments with the
new testcase 13e in t6043 for details (which testcase triggered a BUG()
prior to this patch). As such, just opt for a very conservative and
simple choice that is still relatively reasonable: have the recursive
case treat 'conflict' as 'false' for opt->detect_directory_renames.

Reported-by: Emily Shaffer <emilyshaffer@google.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

commit-graph: fix bug around octopus mergesDerrick Stolee Mon, 5 Aug 2019 16:43:41 +0000 (09:43 -0700)

commit-graph: fix bug around octopus merges

In 1771be90 "commit-graph: merge commit-graph chains" (2019-06-18),
the method sort_and_scan_merged_commits() was added to merge the
commit lists of two commit-graph files in the incremental format.
Unfortunately, there was an off-by-one error in that method around
incrementing num_extra_edges, which leads to an incorrect offset
for the base graph chunk.

When we store an octopus merge in the commit-graph file, we store
the first parent in the normal place, but use the second parent
position to point into the "extra edges" chunk where the remaining
parents exist. This means we should be adding "num_parents - 1"
edges to this list, not "num_parents - 2". That is the basic error.

The reason this was not caught in the test suite is more subtle.
In 5324-split-commit-graph.sh, we test creating an octopus merge
and adding it to the tip of a commit-graph chain, then verify the
result. This _should_ have caught the problem, except that when
we load the commit-graph files we were overly careful to not fail
when the commit-graph chain does not match. This care was on
purpose to avoid race conditions as one process reads the chain
and another process modifies it. In such a case, the reading
process outputs the following message to stderr:

warning: commit-graph chain does not match

These warnings are output in the test suite, but ignored. By
checking the stderr of `git commit-graph verify` to include
the expected progress output, it will now catch this error.

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

restore: fix typo in docsWilliam Chargin Sat, 3 Aug 2019 22:04:58 +0000 (15:04 -0700)

restore: fix typo in docs

Signed-off-by: William Chargin <wchargin@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

doc: typo: s/can not/cannot/ and s/is does/does/Mark Rushakoff Sat, 3 Aug 2019 05:33:51 +0000 (22:33 -0700)

doc: typo: s/can not/cannot/ and s/is does/does/

"Can not" suggests one has the option to not do something, whereas
"cannot" more strongly suggests something is disallowed or impossible.

Noticed "can not", mistakenly used instead of "cannot" in git help
glossary, then ran git grep 'can not' and found many other instances.
Only files in the Documentation folder were modified.

'Can not' also occurs in some source code comments and some test
assertion messages, and there is an error message and translation "can
not move directory into itself" which I may fix and submit separately
from the documentation change.

Also noticed and fixed "is does" in git help fetch, but there are no
other occurrences of that typo according to git grep.

Signed-off-by: Mark Rushakoff <mark.rushakoff@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.23-rc1 v2.23.0-rc1Junio C Hamano Fri, 2 Aug 2019 20:12:24 +0000 (13:12 -0700)

Git 2.23-rc1

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

Merge branch 'sg/fsck-config-in-doc'Junio C Hamano Fri, 2 Aug 2019 20:12:03 +0000 (13:12 -0700)

Merge branch 'sg/fsck-config-in-doc'

Doc update.

* sg/fsck-config-in-doc:
Documentation/git-fsck.txt: include fsck.* config variables

Merge branch 'js/visual-studio'Junio C Hamano Fri, 2 Aug 2019 20:12:02 +0000 (13:12 -0700)

Merge branch 'js/visual-studio'

Support building Git with Visual Studio

The bits about .git/branches/* have been dropped from the series.
We may want to drop the support for it, but until that happens, the
tests should rely on the existence of the support to pass.

* js/visual-studio: (23 commits)
git: avoid calling aliased builtins via their dashed form
bin-wrappers: append `.exe` to target paths if necessary
.gitignore: ignore Visual Studio's temporary/generated files
.gitignore: touch up the entries regarding Visual Studio
vcxproj: also link-or-copy builtins
msvc: add a Makefile target to pre-generate the Visual Studio solution
contrib/buildsystems: add a backend for modern Visual Studio versions
contrib/buildsystems: handle options starting with a slash
contrib/buildsystems: also handle -lexpat
contrib/buildsystems: handle libiconv, too
contrib/buildsystems: handle the curl library option
contrib/buildsystems: error out on unknown option
contrib/buildsystems: optionally capture the dry-run in a file
contrib/buildsystems: redirect errors of the dry run into a log file
contrib/buildsystems: ignore gettext stuff
contrib/buildsystems: handle quoted spaces in filenames
contrib/buildsystems: fix misleading error message
contrib/buildsystems: ignore irrelevant files in Generators/
contrib/buildsystems: ignore invalidcontinue.obj
Vcproj.pm: urlencode '<' and '>' when generating VC projects
...

Merge branch 'jc/log-mailmap-flip-defaults'Junio C Hamano Fri, 2 Aug 2019 20:12:02 +0000 (13:12 -0700)

Merge branch 'jc/log-mailmap-flip-defaults'

Hotfix for making "git log" use the mailmap by default.

* jc/log-mailmap-flip-defaults:
log: really flip the --mailmap default
log: flip the --mailmap default unconditionally

Merge branch 'js/early-config-with-onbranch'Junio C Hamano Fri, 2 Aug 2019 20:12:02 +0000 (13:12 -0700)

Merge branch 'js/early-config-with-onbranch'

The recently added [includeif "onbranch:branch"] feature does not
work well with an early config mechanism, as it attempts to find
out what branch we are on before we even haven't located the git
repository. The inclusion during early config scan is ignored to
work around this issue.

* js/early-config-with-onbranch:
config: work around bug with includeif:onbranch and early config

log: really flip the --mailmap defaultJunio C Hamano Thu, 1 Aug 2019 21:48:34 +0000 (14:48 -0700)

log: really flip the --mailmap default

Update the docs, test the interaction between the new default,
configuration and command line option, in addition to actually
flipping the default.

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

Merge branch 'jk/repack-silence-auto-bitmap-warning'Junio C Hamano Thu, 1 Aug 2019 16:10:50 +0000 (09:10 -0700)

Merge branch 'jk/repack-silence-auto-bitmap-warning'

Squelch unneeded and misleading warnings from "repack" when the
command attempts to generate pack bitmaps without explicitly asked
for by the user.

* jk/repack-silence-auto-bitmap-warning:
repack: simplify handling of auto-bitmaps and .keep files
repack: silence warnings when auto-enabled bitmaps cannot be built
t7700: clean up .keep file in bitmap-writing test

Merge branch 'jk/sort-iter-test-output'Junio C Hamano Thu, 1 Aug 2019 16:10:50 +0000 (09:10 -0700)

Merge branch 'jk/sort-iter-test-output'

* jk/sort-iter-test-output:
t: sort output of hashmap iteration

Merge branch 'jc/dir-iterator-test-fix'Junio C Hamano Thu, 1 Aug 2019 16:10:49 +0000 (09:10 -0700)

Merge branch 'jc/dir-iterator-test-fix'

* jc/dir-iterator-test-fix:
test-dir-iterator: do not assume errno values

Merge branch 'bc/hash-independent-tests-part-4'Junio C Hamano Thu, 1 Aug 2019 16:10:49 +0000 (09:10 -0700)

Merge branch 'bc/hash-independent-tests-part-4'

Update to the tests to help SHA-256 transition continues.

* bc/hash-independent-tests-part-4:
t2203: avoid hard-coded object ID values
t1710: make hash independent
t1007: remove SHA1 prerequisites
t0090: make test pass with SHA-256
t0027: make hash size independent
t6030: make test work with SHA-256
t5000: make hash independent
t1450: make hash size independent
t1410: make hash size independent
t: add helper to convert object IDs to paths

RelNotes/2.23.0: fix a few typos and other minor issuesMartin Ågren Thu, 1 Aug 2019 14:12:20 +0000 (16:12 +0200)

RelNotes/2.23.0: fix a few typos and other minor issues

Fix the spelling of the new "--no-show-forced-updates" option that "git
fetch/pull" learned. Similarly, spell "--function-context" correctly and
fix a few typos, grammos and minor mistakes.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with maintJunio C Hamano Thu, 1 Aug 2019 16:00:46 +0000 (09:00 -0700)

Sync with maint

* maint:
RelNotes/2.21.1: typofix

RelNotes/2.21.1: typofixMartin Ågren Thu, 1 Aug 2019 14:12:20 +0000 (16:12 +0200)

RelNotes/2.21.1: typofix

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

log: flip the --mailmap default unconditionallyJunio C Hamano Thu, 1 Aug 2019 15:32:44 +0000 (08:32 -0700)

log: flip the --mailmap default unconditionally

It turns out that being cautious to warn against upcoming default
change was an unpopular behaviour, and such a care can easily be
defeated by distro packagers to render it ineffective anyway.

Just flip the default, with only a mention in the release notes.

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

config: work around bug with includeif:onbranch and... Johannes Schindelin Wed, 31 Jul 2019 20:06:42 +0000 (13:06 -0700)

config: work around bug with includeif:onbranch and early config

Since 07b2c0eacac (config: learn the "onbranch:" includeIf condition,
2019-06-05), there is a potential catch-22 in the early config path: if
the `include.onbranch:` feature is used, Git assumes that the Git
directory has been initialized already. However, in the early config
code path that is not true.

One way to trigger this is to call the following commands in any
repository:

git config includeif.onbranch:refs/heads/master.path broken
git help -a

The symptom triggered by the `git help -a` invocation reads like this:

BUG: refs.c:1851: attempting to get main_ref_store outside of repository

Let's work around this, simply by ignoring the `includeif.onbranch:`
setting when parsing the config when the ref store has not been
initialized (yet).

Technically, there is a way to solve this properly: teach the refs
machinery to initialize the ref_store from a given gitdir/commondir pair
(which we _do_ have in the early config code path), and then use that in
`include_by_branch()`. This, however, is a pretty involved project, and
we're already in the feature freeze for Git v2.23.0.

Note: when calling above-mentioned two commands _outside_ of any Git
worktree (passing the `--global` flag to `git config`, as there is
obviously no repository config available), at the point when
`include_by_branch()` is called, `the_repository` is `NULL`, therefore
we have to be extra careful not to dereference it in that case.

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

A few more last-minute fixesJunio C Hamano Wed, 31 Jul 2019 21:45:42 +0000 (14:45 -0700)

A few more last-minute fixes

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

Merge branch 'cb/xdiff-no-system-includes-in-dot-c'Junio C Hamano Wed, 31 Jul 2019 21:38:56 +0000 (14:38 -0700)

Merge branch 'cb/xdiff-no-system-includes-in-dot-c'

Compilation fix.

* cb/xdiff-no-system-includes-in-dot-c:
xdiff: remove duplicate headers from xpatience.c
xdiff: remove duplicate headers from xhistogram.c
xdiff: drop system includes in xutils.c

Merge branch 'jk/no-system-includes-in-dot-c'Junio C Hamano Wed, 31 Jul 2019 21:38:56 +0000 (14:38 -0700)

Merge branch 'jk/no-system-includes-in-dot-c'

Compilation fix.

* jk/no-system-includes-in-dot-c:
wt-status.h: drop stdio.h include
verify-tag: drop signal.h include

repack: simplify handling of auto-bitmaps and .keep... Jeff King Wed, 31 Jul 2019 05:40:56 +0000 (01:40 -0400)

repack: simplify handling of auto-bitmaps and .keep files

Commit 7328482253 (repack: disable bitmaps-by-default if .keep files
exist, 2019-06-29) taught repack to prefer disabling bitmaps to
duplicating objects (unless bitmaps were asked for explicitly).

But there's an easier way to do this: if we keep passing the
--honor-pack-keep flag to pack-objects when auto-enabling bitmaps, then
pack-objects already makes the same decision (it will disable bitmaps
rather than duplicate). Better still, pack-objects can actually decide
to do so based not just on the presence of a .keep file, but on whether
that .keep file actually impacts the new pack we're making (so if we're
racing with a push or fetch, for example, their temporary .keep file
will not block us from generating bitmaps if they haven't yet updated
their refs).

And because repack uses the --write-bitmap-index-quiet flag, we don't
have to worry about pack-objects generating confusing warnings when it
does see a .keep file. We can confirm this by tweaking the .keep test to
check repack's stderr.

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

repack: silence warnings when auto-enabled bitmaps... Jeff King Wed, 31 Jul 2019 05:39:27 +0000 (01:39 -0400)

repack: silence warnings when auto-enabled bitmaps cannot be built

Depending on various config options, a full repack may not be able to
build a reachability bitmap index (e.g., if pack.packSizeLimit forces us
to write multiple packs). In these cases pack-objects may write a
warning to stderr.

Since 36eba0323d (repack: enable bitmaps by default on bare repos,
2019-03-14), we may generate these warnings even when the user did not
explicitly ask for bitmaps. This has two downsides:

- it can be confusing, if they don't know what bitmaps are

- a daemonized auto-gc will write this to its log file, and the
presence of the warning may suppress further auto-gc (until
gc.logExpiry has elapsed)

Let's have repack communicate to pack-objects that the choice to turn on
bitmaps was not made explicitly by the user, which in turn allows
pack-objects to suppress these warnings.

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

t7700: clean up .keep file in bitmap-writing testJeff King Wed, 31 Jul 2019 05:37:36 +0000 (01:37 -0400)

t7700: clean up .keep file in bitmap-writing test

After our test snippet finishes, the .keep file is left in place, making
it hard to do further tests of the auto-bitmap-writing code (since it
suppresses the feature completely). Let's clean it up.

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

t: sort output of hashmap iterationJeff King Wed, 31 Jul 2019 01:23:37 +0000 (21:23 -0400)

t: sort output of hashmap iteration

The iteration order of a hashmap is undefined, and may depend on things
like the exact set of items added, or the table has been grown or
shrunk. In the case of an oidmap, it even depends on endianness, because
we take the oid hash by casting sha1 bytes directly into an unsigned
int.

Let's sort the test-tool output from any hash iterators. In the case of
t0011, this is just future-proofing. But for t0016, it actually fixes a
reported failure on the big-endian s390 and nonstop ports.

I didn't bother to teach the helper functions to optionally sort output.
They are short enough that it's simpler to just repeat them inline for
the iteration tests than it is to add a --sort option.

Reported-by: Randall S. Becker <rsbecker@nexbridge.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-dir-iterator: do not assume errno valuesJunio C Hamano Tue, 30 Jul 2019 17:45:48 +0000 (10:45 -0700)

test-dir-iterator: do not assume errno values

A few tests printed 'errno' as an integer and compared with
hardcoded integers; this is obviously not portable.

A two things to note are:

- the string obtained by strerror() is not portable, and cannot be
used for the purpose of these tests.

- there unfortunately isn't a portable way to map error numbers to
error names.

As we only care about a few selected errors, just map the error
number to the name before emitting for comparison.

Reported-by: Randall S. Becker <rsbecker@nexbridge.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git: avoid calling aliased builtins via their dashed... Johannes Schindelin Mon, 29 Jul 2019 20:08:16 +0000 (13:08 -0700)

git: avoid calling aliased builtins via their dashed form

This is one of the few places where Git violates its own deprecation of
the dashed form. It is not necessary, either.

As of 595d59e2b53 (git.c: ignore pager.* when launching builtin as
dashed external, 2017-08-02), Git wants to ignore the pager.* config
setting when expanding aliases. So let's strip out the
check_pager_config(<command-name>) call from the copy-edited code.

This code actually made it into upstream git.git already, but it was
disabled in `#if 0 ... #endif` guards so far.

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

bin-wrappers: append `.exe` to target paths if necessaryJohannes Schindelin Mon, 29 Jul 2019 20:08:16 +0000 (13:08 -0700)

bin-wrappers: append `.exe` to target paths if necessary

When compiling with Visual Studio, the projects' names are identical to
the executables modulo the extensions. Read: there will exist both a
directory called `git` as well as an executable called `git.exe` in the
end. Which means that the bin-wrappers *need* to target the `.exe` files
lest they try to execute directories.

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

.gitignore: ignore Visual Studio's temporary/generated... Johannes Schindelin Mon, 29 Jul 2019 20:08:15 +0000 (13:08 -0700)

.gitignore: ignore Visual Studio's temporary/generated files

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

.gitignore: touch up the entries regarding Visual StudioPhilip Oakley Mon, 29 Jul 2019 20:08:14 +0000 (13:08 -0700)

.gitignore: touch up the entries regarding Visual Studio

Add the Microsoft .manifest pattern, and do not anchor the 'Debug'
and 'Release' entries at the top-level directory, to allow for
multiple projects (one per target).

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

vcxproj: also link-or-copy builtinsJohannes Schindelin Mon, 29 Jul 2019 20:08:13 +0000 (13:08 -0700)

vcxproj: also link-or-copy builtins

The default location for `.exe` files linked by Visual Studio depends on
the mode (debug vs release) and the architecture. Meaning: after a full
build, there is a `git.exe` in the top-level directory, but none of the
built-ins are linked..

When running a test script in Git Bash, it therefore would pick up the
wrong, say, `git-receive-pack.exe`: the one installed at the same time
as the Git Bash.

Absolutely not what we want. We want to have confidence that our test
covers the MSVC-built Git executables, and not some random stuff.

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

msvc: add a Makefile target to pre-generate the Visual... Johannes Schindelin Mon, 29 Jul 2019 20:08:12 +0000 (13:08 -0700)

msvc: add a Makefile target to pre-generate the Visual Studio solution

The entire idea of generating the VS solution makes only sense if we
generate it via Continuous Integration; otherwise potential users would
still have to download the entire Git for Windows SDK.

If we pre-generate the Visual Studio solution, Git can be built entirely
within Visual Studio, and the test scripts can be run in a regular Git
for Windows (e.g. the Portable Git flavor, which does not include a full
GCC toolchain and therefore weighs only about a tenth of Git for
Windows' SDK).

So let's just add a target in the Makefile that can be used to generate
said solution; The generated files will then be committed so that they
can be pushed to a branch ready to check out by Visual Studio users.

To make things even more useful, we also generate and commit other files
that are required to run the test suite, such as templates and
bin-wrappers: with this, developers can run the test suite in a regular
Git Bash after building the solution in Visual Studio.

Note: for this build target, we do not actually need to initialize the
`vcpkg` system, so we don't.

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

contrib/buildsystems: add a backend for modern Visual... Johannes Schindelin Mon, 29 Jul 2019 20:08:12 +0000 (13:08 -0700)

contrib/buildsystems: add a backend for modern Visual Studio versions

Based on the previous patches in this patch series that fixed the
generator for `.vcproj` files (which were used by Visual Studio prior to
2015 to define projects), this patch offers to generate project
definitions for neweer versions of Visual Studio (which use `.vcxproj`
files).

To that end, this patch copy-edits the generator of the `.vcproj`.

In addition, we now use the `vcpkg` system which allows us to build
Git's dependencies (e.g. curl, libexpat) conveniently. The support
scripts were introduced in the `jh/msvc` patch series, and with this
patch we initialize the `vcpkg` conditionally, in the `libgit` project's
`PreBuildEvent`. To allow for parallel building of the projects, we
therefore put `libgit` at the bottom of the project hierarchy.

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

contrib/buildsystems: handle options starting with... Johannes Schindelin Mon, 29 Jul 2019 20:08:11 +0000 (13:08 -0700)

contrib/buildsystems: handle options starting with a slash

With the recent changes to allow building with MSVC=1, we now pass the
/OPT:REF option to the compiler. This confuses the parser that wants to
turn the output of a dry run into project definitions for QMake and Visual
Studio:

Unhandled link option @ line 213: /OPT:REF at [...]

Let's just extend the code that passes through options that start with a
dash, so that it passes through options that start with a slash, too.

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

contrib/buildsystems: also handle -lexpatJohannes Schindelin Mon, 29 Jul 2019 20:08:10 +0000 (13:08 -0700)

contrib/buildsystems: also handle -lexpat

This is a dependency required for the non-smart HTTP backend.

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

contrib/buildsystems: handle libiconv, tooJohannes Schindelin Mon, 29 Jul 2019 20:08:10 +0000 (13:08 -0700)

contrib/buildsystems: handle libiconv, too

Git's test suite shows tons of breakages unless Git is compiled
*without* NO_ICONV. That means, in turn, that we need to generate
build definitions *with* libiconv, which in turn implies that we
have to handle the -liconv option properly.

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

contrib/buildsystems: handle the curl library optionPhilip Oakley Mon, 29 Jul 2019 20:08:09 +0000 (13:08 -0700)

contrib/buildsystems: handle the curl library option

Upon seeing the '-lcurl' option, point to the libcurl.lib.

While there, fix the elsif indentation.

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

contrib/buildsystems: error out on unknown optionJohannes Schindelin Mon, 29 Jul 2019 20:08:08 +0000 (13:08 -0700)

contrib/buildsystems: error out on unknown option

One time too many did this developer call the `generate` script passing
a `--make-out=<PATH>` option that was happily ignored (because there
should be a space, not an equal sign, between `--make-out` and the
path).

And one time too many, this script not only ignored it but did not even
complain. Let's fix that.

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

contrib/buildsystems: optionally capture the dry-run... Philip Oakley Mon, 29 Jul 2019 20:08:07 +0000 (13:08 -0700)

contrib/buildsystems: optionally capture the dry-run in a file

Add an option for capturing the output of the make dry-run used in
determining the msvc-build structure for easy debugging.

You can use the output of `--make-out <path>` in subsequent runs via the
`--in <path>` option.

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

contrib/buildsystems: redirect errors of the dry run... Philip Oakley Mon, 29 Jul 2019 20:08:07 +0000 (13:08 -0700)

contrib/buildsystems: redirect errors of the dry run into a log file

Rather than swallowing the errors, it is better to have them in a file.

To make it obvious what this is about, use the file name
'msvc-build-makedryerrors.txt'.

Further, if the output is empty, simply delete that file. As we target
Git for Windows' SDK (which, unlike its predecessor msysGit, offers Perl
versions newer than 5.8), we can use the quite readable syntax `if -f -z
$ErrsFile` (available in Perl >=5.10).

Note that the file will contain the new values of the GIT_VERSION and
GITGUI_VERSION if they were generated by the make file. They are omitted
if the release is tagged and indentically defined in their respective
GIT_VERSION_GEN file DEF_VER variables.

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

contrib/buildsystems: ignore gettext stuffPhilip Oakley Mon, 29 Jul 2019 20:08:06 +0000 (13:08 -0700)

contrib/buildsystems: ignore gettext stuff

Git's build contains steps to handle internationalization. This caused
hiccups in the parser used to generate QMake/Visual Studio project files.

As those steps are irrelevant in this context, let's just ignore them.

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

contrib/buildsystems: handle quoted spaces in filenamesPhilip Oakley Mon, 29 Jul 2019 20:08:05 +0000 (13:08 -0700)

contrib/buildsystems: handle quoted spaces in filenames

The engine.pl script expects file names not to contain spaces. However,
paths with spaces are quite prevalent on Windows. Use shellwords() rather
than split() to parse them correctly.

Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/buildsystems: fix misleading error messagePhilip Oakley Mon, 29 Jul 2019 20:08:05 +0000 (13:08 -0700)

contrib/buildsystems: fix misleading error message

The error message talked about a "lib option", but it clearly referred
to a link option.

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

contrib/buildsystems: ignore irrelevant files in Genera... Johannes Schindelin Mon, 29 Jul 2019 20:08:04 +0000 (13:08 -0700)

contrib/buildsystems: ignore irrelevant files in Generators/

The Generators/ directory can contain spurious files such as editors'
backup files. Even worse, there could be .swp files which are not even
valid Perl scripts.

Let's just ignore anything but .pm files in said directory.

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

contrib/buildsystems: ignore invalidcontinue.objPhilip Oakley Mon, 29 Jul 2019 20:08:03 +0000 (13:08 -0700)

contrib/buildsystems: ignore invalidcontinue.obj

Since 4b623d8 (MSVC: link in invalidcontinue.obj for better POSIX
compatibility, 2014-03-29), invalidcontinue.obj is linked in the MSVC
build, but it was not parsed correctly by the buildsystem. Ignore it, as
it is known to Visual Studio and will be handled elsewhere.

Also only substitute filenames ending with .o when generating the
source .c filename, otherwise we would start to expect .cbj files to
generate .obj files (which are not generated by our build)...

In the future there may be source files that produce .obj files
so keep the two issues (.obj files with & without source files)
separate.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Duncan Smart <duncan.smart@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Vcproj.pm: urlencode '<' and '>' when generating VC... Johannes Schindelin Mon, 29 Jul 2019 20:08:03 +0000 (13:08 -0700)

Vcproj.pm: urlencode '<' and '>' when generating VC projects

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

Vcproj.pm: do not configure VCWebServiceProxyGeneratorToolJohannes Schindelin Mon, 29 Jul 2019 20:08:02 +0000 (13:08 -0700)

Vcproj.pm: do not configure VCWebServiceProxyGeneratorTool

It is not necessary, and Visual Studio 2015 no longer supports it, anyway.

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

Vcproj.pm: list git.exe first to be startup projectPhilip Oakley Mon, 29 Jul 2019 20:08:01 +0000 (13:08 -0700)

Vcproj.pm: list git.exe first to be startup project

Visual Studio takes the first listed application/library as the default
startup project [1].

Detect the 'git' project and place it at the head of the project list,
rather than at the tail.

Export the apps list before libs list for both the projects and global
structures of the .sln file.

[1] http://stackoverflow.com/questions/1238553/
vs2008-where-is-the-startup-project-setting-stored-for-a-solution
"In the solution file, there are a list of pseudo-XML "Project"
entries. It turns out that whatever is the first one ends up as
the Startup Project, unless it’s overridden in the suo file. Argh.
I just rearranged the order in the file and it’s good."

"just moving the pseudo-xml isn't enough. You also have to move the
group of entries in the "GlobalSection(ProjectConfigurationPlatforms)
= postSolution" group that has the GUID of the project you moved to
the top. So there are two places to move lines."

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

Vcproj.pm: auto-generate GUIDsJohannes Schindelin Mon, 29 Jul 2019 20:08:01 +0000 (13:08 -0700)

Vcproj.pm: auto-generate GUIDs

We ran out GUIDs. Again. But there is no need to: we can generate them
semi-randomly from the target file name of the project.

Note: the Vcproj generator is probably only interesting for historical
reasons; nevertheless, the upcoming Vcxproj generator (to support modern
Visual Studio versions) is based on the Vcproj generator and it is
better to fix this here first.

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

Git 2.23-rc0 v2.23.0-rc0Junio C Hamano Mon, 29 Jul 2019 19:51:24 +0000 (12:51 -0700)

Git 2.23-rc0

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

Sync with maintJunio C Hamano Mon, 29 Jul 2019 19:40:42 +0000 (12:40 -0700)

Sync with maint

* maint:
Merge fixes made on the 'master' front

Merge branch 'js/rebase-cleanup'Junio C Hamano Mon, 29 Jul 2019 19:39:13 +0000 (12:39 -0700)

Merge branch 'js/rebase-cleanup'

A few leftover cleanup to "git rebase" in C.

* js/rebase-cleanup:
git: mark cmd_rebase as requiring a worktree
rebase: fix white-space

Merge branch 'jk/xdiff-clamp-funcname-context-index'Junio C Hamano Mon, 29 Jul 2019 19:39:13 +0000 (12:39 -0700)

Merge branch 'jk/xdiff-clamp-funcname-context-index'

The internal diff machinery can be made to read out of bounds while
looking for --funcion-context line in a corner case, which has been
corrected.

* jk/xdiff-clamp-funcname-context-index:
xdiff: clamp function context indices in post-image

Merge branch 'sg/travis-gcc-4.8'Junio C Hamano Mon, 29 Jul 2019 19:39:13 +0000 (12:39 -0700)

Merge branch 'sg/travis-gcc-4.8'

Add a job to build with a tad older GCC to make sure we are still
buildable.

* sg/travis-gcc-4.8:
travis-ci: build with GCC 4.8 as well

Merge branch 'bb/grep-pcre2-bug-message-fix'Junio C Hamano Mon, 29 Jul 2019 19:39:13 +0000 (12:39 -0700)

Merge branch 'bb/grep-pcre2-bug-message-fix'

BUG() message fix.

The codepath may want to just simply be removed, though.

* bb/grep-pcre2-bug-message-fix:
grep: print the pcre2_jit_on value

Merge fixes made on the 'master' frontJunio C Hamano Mon, 29 Jul 2019 18:14:47 +0000 (11:14 -0700)

Merge fixes made on the 'master' front

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

Merge branch 'jc/post-c89-rules-doc' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:23 +0000 (12:38 -0700)

Merge branch 'jc/post-c89-rules-doc' into maint

We have been trying out a few language features outside c89; the
coding guidelines document did not talk about them and instead had
a blanket ban against them.

* jc/post-c89-rules-doc:
CodingGuidelines: spell out post-C89 rules

Merge branch 'fc/fetch-with-import-fix' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:23 +0000 (12:38 -0700)

Merge branch 'fc/fetch-with-import-fix' into maint

Code restructuring during 2.20 period broke fetching tags via
"import" based transports.

* fc/fetch-with-import-fix:
fetch: fix regression with transport helpers
fetch: make the code more understandable
fetch: trivial cleanup
t5801 (remote-helpers): add test to fetch tags
t5801 (remote-helpers): cleanup refspec stuff

Merge branch 'ds/close-object-store' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:22 +0000 (12:38 -0700)

Merge branch 'ds/close-object-store' into maint

The commit-graph file is now part of the "files that the runtime
may keep open file descriptors on, all of which would need to be
closed when done with the object store", and the file descriptor to
an existing commit-graph file now is closed before "gc" finalizes a
new instance to replace it.

* ds/close-object-store:
packfile: rename close_all_packs to close_object_store
packfile: close commit-graph in close_all_packs
commit-graph: use raw_object_store when closing
commit-graph: extract write_commit_graph_file()
commit-graph: extract copy_oids_to_commits()
commit-graph: extract count_distinct_commits()
commit-graph: extract fill_oids_from_all_packs()
commit-graph: extract fill_oids_from_commit_hex()
commit-graph: extract fill_oids_from_packs()
commit-graph: create write_commit_graph_context
commit-graph: remove Future Work section
commit-graph: collapse parameters into flags
commit-graph: return with errors during write
commit-graph: fix the_repository reference

Merge branch 'pw/add-p-recount' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:22 +0000 (12:38 -0700)

Merge branch 'pw/add-p-recount' into maint

"git checkout -p" needs to selectively apply a patch in reverse,
which did not work well.

* pw/add-p-recount:
add -p: fix checkout -p with pathological context

Merge branch 'rs/avoid-overflow-in-midpoint-computation... Junio C Hamano Mon, 29 Jul 2019 19:38:21 +0000 (12:38 -0700)

Merge branch 'rs/avoid-overflow-in-midpoint-computation' into maint

Code clean-up to avoid signed integer overlaps during binary search.

* rs/avoid-overflow-in-midpoint-computation:
cleanup: fix possible overflow errors in binary search, part 2

Merge branch 'jk/trailers-use-config' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:21 +0000 (12:38 -0700)

Merge branch 'jk/trailers-use-config' into maint

"git interpret-trailers" always treated '#' as the comment
character, regardless of core.commentChar setting, which has been
corrected.

* jk/trailers-use-config:
interpret-trailers: load default config

Merge branch 'tg/stash-ref-by-index-fix' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:20 +0000 (12:38 -0700)

Merge branch 'tg/stash-ref-by-index-fix' into maint

"git stash show 23" used to work, but no more after getting
rewritten in C; this regression has been corrected.

* tg/stash-ref-by-index-fix:
stash: fix show referencing stash index

Merge branch 'pw/rebase-abort-clean-rewritten' into... Junio C Hamano Mon, 29 Jul 2019 19:38:20 +0000 (12:38 -0700)

Merge branch 'pw/rebase-abort-clean-rewritten' into maint

"git rebase --abort" used to leave refs/rewritten/ when concluding
"git rebase -r", which has been corrected.

* pw/rebase-abort-clean-rewritten:
rebase --abort/--quit: cleanup refs/rewritten
sequencer: return errors from sequencer_remove_state()
rebase: warn if state directory cannot be removed
rebase: fix a memory leak

Merge branch 'nd/completion-no-cache-failure' into... Junio C Hamano Mon, 29 Jul 2019 19:38:20 +0000 (12:38 -0700)

Merge branch 'nd/completion-no-cache-failure' into maint

An incorrect list of options was cached after command line
completion failed (e.g. trying to complete a command that requires
a repository outside one), which has been corrected.

* nd/completion-no-cache-failure:
completion: do not cache if --git-completion-helper fails

Merge branch 'rs/config-unit-parsing' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:19 +0000 (12:38 -0700)

Merge branch 'rs/config-unit-parsing' into maint

The code to parse scaled numbers out of configuration files has
been made more robust and also easier to follow.

* rs/config-unit-parsing:
config: simplify parsing of unit factors
config: don't multiply in parse_unit_factor()
config: use unsigned_mult_overflows to check for overflows

Merge branch 'jk/delta-islands-progress-fix' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:19 +0000 (12:38 -0700)

Merge branch 'jk/delta-islands-progress-fix' into maint

The codepath to compute delta islands used to spew progress output
without giving the callers any way to squelch it, which has been
fixed.

* jk/delta-islands-progress-fix:
delta-islands: respect progress flag

Merge branch 'sg/rebase-progress' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:19 +0000 (12:38 -0700)

Merge branch 'sg/rebase-progress' into maint

Use "Erase in Line" CSI sequence that is already used in the editor
support to clear cruft in the progress output.

* sg/rebase-progress:
progress: use term_clear_line()
rebase: fix garbled progress display with '-x'
pager: add a helper function to clear the last line in the terminal
t3404: make the 'rebase.missingCommitsCheck=ignore' test more focused
t3404: modernize here doc style

Merge branch 'ms/submodule-foreach-fix' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:18 +0000 (12:38 -0700)

Merge branch 'ms/submodule-foreach-fix' into maint

"git submodule foreach" did not protect command line options passed
to the command to be run in each submodule correctly, when the
"--recursive" option was in use.

* ms/submodule-foreach-fix:
submodule foreach: fix recursion of options

Merge branch 'js/rebase-reschedule-applies-only-to... Junio C Hamano Mon, 29 Jul 2019 19:38:18 +0000 (12:38 -0700)

Merge branch 'js/rebase-reschedule-applies-only-to-interactive' into maint

The configuration variable rebase.rescheduleFailedExec should be
effective only while running an interactive rebase and should not
affect anything when running an non-interactive one, which was not
the case. This has been corrected.

* js/rebase-reschedule-applies-only-to-interactive:
rebase --am: ignore rebase.rescheduleFailedExec

Merge branch 'qn/clone-doc-use-long-form' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:18 +0000 (12:38 -0700)

Merge branch 'qn/clone-doc-use-long-form' into maint

The "git clone" documentation refers to command line options in its
description in the short form; they have been replaced with long
forms to make them more recognisable.

* qn/clone-doc-use-long-form:
docs: git-clone: list short form of options first
docs: git-clone: refer to long form of options

Merge branch 'jc/denoise-rm-to-resolve' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:17 +0000 (12:38 -0700)

Merge branch 'jc/denoise-rm-to-resolve' into maint

"git rm" to resolve a conflicted path leaked an internal message
"needs merge" before actually removing the path, which was
confusing. This has been corrected.

* jc/denoise-rm-to-resolve:
rm: resolving by removal is not a warning-worthy event

Merge branch 'js/mingw-spawn-with-spaces-in-path' into... Junio C Hamano Mon, 29 Jul 2019 19:38:17 +0000 (12:38 -0700)

Merge branch 'js/mingw-spawn-with-spaces-in-path' into maint

Window 7 update ;-)

* js/mingw-spawn-with-spaces-in-path:
mingw: support spawning programs containing spaces in their names

Merge branch 'sr/gpg-interface-stop-at-the-end' into... Junio C Hamano Mon, 29 Jul 2019 19:38:17 +0000 (12:38 -0700)

Merge branch 'sr/gpg-interface-stop-at-the-end' into maint

A codepath that reads from GPG for signed object verification read
past the end of allocated buffer, which has been fixed.

* sr/gpg-interface-stop-at-the-end:
gpg-interface: do not scan past the end of buffer

Merge branch 'js/clean-report-too-long-a-path' into... Junio C Hamano Mon, 29 Jul 2019 19:38:16 +0000 (12:38 -0700)

Merge branch 'js/clean-report-too-long-a-path' into maint

"git clean" silently skipped a path when it cannot lstat() it; now
it gives a warning.

* js/clean-report-too-long-a-path:
clean: show an error message when the path is too long

Merge branch 'es/local-atomic-push-failure-with-http... Junio C Hamano Mon, 29 Jul 2019 19:38:16 +0000 (12:38 -0700)

Merge branch 'es/local-atomic-push-failure-with-http' into maint

"git push --atomic" that goes over the transport-helper (namely,
the smart http transport) failed to prevent refs to be pushed when
it can locally tell that one of the ref update will fail without
having to consult the other end, which has been corrected.

* es/local-atomic-push-failure-with-http:
transport-helper: avoid var decl in for () loop control
transport-helper: enforce atomic in push_refs_with_push

Merge branch 'po/doc-branch' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:16 +0000 (12:38 -0700)

Merge branch 'po/doc-branch' into maint

Doc update.

* po/doc-branch:
doc branch: provide examples for listing remote tracking branches

Merge branch 'dl/config-alias-doc' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:15 +0000 (12:38 -0700)

Merge branch 'dl/config-alias-doc' into maint

Doc update.

* dl/config-alias-doc:
config/alias.txt: document alias accepting non-command first word
config/alias.txt: change " and ' to `

Merge branch 'cb/fsmonitor-intfix' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:15 +0000 (12:38 -0700)

Merge branch 'cb/fsmonitor-intfix' into maint

Variable type fix.

* cb/fsmonitor-intfix:
fsmonitor: avoid signed integer overflow / infinite loop

Merge branch 'rs/copy-array' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:15 +0000 (12:38 -0700)

Merge branch 'rs/copy-array' into maint

Code clean-up.

* rs/copy-array:
use COPY_ARRAY for copying arrays
coccinelle: use COPY_ARRAY for copying arrays

Merge branch 'js/t3404-typofix' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:14 +0000 (12:38 -0700)

Merge branch 'js/t3404-typofix' into maint

Typofix.

* js/t3404-typofix:
t3404: fix a typo

Merge branch 'cb/mkstemps-uint-type-fix' into maintJunio C Hamano Mon, 29 Jul 2019 19:38:14 +0000 (12:38 -0700)

Merge branch 'cb/mkstemps-uint-type-fix' into maint

Variable type fix.

* cb/mkstemps-uint-type-fix:
wrapper: avoid undefined behaviour in macOS