summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-05-30Merge branch 'jt/clone-server-option'Libravatar Junio C Hamano1-1/+1
A brown-paper-bag bugfix to a change already in 'master'. * jt/clone-server-option: fetch-pack: send server options after command
2019-05-30Merge branch 'sg/progress-off-by-one-fix'Libravatar Junio C Hamano1-1/+1
A brown-paper-bag bugfix to a change already in 'master'. * sg/progress-off-by-one-fix: progress: avoid empty line when breaking the progress line
2019-05-30Merge branch 'js/rebase-deprecate-preserve-merges'Libravatar Junio C Hamano4-11/+19
A bit more leftover clean-up to deprepcate "rebase -p". * js/rebase-deprecate-preserve-merges: rebase docs: recommend `-r` over `-p` docs: say that `--rebase=preserve` is deprecated tests: mark a couple more test cases as requiring `rebase -p`
2019-05-30Merge branch 'sg/trace2-rename'Libravatar Junio C Hamano13-91/+118
Rename environment variables that are used to control the "trace2" mechanism to a more readable name. * sg/trace2-rename: trace2: document the supported values of GIT_TRACE2* env variables trace2: rename environment variables to GIT_TRACE2*
2019-05-30Merge branch 'jh/trace2'Libravatar Junio C Hamano1-3/+9
* jh/trace2: trace2: fix tracing when NO_PTHREADS is defined
2019-05-30Merge branch 'nd/diff-parseopt'Libravatar Junio C Hamano8-5/+107
A brown-paper-bag bugfix to a change already in 'master'. * nd/diff-parseopt: parse-options: check empty value in OPT_INTEGER and OPT_ABBREV diff-parseopt: restore -U (no argument) behavior diff-parseopt: correct variable types that are used by parseopt
2019-05-29parse-options: check empty value in OPT_INTEGER and OPT_ABBREVLibravatar Nguyễn Thái Ngọc Duy2-0/+6
When parsing the argument for OPT_INTEGER and OPT_ABBREV, we check if we can parse the entire argument to a number with "if (*s)". There is one missing check: if "arg" is empty to begin with, we fail to notice. This could happen with long option by writing like git diff --inter-hunk-context= blah blah Before 16ed6c97cc (diff-parseopt: convert --inter-hunk-context, 2019-03-24), --inter-hunk-context is handled by a custom parser opt_arg() and does detect this correctly. This restores the bahvior for --inter-hunk-context and make sure all other integer options are handled the same (sane) way. For OPT_ABBREV this is new behavior. But it makes it consistent with the rest. PS. OPT_MAGNITUDE has similar code but git_parse_ulong() does detect empty "arg". So it's good to go. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-29diff-parseopt: restore -U (no argument) behaviorLibravatar Nguyễn Thái Ngọc Duy5-4/+100
Before d473e2e0e8 (diff.c: convert -U|--unified, 2019-01-27), -U and --unified are implemented with a custom parser opt_arg() in diff.c. I didn't check this code carefully and not realize that it's the equivalent of PARSE_OPT_NONEG | PARSE_OPT_OPTARG. In other words, if -U is specified without any argument, the option should be accepted, and the default value should be used. Without PARSE_OPT_OPTARG, parse_options() will reject this case and cause a regression. Reported-by: Bryan Turner <bturner@atlassian.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-29diff-parseopt: correct variable types that are used by parseoptLibravatar Nguyễn Thái Ngọc Duy1-1/+1
Most number-related OPT_ macros store the value in an 'int' variable. Many of the variables in 'struct diff_options' have a different type, but during the conversion to using parse_options() I failed to notice and correct. The problem was reported on s360x which is a big-endian architechture. The variable to store '-w' option in this case is xdl_opts, 'long' type, 8 bytes. But since parse_options() assumes 'int' (4 bytes), it will store bits in the wrong part of xdl_opts. The problem was found on little-endian platforms because parse_options() will accidentally store at the right part of xdl_opts. There aren't much to say about the type change (except that 'int' for xdl_opts should still be big enough, since Windows' long is the same size as 'int' and nobody has complained so far). Some safety checks may be implemented in the future to prevent class of bugs. Reported-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-28rebase docs: recommend `-r` over `-p`Libravatar Johannes Schindelin1-2/+3
The `--preserve-merges` option is now deprecated in favor of `--rebase-merges`; Let's stop recommending the former. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-28docs: say that `--rebase=preserve` is deprecatedLibravatar Johannes Schindelin1-2/+3
As of Git v2.22.0, the `--preserve-merges` backend of `git rebase` will be officially deprecated in favor of the `--rebase-merges` backend. Consequently, `git pull --rebase=preserve` will also be deprected. State this explicitly. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-28tests: mark a couple more test cases as requiring `rebase -p`Libravatar Johannes Schindelin2-7/+13
The `--preserve-merges` option has been deprecated, and as a consequence we started to mark test cases that require that option to be supported, in preparation for removing that support eventually. Since we marked those test cases, a couple more crept into the test suite, and with this patch, we mark them, too. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-28fetch-pack: send server options after commandLibravatar Jonathan Tan1-1/+1
Currently, if any server options are specified during a protocol v2 fetch, server options will be sent before "command=fetch". Write server options to the request buffer in send_fetch_request() so that the components of the request are sent in the correct order. The protocol documentation states that the command must come first. The Git server implementation in serve.c (see process_request() in that file) tolerates any order of command and capability, which is perhaps why we haven't noticed this. This was noticed when testing against a JGit server implementation, which follows the documentation in this regard. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Acked-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-28trace2: fix tracing when NO_PTHREADS is definedLibravatar Jeff Hostetler1-3/+9
Teach trace2 TLS code to not rely on pthread_getspecific() when NO_PTHREADS is defined. Instead, always assume the context data of the main thread. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-28progress: avoid empty line when breaking the progress lineLibravatar SZEDER Gábor1-1/+1
Since commit 545dc345eb (progress: break too long progress bar lines, 2019-04-12) when splitting a too long progress line, sometimes it looks as if a superfluous empty line were added between the title line and the counters. To make sure that the previously displayed progress line is completely covered up when writing the new, shorter title line, we calculate how many characters need to be overwritten with spaces. Alas, this calculation doesn't account for the newline character at the end of the new title line, and resulted in printing one more space than strictly necessary. This extra space character doesn't matter, if the length of the previous progress line was shorter than the width of the terminal. However, if the previous line matched the terminal width, then this extra space made the new line longer, effectively adding that empty line after the title line. Fix this off-by-one to avoid that spurious empty line. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-28trace2: document the supported values of GIT_TRACE2* env variablesLibravatar SZEDER Gábor1-8/+35
The descriptions of the GIT_TRACE2* environment variables link to the technical docs for further details on the supported values. However, a link like this only really works if the docs are viewed in a browser and the full documentation is available. OTOH, in 'man git' there are no links to conveniently click on, and distro-shipped git packages tend to include only the man pages, while the technical docs and the docs in html format are in a separate 'git-doc' package. So let's describe the supported values to make the manpage more self-contained, but still keep the references to the technical docs because the details of the SID, and the JSON and perf output formats are definitely beyond the scope of 'man git'. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-28trace2: rename environment variables to GIT_TRACE2*Libravatar SZEDER Gábor13-85/+85
For an environment variable that is supposed to be set by users, the GIT_TR2* env vars are just too unclear, inconsistent, and ugly. Most of the established GIT_* environment variables don't use abbreviations, and in case of the few that do (GIT_DIR, GIT_COMMON_DIR, GIT_DIFF_OPTS) it's quite obvious what the abbreviations (DIR and OPTS) stand for. But what does TR stand for? Track, traditional, trailer, transaction, transfer, transformation, transition, translation, transplant, transport, traversal, tree, trigger, truncate, trust, or ...?! The trace2 facility, as the '2' suffix in its name suggests, is supposed to eventually supercede Git's original trace facility. It's reasonable to expect that the corresponding environment variables follow suit, and after the original GIT_TRACE variables they are called GIT_TRACE2; there is no such thing is 'GIT_TR'. All trace2-specific config variables are, very sensibly, in the 'trace2' section, not in 'tr2'. OTOH, we don't gain anything at all by omitting the last three characters of "trace" from the names of these environment variables. So let's rename all GIT_TR2* environment variables to GIT_TRACE2*, before they make their way into a stable release. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-19Git 2.22-rc1Libravatar Junio C Hamano2-1/+77
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2019-05-19Merge branch 'js/difftool-no-index'Libravatar Junio C Hamano1-1/+2
The "--dir-diff" mode of "git difftool" is not useful in "--no-index" mode; they are now explicitly marked as mutually incompatible. * js/difftool-no-index: difftool --no-index: error out on --dir-diff (and don't crash)
2019-05-19Merge branch 'jk/get-oid-indexed-object-name'Libravatar Junio C Hamano2-7/+3
The codepath to parse :<path> that obtains the object name for an indexed object has been made more robust. * jk/get-oid-indexed-object-name: get_oid: handle NULL repo->index
2019-05-19Merge branch 'jc/set-packet-header-signature-fix'Libravatar Junio C Hamano1-1/+1
Code clean-up. * jc/set-packet-header-signature-fix: pkt-line: drop 'const'-ness of a param to set_packet_header()
2019-05-19Merge branch 'cb/http-push-null-in-message-fix'Libravatar Junio C Hamano1-2/+2
Code clean-up. * cb/http-push-null-in-message-fix: http-push: prevent format overflow warning with gcc >= 9
2019-05-19Merge branch 'js/stash-in-c-use-builtin-doc'Libravatar Junio C Hamano1-0/+15
Doc update. * js/stash-in-c-use-builtin-doc: stash: document stash.useBuiltin
2019-05-19Merge branch 'tz/test-lib-check-working-jgit'Libravatar Junio C Hamano1-1/+1
A prerequiste check in the test suite to see if a working jgit is available was made more robust. * tz/test-lib-check-working-jgit: test-lib: try harder to ensure a working jgit
2019-05-19Merge branch 'js/parseopt-unknown-cb-returns-an-enum'Libravatar Junio C Hamano1-1/+3
Code clean-up. * js/parseopt-unknown-cb-returns-an-enum: parse-options: adjust `parse_opt_unknown_cb()`s declared return type
2019-05-19Merge branch 'ab/sha1dc'Libravatar Junio C Hamano2-1/+1
Update collision-detecting SHA-1 code to build properly on HP-UX. * ab/sha1dc: sha1dc: update from upstream
2019-05-19Merge branch 'js/rebase-i-label-shown-in-status-fix'Libravatar Junio C Hamano1-1/+3
"git status" did not know that the "label" instruction in the todo-list "rebase -i -r" uses should not be shown as a hex object name. * js/rebase-i-label-shown-in-status-fix: status: fix display of rebase -ir's `label` command
2019-05-19Merge branch 'es/check-non-portable-pre-5.10'Libravatar Junio C Hamano1-4/+5
Developer support update. * es/check-non-portable-pre-5.10: check-non-portable-shell: support Perl versions older than 5.10
2019-05-19Merge branch 'ds/trace2-document-env-vars'Libravatar Junio C Hamano1-0/+21
Doc update. * ds/trace2-document-env-vars: trace2: add variable description to git.txt
2019-05-19Merge branch 'js/fsmonitor-refresh-after-discarding-index'Libravatar Junio C Hamano5-5/+36
The fsmonitor interface got out of sync after the in-core index file gets discarded, which has been corrected. * js/fsmonitor-refresh-after-discarding-index: fsmonitor: force a refresh after the index was discarded fsmonitor: demonstrate that it is not refreshed after discard_index()
2019-05-19Merge branch 'cm/notes-comment-fix'Libravatar Junio C Hamano1-5/+3
A stale in-code comment has been updated. * cm/notes-comment-fix: notes: correct documentation of format_display_notes()
2019-05-19Merge branch 'tt/no-ipv6-fallback-for-winxp'Libravatar Junio C Hamano2-183/+3
Code cleanup. * tt/no-ipv6-fallback-for-winxp: mingw: remove obsolete IPv6-related code
2019-05-19Merge branch 'js/t5580-unc-alternate-test'Libravatar Junio C Hamano1-0/+12
An additional test for MinGW * js/t5580-unc-alternate-test: t5580: verify that alternates can be UNC paths
2019-05-19Merge branch 'ds/cvsexportcommit-force-text'Libravatar Junio C Hamano1-0/+1
"git cvsexportcommit" running on msys did not expect cvsnt showed "cvs status" output with CRLF line endings. * ds/cvsexportcommit-force-text: cvsexportcommit: force crlf translation
2019-05-19Merge branch 'sg/ci-libsvn-perl'Libravatar Junio C Hamano1-1/+1
To run tests for Git SVN, our scripts for CI used to install the git-svn package (in the hope that it would bring in the right dependencies). This has been updated to install the more direct dependency, namely, libsvn-perl. * sg/ci-libsvn-perl: ci: install 'libsvn-perl' instead of 'git-svn'
2019-05-19Merge branch 'bl/t4253-exit-code-from-format-patch'Libravatar Junio C Hamano1-2/+4
Avoid patterns to pipe output from a git command to feed another command in tests. * bl/t4253-exit-code-from-format-patch: t4253-am-keep-cr-dos: avoid using pipes
2019-05-19Merge branch 'ds/midx-too-many-packs'Libravatar Junio C Hamano7-47/+51
The code to generate the multi-pack idx file was not prepared to see too many packfiles and ran out of open file descriptor, which has been corrected. * ds/midx-too-many-packs: midx: add packs to packed_git linked list midx: pass a repository pointer
2019-05-19Merge branch 'en/unicode-in-refnames'Libravatar Junio C Hamano3-0/+7
On a filesystem like HFS+, the names of the refs stored as filesystem entities may become different from what the end-user expects, just like files in the working tree get "renamed". Work around the mismatch by paying attention to the core.precomposeUnicode configuration. * en/unicode-in-refnames: Honor core.precomposeUnicode in more places
2019-05-19Merge branch 'dl/difftool-mergetool'Libravatar Junio C Hamano9-93/+180
Update "git difftool" and "git mergetool" so that the combinations of {diff,merge}.{tool,guitool} configuration variables serve as fallback settings of each other in a sensible order. * dl/difftool-mergetool: difftool: fallback on merge.guitool difftool: make --gui, --tool and --extcmd mutually exclusive mergetool: fallback to tool when guitool unavailable mergetool--lib: create gui_mode function mergetool: use get_merge_tool function t7610: add mergetool --gui tests t7610: unsuppress output
2019-05-19Merge branch 'mh/http-fread-api-fix'Libravatar Junio C Hamano1-6/+6
A pair of private functions in http.c that had names similar to fread/fwrite did not return the number of elements, which was found to be confusing. * mh/http-fread-api-fix: Make fread/fwrite-like functions in http.c more like fread/fwrite.
2019-05-19Merge branch 'js/t6500-use-windows-pid-on-mingw'Libravatar Junio C Hamano1-1/+9
Future-proof a test against an update to MSYS2 runtime v3.x series. * js/t6500-use-windows-pid-on-mingw: t6500(mingw): use the Windows PID of the shell
2019-05-19Merge branch 'jk/apache-lsan'Libravatar Junio C Hamano1-0/+1
Allow tests that involve httpd to be run under leak sanitizer, just like we can already do so under address sanitizer. * jk/apache-lsan: t/lib-httpd: pass LSAN_OPTIONS through apache
2019-05-19Merge branch 'nd/parse-options-aliases'Libravatar Junio C Hamano5-10/+164
Attempt to use an abbreviated option in "git clone --recurs" is responded by a request to disambiguate between --recursive and --recurse-submodules, which is bad because these two are synonyms. The parse-options API has been extended to define such synonyms more easily and not produce an unnecessary failure. * nd/parse-options-aliases: parse-options: don't emit "ambiguous option" for aliases
2019-05-19Merge branch 'dl/branch-from-3dot-merge-base'Libravatar Junio C Hamano5-32/+50
"git branch new A...B" and "git checkout -b new A...B" have been taught that in their contexts, the notation A...B means "the merge base between these two commits", just like "git checkout A...B" detaches HEAD at that commit. * dl/branch-from-3dot-merge-base: branch: make create_branch accept a merge base rev t2018: cleanup in current test
2019-05-19Merge branch 'js/commit-graph-parse-leakfix'Libravatar Junio C Hamano1-1/+3
Leakfix. * js/commit-graph-parse-leakfix: commit-graph: fix memory leak
2019-05-19Merge branch 'jk/cocci-batch'Libravatar Junio C Hamano1-7/+12
Optionally "make coccicheck" can feed multiple source files to spatch, gaining performance while spending more memory. * jk/cocci-batch: coccicheck: make batch size of 0 mean "unlimited" coccicheck: optionally batch spatch invocations
2019-05-19Merge branch 'ab/perf-installed-fix'Libravatar Junio C Hamano4-27/+53
Performance test framework has been broken and measured the version of Git that happens to be on $PATH, not the specified one to measure, for a while, which has been corrected. * ab/perf-installed-fix: perf-lib.sh: forbid the use of GIT_TEST_INSTALLED perf tests: add "bindir" prefix to git tree test results perf-lib.sh: remove GIT_TEST_INSTALLED from perf-lib.sh perf-lib.sh: make "./run <revisions>" use the correct gits perf aggregate: remove GIT_TEST_INSTALLED from --codespeed perf README: correct docs for 3c8f12c96c regression
2019-05-19Merge branch 'id/windows-dep-aslr'Libravatar Junio C Hamano1-0/+8
Allow DEP and ASLR for Windows build to for security hardening. * id/windows-dep-aslr: mingw: enable DEP and ASLR mingw: do not let ld strip relocations
2019-05-19Merge branch 'ab/trace2-typofix'Libravatar Junio C Hamano0-0/+0
Typofix. * ab/trace2-typofix: trace2: fix up a missing "leave" entry point
2019-05-19Merge branch 'nd/submodule-helper-incomplete-line-fix'Libravatar Junio C Hamano1-1/+1
Typofix. * nd/submodule-helper-incomplete-line-fix: submodule--helper: add a missing \n