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>
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>
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>
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
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
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>
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>
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>
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>
Æ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>
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>
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>
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
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
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
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>
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>
Max Kirillov [Sat, 24 Nov 2018 13:48:27 +0000 (15:48 +0200)]
http-backend: enable cleaning up forked upload/receive-pack on exit
If http-backend dies because of errors, started upload-pack or
receive-pack are not killed and waited, but rather stay running for
some time until they exit because of closed stdin. It may be
undesirable in working environment, and it also causes occasional
failure of t5562, because the processes keep opened act.err, and
sometimes write there errors after next test started using the file.
Fix by enabling cleaning of the command at http-backed exit.
Reported-by: Carlo Arenas <carenas@gmail.com>
Helped-by: Carlo Arenas <carenas@gmail.com>
Signed-off-by: Max Kirillov <max@max630.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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>
Jeff King [Thu, 22 Nov 2018 17:53:00 +0000 (12:53 -0500)]
odb_load_loose_cache: fix strbuf leak
Commit
3a2e0824 ("object-store: provide helpers for loose_objects_cache",
2018-11-12) moved the cache-loading code from find_short_object_filename(),
but forgot the line that releases the path strbuf.
Reported-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
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>
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>
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>
Junio C Hamano [Wed, 21 Nov 2018 14:23:48 +0000 (23:23 +0900)]
Sync with 2.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>
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
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
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
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
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++)"
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'
Junio C Hamano [Wed, 21 Nov 2018 13:58:07 +0000 (22:58 +0900)]
Merge branch 'sg/doc-show-branch-typofix' into maint
Docfix.
* sg/doc-show-branch-typofix:
doc: fix small typo in git show-branch
Junio C Hamano [Wed, 21 Nov 2018 13:58:06 +0000 (22:58 +0900)]
Merge branch 'tq/branch-style-fix' into maint
Code clean-up.
* tq/branch-style-fix:
branch: trivial style fix
Junio C Hamano [Wed, 21 Nov 2018 13:58:06 +0000 (22:58 +0900)]
Merge branch 'tq/branch-create-wo-branch-get' into maint
Code clean-up.
* tq/branch-create-wo-branch-get:
builtin/branch.c: remove useless branch_get
Junio C Hamano [Wed, 21 Nov 2018 13:58:06 +0000 (22:58 +0900)]
Merge branch 'sb/strbuf-h-update' into maint
Code clean-up to serve as a BCP example.
Further clean-up patches may want to follow soon.
* sb/strbuf-h-update:
strbuf.h: format according to coding guidelines
Junio C Hamano [Wed, 21 Nov 2018 13:58:05 +0000 (22:58 +0900)]
Merge branch 'du/cherry-is-plumbing' into maint
Doc update to mark "git cherry" as a plumbing command.
* du/cherry-is-plumbing:
doc: move git-cherry to plumbing
Junio C Hamano [Wed, 21 Nov 2018 13:58:05 +0000 (22:58 +0900)]
Merge branch 'du/get-tar-commit-id-is-plumbing' into maint
Doc update to mark "git get-tar-commit-id" as a plumbing command.
* du/get-tar-commit-id-is-plumbing:
doc: move git-get-tar-commit-id to plumbing
Junio C Hamano [Wed, 21 Nov 2018 13:58:04 +0000 (22:58 +0900)]
Merge branch 'mm/doc-no-dashed-git' into maint
Doc update.
* mm/doc-no-dashed-git:
doc: fix a typo and clarify a sentence
Junio C Hamano [Wed, 21 Nov 2018 13:58:04 +0000 (22:58 +0900)]
Merge branch 'du/rev-parse-is-plumbing' into maint
Doc update.
* du/rev-parse-is-plumbing:
doc: move git-rev-parse from porcelain to plumbing
Junio C Hamano [Wed, 21 Nov 2018 13:58:04 +0000 (22:58 +0900)]
Merge branch 'ma/t7005-bash-workaround' into maint
Test fix.
* ma/t7005-bash-workaround:
t7005-editor: quote filename to fix whitespace-issue
Junio C Hamano [Wed, 21 Nov 2018 13:58:03 +0000 (22:58 +0900)]
Merge branch 'jc/how-to-document-api' into maint
Doc update.
* jc/how-to-document-api:
CodingGuidelines: document the API in *.h files
Junio C Hamano [Wed, 21 Nov 2018 13:58:03 +0000 (22:58 +0900)]
Merge branch 'mw/doc-typofixes' into maint
Typofixes.
* mw/doc-typofixes:
docs: typo: s/isimilar/similar/
docs: graph: remove unnecessary `graph_update()' call
docs: typo: s/go/to/
Junio C Hamano [Wed, 21 Nov 2018 13:58:02 +0000 (22:58 +0900)]
Merge branch 'rs/sequencer-oidset-insert-avoids-dups' into maint
Code clean-up.
* rs/sequencer-oidset-insert-avoids-dups:
sequencer: use return value of oidset_insert()
Junio C Hamano [Wed, 21 Nov 2018 13:58:02 +0000 (22:58 +0900)]
Merge branch 'ma/mailing-list-address-in-git-help' into maint
Doc update.
* ma/mailing-list-address-in-git-help:
git doc: direct bug reporters to mailing list archive
Junio C Hamano [Wed, 21 Nov 2018 13:58:01 +0000 (22:58 +0900)]
Merge branch 'nd/packobjectshook-doc-fix' into maint
Doc update.
* nd/packobjectshook-doc-fix:
config.txt: correct the note about uploadpack.packObjectsHook
Junio C Hamano [Wed, 21 Nov 2018 13:58:01 +0000 (22:58 +0900)]
Merge branch 'ma/t1400-undebug-test' into maint
Test fix.
* ma/t1400-undebug-test:
t1400: drop debug `echo` to actually execute `test`
Junio C Hamano [Wed, 21 Nov 2018 13:58:00 +0000 (22:58 +0900)]
Merge branch 'ma/commit-graph-docs' into maint
Doc update.
* ma/commit-graph-docs:
Doc: refer to the "commit-graph file" with dash
git-commit-graph.txt: refer to "*commit*-graph file"
git-commit-graph.txt: typeset more in monospace
git-commit-graph.txt: fix bullet lists
Junio C Hamano [Wed, 21 Nov 2018 13:58:00 +0000 (22:58 +0900)]
Merge branch 'dz/credential-doc-url-matching-rules' into maint
Doc update.
* dz/credential-doc-url-matching-rules:
doc: clarify gitcredentials path component matching
Junio C Hamano [Wed, 21 Nov 2018 13:57:59 +0000 (22:57 +0900)]
Merge branch 'jk/check-everything-connected-is-long-gone' into maint
Comment fix.
* jk/check-everything-connected-is-long-gone:
receive-pack: update comment with check_everything_connected
Junio C Hamano [Wed, 21 Nov 2018 13:57:58 +0000 (22:57 +0900)]
Merge branch 'fe/doc-updates' into maint
Doc updates.
* fe/doc-updates:
git-describe.1: clarify that "human readable" is also git-readable
git-column.1: clarify initial description, provide examples
git-archimport.1: specify what kind of Arch we're talking about
Junio C Hamano [Wed, 21 Nov 2018 13:57:58 +0000 (22:57 +0900)]
Merge branch 'tg/t5551-with-curl-7.61.1' into maint
Test update.
Supersedes tz/t5551-with-curl-7.61.1 topic
* tg/t5551-with-curl-7.61.1:
t5551: compare sorted cookies files
t5551: move setup code inside test_expect blocks
Junio C Hamano [Wed, 21 Nov 2018 13:57:58 +0000 (22:57 +0900)]
Merge branch 'tq/refs-internal-comment-fix' into maint
Fix for typo in a sample code in comment.
* tq/refs-internal-comment-fix:
refs: docstring typo
Junio C Hamano [Wed, 21 Nov 2018 13:57:57 +0000 (22:57 +0900)]
Merge branch 'sg/split-index-test' into maint
Test updates.
* sg/split-index-test:
t0090: disable GIT_TEST_SPLIT_INDEX for the test checking split index
t1700-split-index: drop unnecessary 'grep'
Junio C Hamano [Wed, 21 Nov 2018 13:57:57 +0000 (22:57 +0900)]
Merge branch 'bw/protocol-v2' into maint
Doc fix.
* bw/protocol-v2:
config: document value 2 for protocol.version
Junio C Hamano [Wed, 21 Nov 2018 13:57:56 +0000 (22:57 +0900)]
Merge branch 'sb/string-list-remove-unused' into maint
Code clean-up.
* sb/string-list-remove-unused:
string-list: remove unused function print_string_list
Junio C Hamano [Wed, 21 Nov 2018 13:57:56 +0000 (22:57 +0900)]
Merge branch 'jk/dev-build-format-security' into maint
Build tweak to help developers.
* jk/dev-build-format-security:
config.mak.dev: add -Wformat-security
Junio C Hamano [Wed, 21 Nov 2018 13:57:55 +0000 (22:57 +0900)]
Merge branch 'sg/t3701-tighten-trace' into maint
Test update.
* sg/t3701-tighten-trace:
t3701-add-interactive: tighten the check of trace output
Junio C Hamano [Wed, 21 Nov 2018 13:57:54 +0000 (22:57 +0900)]
Merge branch 'en/double-semicolon-fix' into maint
Code clean-up.
* en/double-semicolon-fix:
Remove superfluous trailing semicolons
Junio C Hamano [Wed, 21 Nov 2018 13:57:54 +0000 (22:57 +0900)]
Merge branch 'tb/void-check-attr' into maint
Code clean-up.
* tb/void-check-attr:
Make git_check_attr() a void function
Junio C Hamano [Wed, 21 Nov 2018 13:57:54 +0000 (22:57 +0900)]
Merge branch 'sg/doc-trace-appends' into maint
Docfix.
* sg/doc-trace-appends:
Documentation/git.txt: clarify that GIT_TRACE=/path appends
Junio C Hamano [Wed, 21 Nov 2018 13:57:53 +0000 (22:57 +0900)]
Merge branch 'tg/conflict-marker-size' into maint
Developer aid.
* tg/conflict-marker-size:
.gitattributes: add conflict-marker-size for relevant files
Junio C Hamano [Wed, 21 Nov 2018 13:57:53 +0000 (22:57 +0900)]
Merge branch 'ts/doc-build-manpage-xsl-quietly' into maint
Build tweak.
* ts/doc-build-manpage-xsl-quietly:
Documentation/Makefile: make manpage-base-url.xsl generation quieter
Junio C Hamano [Wed, 21 Nov 2018 13:57:52 +0000 (22:57 +0900)]
Merge branch 'jk/detect-truncated-zlib-input' into maint
A regression in Git 2.12 era made "git fsck" fall into an infinite
loop while processing truncated loose objects.
* jk/detect-truncated-zlib-input:
cat-file: handle streaming failures consistently
check_stream_sha1(): handle input underflow
t1450: check large blob in trailing-garbage test
Junio C Hamano [Wed, 21 Nov 2018 13:57:52 +0000 (22:57 +0900)]
Merge branch 'sg/test-verbose-log' into maint
Our test scripts can now take the '-V' option as a synonym for the
'--verbose-log' option.
* sg/test-verbose-log:
test-lib: introduce the '-V' short option for '--verbose-log'
Junio C Hamano [Wed, 21 Nov 2018 13:57:52 +0000 (22:57 +0900)]
Merge branch 'ss/travis-ci-force-vm-mode' into maint
The "container" mode of TravisCI is going away. Our .travis.yml
file is getting prepared for the transition.
* ss/travis-ci-force-vm-mode:
travis-ci: no longer use containers
Junio C Hamano [Wed, 21 Nov 2018 13:57:52 +0000 (22:57 +0900)]
Merge branch 'md/exclude-promisor-objects-fix' into maint
Operations on promisor objects make sense in the context of only a
small subset of the commands that internally use the revisions
machinery, but the "--exclude-promisor-objects" option were taken
and led to nonsense results by commands like "log", to which it
didn't make much sense. This has been corrected.
* md/exclude-promisor-objects-fix:
exclude-promisor-objects: declare when option is allowed
Documentation/git-log.txt: do not show --exclude-promisor-objects
Junio C Hamano [Wed, 21 Nov 2018 13:57:51 +0000 (22:57 +0900)]
Merge branch 'js/shallow-and-fetch-prune' into maint
"git repack" in a shallow clone did not correctly update the
shallow points in the repository, leading to a repository that
does not pass fsck.
* js/shallow-and-fetch-prune:
repack -ad: prune the list of shallow commits
shallow: offer to prune only non-existing entries
repack: point out a bug handling stale shallow info
Junio C Hamano [Wed, 21 Nov 2018 13:57:51 +0000 (22:57 +0900)]
Merge branch 'jc/receive-deny-current-branch-fix' into maint
The receive.denyCurrentBranch=updateInstead codepath kicked in even
when the push should have been rejected due to other reasons, such
as it does not fast-forward or the update-hook rejects it, which
has been corrected.
* jc/receive-deny-current-branch-fix:
receive: denyCurrentBranch=updateinstead should not blindly update
Junio C Hamano [Wed, 21 Nov 2018 13:57:50 +0000 (22:57 +0900)]
Merge branch 'js/diff-notice-has-drive-prefix' into maint
Under certain circumstances, "git diff D:/a/b/c D:/a/b/d" on
Windows would strip initial parts from the paths because they
were not recognized as absolute, which has been corrected.
* js/diff-notice-has-drive-prefix:
diff: don't attempt to strip prefix from absolute Windows paths
Junio C Hamano [Wed, 21 Nov 2018 13:57:50 +0000 (22:57 +0900)]
Merge branch 'js/pack-objects-mutex-init-fix' into maint
A mutex used in "git pack-objects" were not correctly initialized
and this caused "git repack" to dump core on Windows.
* js/pack-objects-mutex-init-fix:
pack-objects (mingw): initialize `packing_data` mutex in the correct spot
pack-objects (mingw): demonstrate a segmentation fault with large deltas
pack-objects: fix typo 'detla' -> 'delta'
Junio C Hamano [Wed, 21 Nov 2018 13:57:50 +0000 (22:57 +0900)]
Merge branch 'jk/run-command-notdot' into maint
The implementation of run_command() API on the UNIX platforms had a
bug that caused a command not on $PATH to be found in the current
directory.
* jk/run-command-notdot:
run-command: mark path lookup errors with ENOENT
Junio C Hamano [Wed, 21 Nov 2018 13:57:49 +0000 (22:57 +0900)]
Merge branch 'np/log-graph-octopus-fix' into maint
"git log --graph" showing an octopus merge sometimes miscounted the
number of display columns it is consuming to show the merge and its
parent commits, which has been corrected.
* np/log-graph-octopus-fix:
log: fix coloring of certain octopus merge shapes
Junio C Hamano [Wed, 21 Nov 2018 13:57:48 +0000 (22:57 +0900)]
Merge branch 'sg/split-index-racefix' into maint
The codepath to support the experimental split-index mode had
remaining "racily clean" issues fixed.
* sg/split-index-racefix:
split-index: BUG() when cache entry refers to non-existing shared entry
split-index: smudge and add racily clean cache entries to split index
split-index: don't compare cached data of entries already marked for split index
split-index: count the number of deleted entries
t1700-split-index: date back files to avoid racy situations
split-index: add tests to demonstrate the racy split index problem
t1700-split-index: document why FSMONITOR is disabled in this test script
Junio C Hamano [Wed, 21 Nov 2018 13:57:48 +0000 (22:57 +0900)]
Merge branch 'jt/non-blob-lazy-fetch' into maint
A partial clone that is configured to lazily fetch missing objects
will on-demand issue a "git fetch" request to the originating
repository to fill not-yet-obtained objects. The request has been
optimized for requesting a tree object (and not the leaf blob
objects contained in it) by telling the originating repository that
no blobs are needed.
* jt/non-blob-lazy-fetch:
fetch-pack: exclude blobs when lazy-fetching trees
fetch-pack: avoid object flags if no_dependents
Junio C Hamano [Wed, 21 Nov 2018 13:57:48 +0000 (22:57 +0900)]
Merge branch 'sm/show-superproject-while-conflicted' into maint
A corner-case bugfix.
* sm/show-superproject-while-conflicted:
rev-parse: --show-superproject-working-tree should work during a merge
Junio C Hamano [Wed, 21 Nov 2018 13:57:48 +0000 (22:57 +0900)]
Merge branch 'en/status-multiple-renames-to-the-same-target-fix' into maint
The code in "git status" sometimes hit an assertion failure. This
was caused by a structure that was reused without cleaning the data
used for the first run, which has been corrected.
* en/status-multiple-renames-to-the-same-target-fix:
commit: fix erroneous BUG, 'multiple renames on the same target? how?'
Junio C Hamano [Wed, 21 Nov 2018 13:57:47 +0000 (22:57 +0900)]
Merge branch 'jn/mailmap-update' into maint
The mailmap file update.
* jn/mailmap-update:
mailmap: consistently normalize brian m. carlson's name
Junio C Hamano [Wed, 21 Nov 2018 13:57:47 +0000 (22:57 +0900)]
Merge branch 'ds/commit-graph-with-grafts' into maint
The recently introduced commit-graph auxiliary data is incompatible
with mechanisms such as replace & grafts that "breaks" immutable
nature of the object reference relationship. Disable optimizations
based on its use (and updating existing commit-graph) when these
incompatible features are in use in the repository.
* ds/commit-graph-with-grafts:
commit-graph: close_commit_graph before shallow walk
commit-graph: not compatible with uninitialized repo
commit-graph: not compatible with grafts
commit-graph: not compatible with replace objects
test-repository: properly init repo
commit-graph: update design document
refs.c: upgrade for_each_replace_ref to be a each_repo_ref_fn callback
refs.c: migrate internal ref iteration to pass thru repository argument
Junio C Hamano [Wed, 21 Nov 2018 13:57:46 +0000 (22:57 +0900)]
Merge branch 'tg/range-diff-corner-case-fix' into maint
Recently added "range-diff" had a corner-case bug to cause it
segfault, which has been corrected.
* tg/range-diff-corner-case-fix:
linear-assignment: fix potential out of bounds memory access
Junio C Hamano [Wed, 21 Nov 2018 13:57:46 +0000 (22:57 +0900)]
Merge branch 'en/update-ref-no-deref-stdin' into maint
"git update-ref" learned to make both "--no-deref" and "--stdin"
work at the same time.
* en/update-ref-no-deref-stdin:
update-ref: allow --no-deref with --stdin
update-ref: fix type of update_flags variable to match its usage
Junio C Hamano [Wed, 21 Nov 2018 13:57:46 +0000 (22:57 +0900)]
Merge branch 'ms/remote-error-message-update' into maint
Update error messages given by "git remote" and make them consistent.
* ms/remote-error-message-update:
builtin/remote: quote remote name on error to display empty name
Junio C Hamano [Wed, 21 Nov 2018 13:57:45 +0000 (22:57 +0900)]
Merge branch 'jt/lazy-object-fetch-fix' into maint
The code to backfill objects in lazily cloned repository did not
work correctly, which has been corrected.
* jt/lazy-object-fetch-fix:
fetch-object: set exact_oid when fetching
fetch-object: unify fetch_object[s] functions
Junio C Hamano [Wed, 21 Nov 2018 13:57:45 +0000 (22:57 +0900)]
Merge branch 'en/sequencer-empty-edit-result-aborts' into maint
"git rebase" etc. in Git 2.19 fails to abort when given an empty
commit log message as result of editing, which has been corrected.
* en/sequencer-empty-edit-result-aborts:
sequencer: fix --allow-empty-message behavior, make it smarter
Junio C Hamano [Wed, 21 Nov 2018 13:57:45 +0000 (22:57 +0900)]
Merge branch 'nd/attr-pathspec-fix' into maint
"git add ':(attr:foo)'" is not supported and is supposed to be
rejected while the command line arguments are parsed, but we fail
to reject such a command line upfront.
* nd/attr-pathspec-fix:
add: do not accept pathspec magic 'attr'
Junio C Hamano [Wed, 21 Nov 2018 13:57:44 +0000 (22:57 +0900)]
Merge branch 'en/rerere-multi-stage-1-fix' into maint
A corner case bugfix in "git rerere" code.
* en/rerere-multi-stage-1-fix:
rerere: avoid buffer overrun
t4200: demonstrate rerere segfault on specially crafted merge
Junio C Hamano [Wed, 21 Nov 2018 13:57:44 +0000 (22:57 +0900)]
Merge branch 'js/mingw-o-append' into maint
Further fix for O_APPEND emulation on Windows
* js/mingw-o-append:
mingw: fix mingw_open_append to work with named pipes
t0051: test GIT_TRACE to a windows named pipe
Junio C Hamano [Wed, 21 Nov 2018 13:57:43 +0000 (22:57 +0900)]
Merge branch 'jk/reopen-tempfile-truncate' into maint
Fix for a long-standing bug that leaves the index file corrupt when
it shrinks during a partial commit.
* jk/reopen-tempfile-truncate:
reopen_tempfile(): truncate opened file
Junio C Hamano [Wed, 21 Nov 2018 13:57:43 +0000 (22:57 +0900)]
Merge branch 'bp/mv-submodules-with-fsmonitor' into maint
When fsmonitor is in use, after operation on submodules updates
.gitmodules, we lost track of the fact that we did so and relied on
stale fsmonitor data.
* bp/mv-submodules-with-fsmonitor:
git-mv: allow submodules and fsmonitor to work together
Junio C Hamano [Wed, 21 Nov 2018 13:57:42 +0000 (22:57 +0900)]
Merge branch 'js/rebase-i-autosquash-fix' into maint
"git rebase -i" did not clear the state files correctly when a run
of "squash/fixup" is aborted and then the user manually amended the
commit instead, which has been corrected.
* js/rebase-i-autosquash-fix:
rebase -i: be careful to wrap up fixup/squash chains
rebase -i --autosquash: demonstrate a problem skipping the last squash
Junio C Hamano [Wed, 21 Nov 2018 13:57:41 +0000 (22:57 +0900)]
Merge branch 'jk/trailer-fixes' into maint
"git interpret-trailers" and its underlying machinery had a buggy
code that attempted to ignore patch text after commit log message,
which triggered in various codepaths that will always get the log
message alone and never get such an input.
* jk/trailer-fixes:
append_signoff: use size_t for string offsets
sequencer: ignore "---" divider when parsing trailers
pretty, ref-filter: format %(trailers) with no_divider option
interpret-trailers: allow suppressing "---" divider
interpret-trailers: tighten check for "---" patch boundary
trailer: pass process_trailer_opts to trailer_info_get()
trailer: use size_t for iterating trailer list
trailer: use size_t for string offsets
Junio C Hamano [Wed, 21 Nov 2018 11:39:03 +0000 (20:39 +0900)]
Merge branch 'cc/shared-index-permbits'
The way .git/index and .git/sharedindex* files were initially
created gave these files different perm bits until they were
adjusted for shared repository settings. This was made consistent.
* cc/shared-index-permbits:
read-cache: make the split index obey umask settings
Junio C Hamano [Wed, 21 Nov 2018 11:39:02 +0000 (20:39 +0900)]
Merge branch 'nd/clone-case-smashing-warning'
Recently added check for case smashing filesystems did not
correctly utilize the cached stat information, leading to false
breakage detected by our test suite, which has been corrected.
* nd/clone-case-smashing-warning:
clone: fix colliding file detection on APFS
Junio C Hamano [Wed, 21 Nov 2018 11:39:02 +0000 (20:39 +0900)]
Merge branch 'tz/build-tech-midx-doc'
A documentation page that is referred to by other pages was not
built by mistake, which has been corrected.
* tz/build-tech-midx-doc:
Documentation: build technical/multi-pack-index
Junio C Hamano [Wed, 21 Nov 2018 11:39:02 +0000 (20:39 +0900)]
Merge branch 'jn/eoie-ieot'
As the warning message shown by existing versions of Git for
unknown index extensions is a bit too alarming, two new extensions
are held back and not written by default for the upcoming release.
* jn/eoie-ieot:
index: make index.threads=true enable ieot and eoie
ieot: default to not writing IEOT section
eoie: default to not writing EOIE section
Junio C Hamano [Wed, 21 Nov 2018 11:39:02 +0000 (20:39 +0900)]
Merge branch 'cc/delta-islands'
A few issues in the implementation of "delta-islands" feature has
been corrected.
* cc/delta-islands:
pack-objects: fix off-by-one in delta-island tree-depth computation
pack-objects: zero-initialize tree_depth/layer arrays
pack-objects: fix tree_depth and layer invariants
Junio C Hamano [Wed, 21 Nov 2018 11:39:01 +0000 (20:39 +0900)]
Merge branch 'js/rebase-am-options-fix'
Recently, built-in "rebase" tightened the error checking for a few
options that are passed to underlying "am", but we forgot to make
the matching change to the scripted version, which has been
corrected.
* js/rebase-am-options-fix:
legacy-rebase: backport -C<n> and --whitespace=<option> checks
Junio C Hamano [Wed, 21 Nov 2018 11:39:01 +0000 (20:39 +0900)]
Merge branch 'js/builtin-rebase-perf-fix-err-fix'
The object name of the tree reported in a recently added error
message was wrong, which has been corrected.
* js/builtin-rebase-perf-fix-err-fix:
rebase: warn about the correct tree's OID
Jonathan Nieder [Tue, 20 Nov 2018 06:14:26 +0000 (22:14 -0800)]
index: make index.threads=true enable ieot and eoie
If a user explicitly sets
[index]
threads = true
to read the index using multiple threads, ensure that index writes
include the offset table by default to make that possible. This
ensures that the user's intent of turning on threading is respected.
In other words, permit the following configurations:
- index.threads and index.recordOffsetTable unspecified: do not write
the offset table yet (to avoid alarming the user with "ignoring IEOT
extension" messages when an older version of Git accesses the
repository) but do make use of multiple threads to read the index if
the supporting offset table is present.
This can also be requested explicitly by setting index.threads=true,
0, or >1 and index.recordOffsetTable=false.
- index.threads=false or 1: do not write the offset table, and do not
make use of the offset table.
One can set index.recordOffsetTable=false as well, to be more
explicit.
- index.threads=true, 0, or >1 and index.recordOffsetTable unspecified:
write the offset table and make use of threads at read time.
This can also be requested by setting index.threads=true, 0, >1, or
unspecified and index.recordOffsetTable=true.
Fortunately the complication is temporary: once most Git installations
have upgraded to a version with support for the IEOT and EOIE
extensions, we can flip the defaults for index.recordEndOfIndexEntries
and index.recordOffsetTable to true and eliminate the settings.
Helped-by: Ben Peart <benpeart@microsoft.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Tue, 20 Nov 2018 16:28:53 +0000 (17:28 +0100)]
clone: fix colliding file detection on APFS
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. The
"find duplicate file" check was doing by comparing inode number (and
only fall back to fspathcmp() when inode is known to be unreliable
because fspathcmp() can't cover all case folding cases).
The inode check is very simple, and wrong. It compares between a
32-bit number (sd_ino) and potentially a 64-bit number (st_ino). When
an inode is larger than 2^32 (which seems to be the case for APFS), it
will be truncated and stored in sd_ino, but comparing with itself will
fail.
As a result, instead of showing a pair of files that have the same
name, we show just one file (marked before the beginning of the
loop). We fail to find the original one.
The fix could be just a simple type cast (*)
dup->ce_stat_data.sd_ino == (unsigned int)st->st_ino
but this is no longer a reliable test, there are 4G possible inodes
that can match sd_ino because we only match the lower 32 bits instead
of full 64 bits.
There are two options to go. Either we ignore inode and go with
fspathcmp() on Apple platform. This means we can't do accurate inode
check on HFS anymore, or even on APFS when inode numbers are still
below 2^32.
Or we just to to reduce the odds of matching a wrong file by checking
more attributes, counting mostly on st_size because st_xtime is likely
the same. This patch goes with this direction, hoping that false
positive chances are too small to be seen in practice.
While at there, enable the test on Cygwin (verified working by Ramsay
Jones)
(*) this is also already done inside match_stat_data()
Reported-by: Carlo Arenas <carenas@gmail.com>
Helped-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Todd Zullinger [Tue, 20 Nov 2018 18:04:54 +0000 (13:04 -0500)]
Documentation: build technical/multi-pack-index
The git-multi-pack-index doc links to technical/multi-pack-index.html.
Ensure it is built to prevent a broken link.
Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>