Josh Steadmon [Tue, 15 Jan 2019 22:25:51 +0000 (14:25 -0800)]
commit-graph: fix buffer read-overflow
fuzz-commit-graph identified a case where Git will read past the end of
a buffer containing a commit graph if the graph's header has an
incorrect chunk count. A simple bounds check in parse_commit_graph()
prevents this.
Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Josh Steadmon [Tue, 15 Jan 2019 22:25:50 +0000 (14:25 -0800)]
commit-graph, fuzz: add fuzzer for commit-graph
Break load_commit_graph_one() into a new function, parse_commit_graph().
The latter function operates on arbitrary buffers, which makes it
suitable as a fuzzing target. Since parse_commit_graph() is only called
by load_commit_graph_one() (and the fuzzer described below), we omit
error messages that would be duplicated by the caller.
Adds fuzz-commit-graph.c, which provides a fuzzing entry point
compatible with libFuzzer (and possibly other fuzzing engines).
Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 14 Jan 2019 23:33:36 +0000 (15:33 -0800)]
Second batch after 2.20
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 14 Jan 2019 23:29:33 +0000 (15:29 -0800)]
Merge branch 'do/gitweb-strict-export-conf-doc'
Doc update.
* do/gitweb-strict-export-conf-doc:
docs: fix $strict_export text in gitweb.conf.txt
Junio C Hamano [Mon, 14 Jan 2019 23:29:32 +0000 (15:29 -0800)]
Merge branch 'nd/indentation-fix'
Code cleanup.
* nd/indentation-fix:
Indent code with TABs
Junio C Hamano [Mon, 14 Jan 2019 23:29:32 +0000 (15:29 -0800)]
Merge branch 'en/directory-renames-nothanks-doc-update'
Doc update.
* en/directory-renames-nothanks-doc-update:
git-rebase.txt: update note about directory rename detection and am
Junio C Hamano [Mon, 14 Jan 2019 23:29:32 +0000 (15:29 -0800)]
Merge branch 'bw/mailmap'
* bw/mailmap:
mailmap: update brandon williams's email address
Junio C Hamano [Mon, 14 Jan 2019 23:29:32 +0000 (15:29 -0800)]
Merge branch 'fd/gitweb-snapshot-conf-doc-fix'
Doc update.
* fd/gitweb-snapshot-conf-doc-fix:
docs/gitweb.conf: config variable typo
Junio C Hamano [Mon, 14 Jan 2019 23:29:32 +0000 (15:29 -0800)]
Merge branch 'tb/use-common-win32-pathfuncs-on-cygwin'
Cygwin update.
* tb/use-common-win32-pathfuncs-on-cygwin:
git clone <url> C:\cygwin\home\USER\repo' is working (again)
Junio C Hamano [Mon, 14 Jan 2019 23:29:32 +0000 (15:29 -0800)]
Merge branch 'km/rebase-doc-typofix'
Doc update.
* km/rebase-doc-typofix:
rebase docs: drop stray word in merge command description
Junio C Hamano [Mon, 14 Jan 2019 23:29:31 +0000 (15:29 -0800)]
Merge branch 'md/exclude-promisor-objects-fix-cleanup'
Code clean-up.
* md/exclude-promisor-objects-fix-cleanup:
revision.c: put promisor option in specialized struct
Junio C Hamano [Mon, 14 Jan 2019 23:29:31 +0000 (15:29 -0800)]
Merge branch 'tb/log-G-binary'
"git log -G<regex>" looked for a hunk in the "git log -p" patch
output that contained a string that matches the given pattern.
Optimize this code to ignore binary files, which by default will
not show any hunk that would match any pattern (unless textconv or
the --text option is in effect, that is).
* tb/log-G-binary:
log -G: ignore binary files
Junio C Hamano [Mon, 14 Jan 2019 23:29:31 +0000 (15:29 -0800)]
Merge branch 'sb/diff-color-moved-config-option-fixup'
Minor inconsistency fix.
* sb/diff-color-moved-config-option-fixup:
diff: align move detection error handling with other options
Junio C Hamano [Mon, 14 Jan 2019 23:29:30 +0000 (15:29 -0800)]
Merge branch 'hn/highlight-sideband-keywords'
Lines that begin with a certain keyword that come over the wire, as
well as lines that consist only of one of these keywords, ought to
be painted in color for easier eyeballing, but the latter was
broken ever since the feature was introduced in 2.19, which has
been corrected.
* hn/highlight-sideband-keywords:
sideband: color lines with keyword only
Junio C Hamano [Mon, 14 Jan 2019 23:29:30 +0000 (15:29 -0800)]
Merge branch 'cb/test-lint-cp-a'
BSD port update.
* cb/test-lint-cp-a:
tests: add lint for non portable cp -a
Junio C Hamano [Mon, 14 Jan 2019 23:29:30 +0000 (15:29 -0800)]
Merge branch 'cb/t5004-empty-tar-archive-fix'
BSD port update.
* cb/t5004-empty-tar-archive-fix:
t5004: avoid using tar for empty packages
Junio C Hamano [Mon, 14 Jan 2019 23:29:30 +0000 (15:29 -0800)]
Merge branch 'cb/openbsd-allows-reading-directory'
BSD port update.
* cb/openbsd-allows-reading-directory:
config.mak.uname: OpenBSD uses BSD semantics with fread for directories
Junio C Hamano [Mon, 14 Jan 2019 23:29:29 +0000 (15:29 -0800)]
Merge branch 'hb/t0061-dot-in-path-fix'
Test update.
* hb/t0061-dot-in-path-fix:
t0061: do not fail test if '.' is part of $PATH
Junio C Hamano [Mon, 14 Jan 2019 23:29:28 +0000 (15:29 -0800)]
Merge branch 'nd/checkout-noisy'
"git checkout [<tree-ish>] path..." learned to report the number of
paths that have been checked out of the index or the tree-ish,
which gives it the same degree of noisy-ness as the case in which
the command checks out a branch.
* nd/checkout-noisy:
t0027: squelch checkout path run outside test_expect_* block
checkout: print something when checking out paths
Junio C Hamano [Mon, 14 Jan 2019 23:29:28 +0000 (15:29 -0800)]
Merge branch 'ab/commit-graph-progress-fix'
* ab/commit-graph-progress-fix:
commit-graph: split up close_reachable() progress output
Junio C Hamano [Mon, 14 Jan 2019 23:29:28 +0000 (15:29 -0800)]
Merge branch 'nd/attr-pathspec-in-tree-walk'
The traversal over tree objects has learned to honor
":(attr:label)" pathspec match, which has been implemented only for
enumerating paths on the filesystem.
* nd/attr-pathspec-in-tree-walk:
tree-walk: support :(attr) matching
dir.c: move, rename and export match_attrs()
pathspec.h: clean up "extern" in function declarations
tree-walk.c: make tree_entry_interesting() take an index
tree.c: make read_tree*() take 'struct repository *'
Junio C Hamano [Mon, 14 Jan 2019 23:29:28 +0000 (15:29 -0800)]
Merge branch 'md/list-lazy-objects-fix'
"git rev-list --exclude-promisor-objects" had to take an object
that does not exist locally (and is lazily available) from the
command line without barfing, but the code dereferenced NULL.
* md/list-lazy-objects-fix:
list-objects.c: don't segfault for missing cmdline objects
Junio C Hamano [Fri, 4 Jan 2019 21:39:39 +0000 (13:39 -0800)]
First batch after 2.20.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Fri, 4 Jan 2019 21:33:34 +0000 (13:33 -0800)]
Merge branch 'mk/http-backend-kill-children-before-exit'
The http-backend CGI process did not correctly clean up the child
processes it spawns to run upload-pack etc. when it dies itself,
which has been corrected.
* mk/http-backend-kill-children-before-exit:
http-backend: enable cleaning up forked upload/receive-pack on exit
Junio C Hamano [Fri, 4 Jan 2019 21:33:34 +0000 (13:33 -0800)]
Merge branch 'sd/stash-wo-user-name'
A properly configured username/email is required under
user.useConfigOnly in order to create commits; now "git stash"
(even though it creates commit objects to represent stash entries)
command is exempt from the requirement.
* sd/stash-wo-user-name:
stash: tolerate missing user identity
Junio C Hamano [Fri, 4 Jan 2019 21:33:34 +0000 (13:33 -0800)]
Merge branch 'sg/clone-initial-fetch-configuration'
Refspecs configured with "git -c var=val clone" did not propagate
to the resulting repository, which has been corrected.
* sg/clone-initial-fetch-configuration:
Documentation/clone: document ignored configuration variables
clone: respect additional configured fetch refspecs during initial fetch
clone: use a more appropriate variable name for the default refspec
Junio C Hamano [Fri, 4 Jan 2019 21:33:34 +0000 (13:33 -0800)]
Merge branch 'nd/checkout-dwim-fix'
"git checkout frotz" (without any double-dash) avoids ambiguity by
making sure 'frotz' cannot be interpreted as a revision and as a
path at the same time. This safety has been updated to check also
a unique remote-tracking branch 'frotz' in a remote, when dwimming
to create a local branch 'frotz' out of a remote-tracking branch
'frotz' from a remote.
* nd/checkout-dwim-fix:
checkout: disambiguate dwim tracking branches and local files
Junio C Hamano [Fri, 4 Jan 2019 21:33:33 +0000 (13:33 -0800)]
Merge branch 'ab/push-dwim-dst'
"git push $there $src:$dst" rejects when $dst is not a fully
qualified refname and not clear what the end user meant. The
codepath has been taught to give a clearer error message, and also
guess where the push should go by taking the type of the pushed
object into account (e.g. a tag object would want to go under
refs/tags/).
* ab/push-dwim-dst:
push doc: document the DWYM behavior pushing to unqualified <dst>
push: test that <src> doesn't DWYM if <dst> is unqualified
push: add an advice on unqualified <dst> push
push: move unqualified refname error into a function
push: improve the error shown on unqualified <dst> push
i18n: remote.c: mark error(...) messages for translation
remote.c: add braces in anticipation of a follow-up change
Junio C Hamano [Fri, 4 Jan 2019 21:33:33 +0000 (13:33 -0800)]
Merge branch 'en/fast-export-import'
Small fixes and features for fast-export and fast-import, mostly on
the fast-export side.
* en/fast-export-import:
fast-export: add a --show-original-ids option to show original names
fast-import: remove unmaintained duplicate documentation
fast-export: add --reference-excluded-parents option
fast-export: ensure we export requested refs
fast-export: when using paths, avoid corrupt stream with non-existent mark
fast-export: move commit rewriting logic into a function for reuse
fast-export: avoid dying when filtering by paths and old tags exist
fast-export: use value from correct enum
git-fast-export.txt: clarify misleading documentation about rev-list args
git-fast-import.txt: fix documentation for --quiet option
fast-export: convert sha1 to oid
Junio C Hamano [Fri, 4 Jan 2019 21:33:33 +0000 (13:33 -0800)]
Merge branch 'nd/the-index'
More codepaths become aware of working with in-core repository
instance other than the default "the_repository".
* nd/the-index: (22 commits)
rebase-interactive.c: remove the_repository references
rerere.c: remove the_repository references
pack-*.c: remove the_repository references
pack-check.c: remove the_repository references
notes-cache.c: remove the_repository references
line-log.c: remove the_repository reference
diff-lib.c: remove the_repository references
delta-islands.c: remove the_repository references
cache-tree.c: remove the_repository references
bundle.c: remove the_repository references
branch.c: remove the_repository reference
bisect.c: remove the_repository reference
blame.c: remove implicit dependency the_repository
sequencer.c: remove implicit dependency on the_repository
sequencer.c: remove implicit dependency on the_index
transport.c: remove implicit dependency on the_index
notes-merge.c: remove implicit dependency the_repository
notes-merge.c: remove implicit dependency on the_index
list-objects.c: reduce the_repository references
list-objects-filter.c: remove implicit dependency on the_index
...
Junio C Hamano [Fri, 4 Jan 2019 21:33:32 +0000 (13:33 -0800)]
Merge branch 'jk/loose-object-cache'
Code clean-up with optimization for the codepath that checks
(non-)existence of loose objects.
* jk/loose-object-cache:
odb_load_loose_cache: fix strbuf leak
fetch-pack: drop custom loose object cache
sha1-file: use loose object cache for quick existence check
object-store: provide helpers for loose_objects_cache
sha1-file: use an object_directory for the main object dir
handle alternates paths the same as the main object dir
sha1_file_name(): overwrite buffer instead of appending
rename "alternate_object_database" to "object_directory"
submodule--helper: prefer strip_suffix() to ends_with()
fsck: do not reuse child_process structs
Junio C Hamano [Fri, 4 Jan 2019 21:33:32 +0000 (13:33 -0800)]
Merge branch 'fc/http-version'
The "http.version" configuration variable can be used with recent
enough cURL library to force the version of HTTP used to talk when
fetching and pushing.
* fc/http-version:
http: add support selecting http version
Junio C Hamano [Fri, 4 Jan 2019 21:33:32 +0000 (13:33 -0800)]
Merge branch 'en/merge-path-collision'
Updates for corner cases in merge-recursive.
* en/merge-path-collision:
t6036: avoid non-portable "cp -a"
merge-recursive: combine error handling
t6036, t6043: increase code coverage for file collision handling
merge-recursive: improve rename/rename(1to2)/add[/add] handling
merge-recursive: use handle_file_collision for add/add conflicts
merge-recursive: improve handling for rename/rename(2to1) conflicts
merge-recursive: fix rename/add conflict handling
merge-recursive: new function for better colliding conflict resolutions
merge-recursive: increase marker length with depth of recursion
t6036, t6042: testcases for rename collision of already conflicting files
t6042: add tests for consistency in file collision conflict handling
Junio C Hamano [Fri, 4 Jan 2019 21:33:31 +0000 (13:33 -0800)]
Merge branch 'nd/i18n'
More _("i18n") markings.
* nd/i18n:
fsck: mark strings for translation
fsck: reduce word legos to help i18n
parse-options.c: mark more strings for translation
parse-options.c: turn some die() to BUG()
parse-options: replace opterror() with optname()
repack: mark more strings for translation
remote.c: mark messages for translation
remote.c: turn some error() or die() to BUG()
reflog: mark strings for translation
read-cache.c: add missing colon separators
read-cache.c: mark more strings for translation
read-cache.c: turn die("internal error") to BUG()
attr.c: mark more string for translation
archive.c: mark more strings for translation
alias.c: mark split_cmdline_strerror() strings for translation
git.c: mark more strings for translation
Torsten Bögershausen [Sat, 15 Dec 2018 04:33:30 +0000 (05:33 +0100)]
git clone <url> C:\cygwin\home\USER\repo' is working (again)
A regression for cygwin users was introduced with commit
05b458c,
"real_path: resolve symlinks by hand".
In the the commit message we read:
The current implementation of real_path uses chdir() in order to resolve
symlinks. Unfortunately this isn't thread-safe as chdir() affects a
process as a whole...
The old (and non-thread-save) OS calls chdir()/pwd() had been
replaced by a string operation.
The cygwin layer "knows" that "C:\cygwin" is an absolute path,
but the new string operation does not.
"git clone <url> C:\cygwin\home\USER\repo" fails like this:
fatal: Invalid path '/home/USER/repo/C:\cygwin\home\USER\repo'
The solution is to implement has_dos_drive_prefix(), skip_dos_drive_prefix()
is_dir_sep(), offset_1st_component() and convert_slashes() for cygwin
in the same way as it is done in 'Git for Windows' in compat/mingw.[ch]
Extract the needed code into compat/win32/path-utils.[ch] and use it
for cygwin as well.
Reported-by: Steven Penny <svnpenn@gmail.com>
Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Thomas Braun [Fri, 14 Dec 2018 18:49:12 +0000 (19:49 +0100)]
log -G: ignore binary files
The -G<regex> option of log looks for the differences whose patch text
contains added/removed lines that match regex.
Currently -G looks also into patches of binary files (which
according to [1]) is binary as well.
This has a couple of issues:
- It makes the pickaxe search slow. In a proprietary repository of the
author with only ~5500 commits and a total .git size of ~300MB
searching takes ~13 seconds
$time git log -Gwave > /dev/null
real 0m13,241s
user 0m12,596s
sys 0m0,644s
whereas when we ignore binary files with this patch it takes ~4s
$time ~/devel/git/git log -Gwave > /dev/null
real 0m3,713s
user 0m3,608s
sys 0m0,105s
which is a speedup of more than fourfold.
- The internally used algorithm for generating patch text is based on
xdiff and its states in [1]
> The output format of the binary patch file is proprietary
> (and binary) and it is basically a collection of copy and insert
> commands [..]
which means that the current format could change once the internal
algorithm is changed as the format is not standardized. In addition
the git binary patch format used for preparing patches for git apply
is *different* from the xdiff format as can be seen by comparing
git log -p -a
commit
6e95bf4bafccf14650d02ab57f3affe669be10cf
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
modify binary file
diff --git a/data.bin b/data.bin
index
f414c84..
edfeb6f 100644
--- a/data.bin
+++ b/data.bin
@@ -1,2 +1,4 @@
a
a^@a
+a
+a^@a
with git log --binary
commit
6e95bf4bafccf14650d02ab57f3affe669be10cf
Author: A U Thor <author@example.com>
Date: Thu Apr 7 15:14:13 2005 -0700
modify binary file
diff --git a/data.bin b/data.bin
index
f414c84bd3aa25fa07836bb1fb73db784635e24b..
edfeb6f501[..]
GIT binary patch
literal 12
QcmYe~N@Pgn0zx1O01)N^ZvX%Q
literal 6
NcmYe~N@Pgn0ssWg0XP5v
which seems unexpected.
To resolve these issues this patch makes -G<regex> ignore binary files
by default. Textconv filters are supported and also -a/--text for
getting the old and broken behaviour back.
The -S<block of text> option of log looks for differences that changes
the number of occurrences of the specified block of text (i.e.
addition/deletion) in a file. As we want to keep the current behaviour,
add a test to ensure it stays that way.
[1]: http://www.xmailserver.org/xdiff.html
Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 15 Dec 2018 04:00:25 +0000 (13:00 +0900)]
Sync with Git 2.20.1
* maint:
Git 2.20.1
.gitattributes: ensure t/oid-info/* has eol=lf
t9902: 'send-email' test case requires PERL
t4256: mark support files as LF-only
parse-options: fix SunCC compiler warning
help -a: handle aliases with long names gracefully
help.h: fix coding style
run-command: report exec failure
Junio C Hamano [Sat, 15 Dec 2018 03:36:06 +0000 (12:36 +0900)]
Prepare for 2.21 cycle to start soonish
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 15 Dec 2018 03:31:34 +0000 (12:31 +0900)]
Git 2.20.1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 15 Dec 2018 03:24:34 +0000 (12:24 +0900)]
Merge branch 'jc/run-command-report-exec-failure-fix' into maint
A recent update accidentally squelched an error message when the
run_command API failed to run a missing command, which has been
corrected.
* jc/run-command-report-exec-failure-fix:
run-command: report exec failure
Junio C Hamano [Sat, 15 Dec 2018 03:24:33 +0000 (12:24 +0900)]
Merge branch 'js/help-commands-verbose-by-default-fix' into maint
"git help -a" did not work well when an overly long alias is
defined, which has been corrected.
* js/help-commands-verbose-by-default-fix:
help -a: handle aliases with long names gracefully
help.h: fix coding style
Junio C Hamano [Sat, 15 Dec 2018 03:24:33 +0000 (12:24 +0900)]
Merge branch 'nd/show-gitcomp-compilation-fix' into maint
Portability fix for a recent update to parse-options API.
* nd/show-gitcomp-compilation-fix:
parse-options: fix SunCC compiler warning
Junio C Hamano [Sat, 15 Dec 2018 03:24:32 +0000 (12:24 +0900)]
Merge branch 'js/t9902-send-email-completion-fix' into maint
* js/t9902-send-email-completion-fix:
t9902: 'send-email' test case requires PERL
Junio C Hamano [Sat, 15 Dec 2018 03:24:32 +0000 (12:24 +0900)]
Merge branch 'js/mailinfo-format-flowed-fix' into maint
Test portability fix.
* js/mailinfo-format-flowed-fix:
t4256: mark support files as LF-only
Junio C Hamano [Sat, 15 Dec 2018 03:24:32 +0000 (12:24 +0900)]
Merge branch 'ds/hash-independent-tests-fix' into maint
Test portability fix.
* ds/hash-independent-tests-fix:
.gitattributes: ensure t/oid-info/* has eol=lf
Derrick Stolee [Tue, 11 Dec 2018 20:35:46 +0000 (12:35 -0800)]
.gitattributes: ensure t/oid-info/* has eol=lf
The new test_oid machinery in the test library requires reading
some information from t/oid-info/hash-info and t/oid-info/oid.
The logic to read from these files in shell uses built-in "read"
command, which leaves CR at the end of these text files when they
are checked out with CRLF line endings, at least when run with bash
shipped with Git for Windows. This results in an unexpected value
in the variable these lines are read into, leading the tests to
fail.
Mark them to be checked out always with the LF line endings.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Thu, 13 Dec 2018 14:04:19 +0000 (06:04 -0800)]
t9902: 'send-email' test case requires PERL
The oneline notwithstanding,
13374987dd (completion: use _gitcompbuiltin
for format-patch, 2018-11-03) changed also the way send-email options
are completed, by asking the git send-email command itself what options
it offers.
Necessarily, this must fail when built with NO_PERL because send-email
itself is a Perl script. Which means that we need the PERL prerequisite
for the send-email test case in t9902.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Wed, 12 Dec 2018 18:14:54 +0000 (10:14 -0800)]
t4256: mark support files as LF-only
The test t4256-am-format-flowed.sh requires carefully applying a
patch after ignoring padding whitespace. This breaks if the file
is munged to include CRLF line endings instead of LF.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy [Tue, 11 Dec 2018 15:35:01 +0000 (16:35 +0100)]
parse-options: fix SunCC compiler warning
The compiler reports this because show_gitcomp() never actually
returns a value:
"parse-options.c", line 520: warning: Function has no return
statement : show_gitcomp
We could shut the compiler up. But instead let's not bury exit() too
deep. Do the same as internal -h handling, return a special error code
and handle the exit() in parse_options() (and other
parse_options_step() callers) instead.
Reported-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Tue, 11 Dec 2018 14:58:11 +0000 (06:58 -0800)]
help -a: handle aliases with long names gracefully
We take pains to determine the longest command beforehand, so that we
can align the category column after printing the command names.
However, then we re-use that value when printing the aliases. If any
alias name is longer than the longest command name, we consequently try
to add a negative number of spaces (but `mput_char()` does not expect
any negative values and simply decrements until the value is 0, i.e.
it tries to add close to 2**31 spaces).
Let's fix this by adjusting the `longest` variable before printing the
aliases.
This fixes https://github.com/git-for-windows/git/issues/1975.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin [Tue, 11 Dec 2018 14:58:10 +0000 (06:58 -0800)]
help.h: fix coding style
We want a space after the `while` keyword.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 11 Dec 2018 05:46:07 +0000 (14:46 +0900)]
run-command: report exec failure
In
321fd823 ("run-command: mark path lookup errors with ENOENT",
2018-10-24), we rewrote the logic to execute a command by looking
in the directories on $PATH; as a side effect, a request to run a
command that is not found on $PATH is noticed even before a child
process is forked to execute it.
We however stopped to report an exec failure in such a case by
mistake. Add a logic to report the error unless silent-exec-failure
is requested, to match the original code.
Reported-by: John Passaro <john.a.passaro@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Kyle Meyer [Sat, 8 Dec 2018 23:15:41 +0000 (18:15 -0500)]
rebase docs: drop stray word in merge command description
Delete a misplaced word introduced by
caafecfcf1 (rebase
--rebase-merges: adjust man page for octopus support, 2018-03-09).
Signed-off-by: Kyle Meyer <kyle@kyleam.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 9 Dec 2018 04:16:21 +0000 (13:16 +0900)]
Git 2.20
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sun, 9 Dec 2018 04:11:36 +0000 (13:11 +0900)]
Merge tag 'l10n-2.20.0-rnd3' of https://github.com/git-l10n/git-po
l10n-2.20.0-rnd3
* tag 'l10n-2.20.0-rnd3' of https://github.com/git-l10n/git-po: (22 commits)
l10n: de.po: fix two messages
l10n: zh_CN: for git v2.20.0 l10n round 1 to 3
l10n: update German translation
l10n: bg.po: Updated Bulgarian translation (4187t)
l10n: sv.po: Update Swedish translation (4187t0f0u)
l10n: fr.po v2.20.0 round 3
l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3
l10n: es.po v2.20.0 round 3
l10n: git.pot: v2.20.0 round 3 (5 new, 3 removed)
l10n: vi(4185t): Updated Vietnamese translation for v2.20.0
l10n: es.po v2.20.0 round 1
l10n: bg.po: Updated Bulgarian translation (4185t)
l10n: git.pot: v2.20.0 round 2 (2 new, 2 removed)
l10n: bg.po: Updated Bulgarian translation (4185t)
l10n: sv.po: Update Swedish translation (4185t0f0u)
l10n: fr.po v2.20 rnd 1
l10n: Update Catalan translation
l10n: git.pot: v2.20.0 round 1 (254 new, 27 removed)
l10n: Update Catalan translation
l10n: vi.po: fix typo in pack-objects
...
Nguyễn Thái Ngọc Duy [Thu, 6 Dec 2018 15:42:06 +0000 (16:42 +0100)]
Indent code with TABs
We indent with TABs and sometimes for fine alignment, TABs followed by
spaces, but never all spaces (unless the indentation is less than 8
columns). Indenting with spaces slips through in some places. Fix
them.
Imported code and compat/ are left alone on purpose. The former should
remain as close as upstream as possible. The latter pretty much has
separate maintainers, it's up to them to decide.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Denis Ovsienko [Thu, 6 Dec 2018 13:10:24 +0000 (13:10 +0000)]
docs: fix $strict_export text in gitweb.conf.txt
The section discusses $gitweb_export_ok and $gitweb_list, but gitweb
Perl code does not have such variables (this likely hangs over from
GITWEB_EXPORT_OK and GITWEB_LIST respectively). Fix the section to
spell $export_ok and $projects_list like the rest of the document.
Signed-off-by: Denis Ovsienko <denis@ovsienko.info>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Frank Dana [Sat, 8 Dec 2018 00:26:09 +0000 (00:26 +0000)]
docs/gitweb.conf: config variable typo
The documentation for the feature 'snapshot' claimed
"This feature can be configured on a per-repository basis via
repository's `gitweb.blame` configuration variable"
Fixed to specify `gitweb.snapshot` as the variable name.
Signed-off-by: Frank Dana <ferdnyc@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Brandon Williams [Fri, 7 Dec 2018 20:56:21 +0000 (12:56 -0800)]
mailmap: update brandon williams's email address
Signed-off-by: Brandon Williams <bwilliams.eng@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Elijah Newren [Fri, 7 Dec 2018 17:51:20 +0000 (18:51 +0100)]
git-rebase.txt: update note about directory rename detection and am
In commit
6aba117d5cf7 ("am: avoid directory rename detection when
calling recursive merge machinery", 2018-08-29), the git-rebase manpage
probably should have also been updated to note the stronger
incompatibility between git-am and directory rename detection. Update
it now.
Signed-off-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ralf Thielow [Fri, 7 Dec 2018 18:43:07 +0000 (19:43 +0100)]
l10n: de.po: fix two messages
Reported-by: Phillip Szelat <phillip.szelat@gmail.com>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Jiang Xin [Tue, 20 Nov 2018 02:18:06 +0000 (10:18 +0800)]
l10n: zh_CN: for git v2.20.0 l10n round 1 to 3
Translate 257 new messages (4187t0f0u) for git 2.20.0.
Reviewed-by: Zhou Fangyi <fangyi.zhou@yuriko.moe>
Reviewed-by: 依云 <lilydjwg@gmail.com>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Ralf Thielow [Thu, 6 Dec 2018 06:44:41 +0000 (07:44 +0100)]
l10n: update German translation
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Matthew DeVore [Mon, 3 Dec 2018 22:10:19 +0000 (14:10 -0800)]
revision.c: put promisor option in specialized struct
Put the allow_exclude_promisor_objects flag in setup_revision_opt. When
it was in rev_info, it was unclear when it was used, since rev_info is
passed to functions that don't use the flag. This resulted in
unnecessary setting of the flag in prune.c, so fix that as well.
Signed-off-by: Matthew DeVore <matvore@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Matthew DeVore [Wed, 5 Dec 2018 21:43:46 +0000 (13:43 -0800)]
list-objects.c: don't segfault for missing cmdline objects
When a command is invoked with both --exclude-promisor-objects,
--objects-edge-aggressive, and a missing object on the command line,
the rev_info.cmdline array could get a NULL pointer for the value of
an 'item' field. Prevent dereferencing of a NULL pointer in that
situation.
Properly handle --ignore-missing. If it is not passed, die when an
object is missing. Otherwise, just silently ignore it.
Signed-off-by: Matthew DeVore <matvore@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Tue, 4 Dec 2018 03:49:50 +0000 (12:49 +0900)]
Merge branch 'es/format-patch-range-diff-fix-fix'
* es/format-patch-range-diff-fix-fix:
range-diff: always pass at least minimal diff options
Junio C Hamano [Tue, 4 Dec 2018 03:49:39 +0000 (12:49 +0900)]
Merge branch 'en/rebase-consistency'
* en/rebase-consistency:
rebase docs: fix incorrect format of the section Behavioral Differences
Stefan Beller [Mon, 3 Dec 2018 22:37:13 +0000 (14:37 -0800)]
sideband: color lines with keyword only
When
bf1a11f0a1 (sideband: highlight keywords in remote sideband output,
2018-08-07) was introduced, it was carefully considered which strings
would be highlighted. However
59a255aef0 (sideband: do not read beyond
the end of input, 2018-08-18) brought in a regression that the original
did not test for. A line containing only the keyword and nothing else
("SUCCESS") should still be colored.
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Sixt [Mon, 3 Dec 2018 17:34:49 +0000 (18:34 +0100)]
rebase docs: fix incorrect format of the section Behavioral Differences
The text body of section Behavioral Differences is typeset as code,
but should be regular text. Remove the indentation to achieve that.
While here, prettify the language:
- use "the x backend" instead of "x-based rebase";
- use present tense instead of future tense;
and use subsections instead of a list.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Ågren [Mon, 3 Dec 2018 20:21:51 +0000 (21:21 +0100)]
RelNotes 2.20: drop spurious double quote
We have three double-quote characters, which is one too many or too few.
Dropping the last one seems to match the original intention best.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Ågren [Mon, 3 Dec 2018 20:21:50 +0000 (21:21 +0100)]
RelNotes 2.20: clarify sentence
I had to read this sentence a few times to understand it. Let's try to
clarify it.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Ågren [Mon, 3 Dec 2018 20:21:49 +0000 (21:21 +0100)]
RelNotes 2.20: move some items between sections
Some items that should be in "Performance, Internal Implementation,
Development Support etc." have ended up in "UI, Workflows & Features"
and "Fixes since v2.19". Move them, and do s/uses/use/ while at it.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Martin Ågren [Mon, 3 Dec 2018 21:21:31 +0000 (16:21 -0500)]
range-diff: always pass at least minimal diff options
Commit
d8981c3f88 ("format-patch: do not let its diff-options affect
--range-diff", 2018-11-30) taught `show_range_diff()` to accept a
NULL-pointer as an indication that it should use its own "reasonable
default". That fixed a regression from
a5170794 ("Merge branch
'ab/range-diff-no-patch'", 2018-11-18), but unfortunately it introduced
a regression of its own.
In particular, it means we forget the `file` member of the diff options,
so rather than placing a range-diff in the cover-letter, we write it to
stdout. In order to fix this, rewrite the two callers adjusted by
d8981c3f88 to instead create a "dummy" set of diff options where they
only fill in the fields we absolutely require, such as output file and
color.
Modify and extend the existing tests to try and verify that the right
contents end up in the right place.
Don't revert `show_range_diff()`, i.e., let it keep accepting NULL.
Rather than removing what is dead code and figuring out it isn't
actually dead and we've broken 2.20, just leave it for now.
[es: retain diff coloring when going to stdout]
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jiang Xin [Mon, 3 Dec 2018 04:49:45 +0000 (12:49 +0800)]
Merge branch 'master' of git://github.com/alshopov/git-po
Carlo Marcelo Arenas Belón [Sun, 2 Dec 2018 02:43:20 +0000 (18:43 -0800)]
config.mak.uname: OpenBSD uses BSD semantics with fread for directories
this "fixes" test 23 (proper error on directory "files") from t1308
MirBSD likely also affected but this was only tested with OpenBSD and
therefore this specific change only affects that platform
the optional 'configure' sets this automatically (tested with 6.1 to 6.4)
but considering this is a legacy feature it is likely that it affected
all old versions and is probably what most users had been using as a
workaround
Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Carlo Marcelo Arenas Belón [Sun, 2 Dec 2018 02:40:03 +0000 (18:40 -0800)]
t5004: avoid using tar for empty packages
ea2d20d4c2 ("t5004: avoid using tar for checking emptiness of archive",
2013-05-09), introduced a fake empty tar archive to allow for portable
tests of emptiness without having to invoke tar
4318094047 ("archive: don't add empty directories to archives", 2017-09-13)
changed the expected result for its tests from one containing an empty
directory to a plain empty archive but the portable test wasn't updated
resulting on them failing again in (at least) NetBSD and OpenBSD
Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Mon, 3 Dec 2018 01:05:07 +0000 (10:05 +0900)]
t0061: do not fail test if '.' is part of $PATH
t0061 creates a script with an unlikely name in the current
directory and asks the run_command() API to run it without an
explicit path, expecting that the script does *not* get run. This
obviously would not work if the $PATH does contain such an element.
Check if the running shell picks up the script without an explicit
path to it, and skip the test when it does, as the run_command() API
should also run the script in such an (insane) environment.
Reported-by: "H.Merijn Brand" <h.m.brand@xs4all.nl>
Helped-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Carlo Marcelo Arenas Belón [Sat, 1 Dec 2018 17:36:45 +0000 (09:36 -0800)]
tests: add lint for non portable cp -a
cp -a, while a common flag isn't in POSIX and will therefore fail
on systems that don't have GNUish tools (like OpenBSD, AIX or Solaris)
Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Alexander Shopov [Sun, 2 Dec 2018 12:42:29 +0000 (13:42 +0100)]
l10n: bg.po: Updated Bulgarian translation (4187t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
Peter Krefting [Sun, 2 Dec 2018 14:43:34 +0000 (15:43 +0100)]
l10n: sv.po: Update Swedish translation (4187t0f0u)
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Jiang Xin [Sun, 2 Dec 2018 14:36:36 +0000 (22:36 +0800)]
Merge branch 'fr_2.20_round3' of git://github.com/jnavila/git
Jean-Noël Avila [Sun, 2 Dec 2018 10:03:23 +0000 (11:03 +0100)]
l10n: fr.po v2.20.0 round 3
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
Jiang Xin [Sun, 2 Dec 2018 09:57:24 +0000 (17:57 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git
Tran Ngoc Quan [Sun, 2 Dec 2018 07:15:00 +0000 (14:15 +0700)]
l10n: vi(4187t): Updated Vietnamese translation for v2.20.0 rd3
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
Christopher Diaz Riveros [Sun, 2 Dec 2018 04:12:59 +0000 (23:12 -0500)]
l10n: es.po v2.20.0 round 3
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
Jiang Xin [Sun, 2 Dec 2018 02:56:26 +0000 (10:56 +0800)]
l10n: git.pot: v2.20.0 round 3 (5 new, 3 removed)
Generate po/git.pot from v2.20.0-rc2 for git v2.20.0 l10n round 3.
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Jiang Xin [Sun, 2 Dec 2018 02:55:14 +0000 (10:55 +0800)]
Merge branch 'master' of git://github.com/git-l10n/git-po
Jiang Xin [Sun, 2 Dec 2018 02:25:09 +0000 (10:25 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git
Tran Ngoc Quan [Sun, 2 Dec 2018 01:56:42 +0000 (08:56 +0700)]
l10n: vi(4185t): Updated Vietnamese translation for v2.20.0
Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
Christopher Diaz Riveros [Sat, 1 Dec 2018 18:41:27 +0000 (13:41 -0500)]
l10n: es.po v2.20.0 round 1
Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
Junio C Hamano [Sat, 1 Dec 2018 12:44:56 +0000 (21:44 +0900)]
Git 2.20-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano [Sat, 1 Dec 2018 12:41:45 +0000 (21:41 +0900)]
Merge branch 'gh/diff-raw-has-no-ellipses'
"git diff --raw" lost ellipses to adjust the output columns for
some time now, but the documentation still showed them.
* gh/diff-raw-has-no-ellipses:
doc: update diff-format.txt for removed ellipses in --raw
Junio C Hamano [Sat, 1 Dec 2018 12:41:45 +0000 (21:41 +0900)]
Merge branch 'ss/msvc-strcasecmp'
MSVC update.
* ss/msvc-strcasecmp:
msvc: directly use MS version (_stricmp) of strcasecmp
Junio C Hamano [Sat, 1 Dec 2018 12:41:44 +0000 (21:41 +0900)]
Merge branch 'sg/test-BUG'
test framework has been updated to make a bug in the test script
(as opposed to bugs in Git that are discovered by running the
tests) stand out more prominently.
* sg/test-BUG:
tests: send "bug in the test script" errors to the script's stderr
Junio C Hamano [Sat, 1 Dec 2018 12:41:44 +0000 (21:41 +0900)]
Merge branch 'sg/test-cmp-rev'
Test framework update.
* sg/test-cmp-rev:
test-lib-functions: make 'test_cmp_rev' more informative on failure
Junio C Hamano [Sat, 1 Dec 2018 12:41:44 +0000 (21:41 +0900)]
Merge branch 'ab/push-example-in-doc'
An error message that sugggests how to give correct arguments to
"git push" has been updated.
* ab/push-example-in-doc:
push: change needlessly ambiguous example in error
Junio C Hamano [Sat, 1 Dec 2018 12:41:44 +0000 (21:41 +0900)]
Merge branch 'rt/rebase-in-c-message-fix'
* rt/rebase-in-c-message-fix:
builtin/rebase.c: remove superfluous space in messages
Junio C Hamano [Sat, 1 Dec 2018 12:41:43 +0000 (21:41 +0900)]
Merge branch 'sg/daemon-test-signal-fix'
Test fix.
* sg/daemon-test-signal-fix:
t/lib-git-daemon: fix signal checking
Junio C Hamano [Sat, 1 Dec 2018 12:41:43 +0000 (21:41 +0900)]
Merge branch 'ma/reset-doc-rendering-fix'
Doc updates.
* ma/reset-doc-rendering-fix:
git-reset.txt: render literal examples as monospace
git-reset.txt: render tables correctly under Asciidoctor
Junio C Hamano [Sat, 1 Dec 2018 12:41:42 +0000 (21:41 +0900)]
Merge branch 'ab/replace-graft-with-replace-advice'
The advice message to tell the user to migrate an existing graft
file to the replace system when a graft file was read was shown
even when "git replace --convert-graft-file" command, which is the
way the message suggests to use, was running, which made little
sense.
* ab/replace-graft-with-replace-advice:
advice: don't pointlessly suggest --convert-graft-file