3fc7fc1 | Junio C Hamano | 14 December 2020, 18:21:38 UTC | Merge branch 'js/t5526-with-no-particular-primary-branch-name' Test update. * js/t5526-with-no-particular-primary-branch-name: t5526: drop the prereq expecting the default branch name `main` t5526: avoid depending on a specific default branch name | 14 December 2020, 18:21:38 UTC |
043bfc6 | Junio C Hamano | 14 December 2020, 18:21:38 UTC | Merge branch 'js/cmake-extra-built-ins-fix' VSbuild fix. * js/cmake-extra-built-ins-fix: cmake: determine list of extra built-ins dynamically | 14 December 2020, 18:21:38 UTC |
ccbde2c | Junio C Hamano | 14 December 2020, 18:21:38 UTC | Merge branch 'da/vs-build-iconv-fix' Build update. * da/vs-build-iconv-fix: ci(vs-build): stop passing the iconv library location explicitly | 14 December 2020, 18:21:38 UTC |
3c9f0df | Junio C Hamano | 14 December 2020, 18:21:38 UTC | Merge branch 'jk/multi-line-indent-style-fix' Style fix. * jk/multi-line-indent-style-fix: style: indent multiline "if" conditions to align | 14 December 2020, 18:21:38 UTC |
a5e74b4 | Junio C Hamano | 14 December 2020, 18:21:37 UTC | Merge branch 'jk/check-config-parsing-error-in-upload-pack' Tighten error checking in the codepath that responds to "git fetch". * jk/check-config-parsing-error-in-upload-pack: upload-pack: propagate return value from object filter config callback | 14 December 2020, 18:21:37 UTC |
aa35dad | Junio C Hamano | 14 December 2020, 18:21:37 UTC | Merge branch 'ae/doc-reproducible-html' Newer versions of xsltproc can assign IDs in HTML documents it generates in a consistent manner. Use the feature to help format HTML version of the user manual reproducibly. * ae/doc-reproducible-html: doc: make HTML manual reproducible | 14 December 2020, 18:21:37 UTC |
c9f1f44 | Junio C Hamano | 14 December 2020, 18:21:36 UTC | Merge branch 'so/glossary-branch-is-not-necessarily-active' The glossary described a branch as an "active" line of development, which is misleading---a stale and non-moving branch is still a branch. * so/glossary-branch-is-not-necessarily-active: glossary: improve "branch" definition | 14 December 2020, 18:21:37 UTC |
c59b73b | Junio C Hamano | 14 December 2020, 18:21:36 UTC | Merge branch 'fc/atmark-in-refspec' "@" sometimes worked (e.g. "git push origin @:there") as a part of a refspec element, but "git push origin @" did not work, which has been corrected. * fc/atmark-in-refspec: refspec: make @ a synonym of HEAD tests: push: trivial cleanup tests: push: improve cleanup of HEAD tests | 14 December 2020, 18:21:36 UTC |
78abcff | Junio C Hamano | 14 December 2020, 18:21:36 UTC | Merge branch 'dd/help-autocorrect-never' "git $cmd $args", when $cmd is not a recognised subcommand, by default tries to see if $cmd is a typo of an existing subcommand and optionally executes the corrected command if there is only one possibility, depending on the setting of help.autocorrect; the users can now disable the whole thing, including the cycles spent to find a likely typo, by setting the configuration variable to 'never'. * dd/help-autocorrect-never: help.c: help.autocorrect=never means "do not compute suggestions" | 14 December 2020, 18:21:36 UTC |
3cf5978 | Junio C Hamano | 08 December 2020, 22:56:00 UTC | Eleventh batch Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 December 2020, 23:11:22 UTC |
7d92da3 | Junio C Hamano | 08 December 2020, 23:11:22 UTC | Merge branch 'fc/zsh-completion' Hotfix for a recent breakage. * fc/zsh-completion: completion: bash: fix gitk alias regression completion: zsh: fix file completion regression | 08 December 2020, 23:11:22 UTC |
90051e5 | Junio C Hamano | 08 December 2020, 23:11:22 UTC | Merge branch 'sn/config-doc-typofix' Fix for an old typo. * sn/config-doc-typofix: config.txt: fix a typo (backslash != backquote) | 08 December 2020, 23:11:22 UTC |
75827da | Junio C Hamano | 08 December 2020, 23:11:21 UTC | Merge branch 'fc/random-cleanup' Random cleanup. * fc/random-cleanup: gitignore: remove entry for git serve gitignore: drop duplicate entry for git-sh-i18n tests: lib-functions: trivial style cleanups test: completion: fix typos .gitignore: remove dangling file refspec: trivial cleanup | 08 December 2020, 23:11:21 UTC |
18da626 | Junio C Hamano | 08 December 2020, 23:11:21 UTC | Merge branch 'nm/imap-send-use-default-config' "git imap-send" used to ignore configuration variables like core.askpass; this has been corrected. * nm/imap-send-use-default-config: imap-send: parse default git config | 08 December 2020, 23:11:21 UTC |
d53feb5 | Junio C Hamano | 08 December 2020, 23:11:21 UTC | Merge branch 'jk/banned' Non-reentrant time-related library functions and ctime/asctime with awkward calling interfaces are banned from the codebase. * jk/banned: banned.h: mark ctime_r() and asctime_r() as banned banned.h: mark non-reentrant gmtime, etc as banned | 08 December 2020, 23:11:21 UTC |
bb48056 | Junio C Hamano | 08 December 2020, 23:11:21 UTC | Merge branch 'tb/bugreport-no-localtime' Use of non-reentrant localtime() has been removed. * tb/bugreport-no-localtime: builtin/bugreport.c: use thread-safe localtime_r() | 08 December 2020, 23:11:21 UTC |
f2a75cb | Junio C Hamano | 08 December 2020, 23:11:20 UTC | Merge branch 'rs/maintenance-run-outside-repo' "git maintenance run/start/stop" needed to be run in a repository to hold the lockfile they use, but didn't make sure they are actually in a repository, which has been corrected. * rs/maintenance-run-outside-repo: t7900: fix typo: "test_execpt_success" maintenance: fix SEGFAULT when no repository | 08 December 2020, 23:11:21 UTC |
eae47db | Junio C Hamano | 08 December 2020, 23:11:20 UTC | Merge branch 'rs/fetch-pack-invalid-lockfile' "fetch-pack" could pass NULL pointer to unlink(2) when it sees an invalid filename; the error checking has been tightened to make this impossible. * rs/fetch-pack-invalid-lockfile: fetch-pack: disregard invalid pack lockfiles | 08 December 2020, 23:11:20 UTC |
8e2def7 | Junio C Hamano | 08 December 2020, 23:11:20 UTC | Merge branch 'nk/perf-fsmonitor-cleanup' Test clean-up. * nk/perf-fsmonitor-cleanup: perf/fsmonitor: use test_must_be_empty helper | 08 December 2020, 23:11:20 UTC |
5dfb976 | Junio C Hamano | 08 December 2020, 23:11:20 UTC | Merge branch 'ma/grep-init-default' Code clean-up. * ma/grep-init-default: MyFirstObjectWalk: drop `init_walken_defaults()` grep: copy struct in one fell swoop grep: use designated initializers for `grep_defaults` grep: don't set up a "default" repo for grep | 08 December 2020, 23:11:20 UTC |
01b8886 | Junio C Hamano | 08 December 2020, 23:11:20 UTC | Merge branch 'js/trace2-session-id' The transport layer was taught to optionally exchange the session ID assigned by the trace2 subsystem during fetch/push transactions. * js/trace2-session-id: receive-pack: log received client session ID send-pack: advertise session ID in capabilities upload-pack, serve: log received client session ID fetch-pack: advertise session ID in capabilities transport: log received server session ID serve: advertise session ID in v2 capabilities receive-pack: advertise session ID in v0 capabilities upload-pack: advertise session ID in v0 capabilities trace2: add a public function for getting the SID docs: new transfer.advertiseSID option docs: new capability to advertise session IDs | 08 December 2020, 23:11:20 UTC |
9b3b4ad | Junio C Hamano | 08 December 2020, 23:11:19 UTC | Merge branch 'mt/do-not-use-scld-in-working-tree' "git apply" adjusted the permission bits of working-tree files and directories according core.sharedRepository setting by mistake and for a long time, which has been corrected. * mt/do-not-use-scld-in-working-tree: apply: don't use core.sharedRepository to create working tree files | 08 December 2020, 23:11:20 UTC |
9451580 | Junio C Hamano | 08 December 2020, 23:11:19 UTC | Merge branch 'ds/maintenance-part-2' Test fix. * ds/maintenance-part-2: t7900: speed up expensive test | 08 December 2020, 23:11:19 UTC |
7ef2906 | Junio C Hamano | 08 December 2020, 23:11:19 UTC | Merge branch 'ds/maintenance-part-1' Build consistency fix. * ds/maintenance-part-1: Makefile: mark git-maintenance as a builtin | 08 December 2020, 23:11:19 UTC |
d702cb9 | Junio C Hamano | 08 December 2020, 23:11:19 UTC | Merge branch 'ds/maintenance-part-3' "git maintenance" command had trouble working in a directory whose pathname contained an ERE metacharacter like '+'. * ds/maintenance-part-3: maintenance: use 'git config --fixed-value' | 08 December 2020, 23:11:19 UTC |
a10e784 | Junio C Hamano | 08 December 2020, 23:11:19 UTC | Merge branch 'ds/config-literal-value' Various subcommands of "git config" that takes value_regex learn the "--literal-value" option to take the value_regex option as a literal string. * ds/config-literal-value: config doc: value-pattern is not necessarily a regexp config: implement --fixed-value with --get* config: plumb --fixed-value into config API config: add --fixed-value option, un-implemented t1300: add test for --replace-all with value-pattern t1300: test "set all" mode with value-pattern config: replace 'value_regex' with 'value_pattern' config: convert multi_replace to flags | 08 December 2020, 23:11:19 UTC |
6bac6a1 | Junio C Hamano | 08 December 2020, 23:11:18 UTC | Merge branch 'tb/idx-midx-race-fix' Processes that access packdata while the .idx file gets removed (e.g. while repacking) did not fail or fall back gracefully as they could. * tb/idx-midx-race-fix: midx.c: protect against disappearing packs packfile.c: protect against disappearing indexes | 08 December 2020, 23:11:18 UTC |
1bc550e | Junio C Hamano | 08 December 2020, 23:11:17 UTC | Merge branch 'ps/update-ref-multi-transaction' "git update-ref --stdin" learns to take multiple transactions in a single session. * ps/update-ref-multi-transaction: update-ref: disallow "start" for ongoing transactions p1400: use `git-update-ref --stdin` to test multiple transactions update-ref: allow creation of multiple transactions t1400: avoid touching refs on filesystem | 08 December 2020, 23:11:17 UTC |
e0d2568 | Junio C Hamano | 08 December 2020, 23:11:17 UTC | Merge branch 'js/add-i-color-fix' "git add -i" failed to honor custom colors configured to show patches, which has been corrected. * js/add-i-color-fix: add -i: verify in the tests that colors can be overridden add -p: prefer color.diff.context over color.diff.plain add -i (Perl version): color header to match the C version add -i (built-in): use the same indentation as the Perl version add -p (built-in): do not color the progress indicator separately add -i (built-in): use correct names to load color.diff.* config add -i (built-in): prevent the `reset` "color" from being configured add -i: use `reset_color` consistently add -p (built-in): imitate `xdl_format_hunk_hdr()` generating hunk headers add -i (built-in): send error messages to stderr add -i (built-in): do show an error message for incorrect inputs | 08 December 2020, 23:11:17 UTC |
2aeafbc | Junio C Hamano | 08 December 2020, 23:11:17 UTC | Merge branch 'jt/trace-error-on-warning' Like die() and error(), a call to warning() will also trigger a trace2 event. * jt/trace-error-on-warning: usage: add trace2 entry upon warning() | 08 December 2020, 23:11:17 UTC |
0a1f2d0 | Josh Steadmon | 08 December 2020, 20:12:56 UTC | t7900: fix typo: "test_execpt_success" Signed-off-by: Josh Steadmon <steadmon@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 08 December 2020, 22:17:54 UTC |
0764964 | Felipe Contreras | 05 December 2020, 07:10:23 UTC | completion: bash: fix gitk alias regression Long time ago when the _git_complete helper was introduced, _gitk was replaced with __gitk_main, and a placeholder for backwards compatibility pointing to __git_wrap_main_gitk was left in place. When "__git_complete gitk __gitk_main" was called, that created the __git_wrap__gitk_main helper, which is just basically "__git_func_wrap __gitk_main" plus `complete` options. Unfortunately the commit b0a4b2d257 (completion: add support for backwards compatibility, 2012-05-19) missed a previous instance of a call to _gitk in _git_gitk So, basically we had __git_wrap__git_main -> __git_func_wrap __git_main -> __git_complete_command gitk -> _git_gitk -> _gitk -> __git_wrap__gitk_main -> __git_func_wrap __gitk_main -> __gitk_main. There was never any need to call __git_func_wrap twice. Since _git_gitk is always called inside the wrapper, it can call __gitk_main directly. And then, in commit 441ecdab37 (completion: bash: remove old compat wrappers, 2020-10-27) _gitk was removed, which triggers the following error: _git_gitk:9: command not found: _gitk Let's call the correct function: __gitk_main. Cc: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 07 December 2020, 21:39:53 UTC |
7fe0727 | Johannes Schindelin | 04 December 2020, 19:33:56 UTC | cmake: determine list of extra built-ins dynamically In 0a21d0e08902 (Makefile: mark git-maintenance as a builtin, 2020-12-01), we marked git-maintenance as a builtin in the Makefile, but forgot to do the same in `CMakeLists.txt`. Rather than always play catch-up and adjust `git_builtin_extra` manually, use the `BUILT_INS` definitions in the Makefile as authoritative source and generate `git_builtin_extra` dynamically. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 04 December 2020, 20:11:07 UTC |
71f4a93 | Johannes Schindelin | 04 December 2020, 14:34:22 UTC | t5526: drop the prereq expecting the default branch name `main` Initially, we started converting this test script in anticipation for renaming the default branch name to `main`. To that end, we partially converted it to accommodate for that default branch name, marking the now-failing test cases with a prereq that was designed to be fulfilled once the rename was complete. However, the effort to move to the branch name `main` needs quite a bit longer, as it was decided that we need a deprecation phase first. To avoid keeping t5526 in limbo for such a long time, we just made it independent of the actual default branch name used by Git. Therefore, that prereq is no longer necessary, and we can drop it. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 04 December 2020, 20:05:19 UTC |
b618a2d | Johannes Schindelin | 04 December 2020, 14:34:21 UTC | t5526: avoid depending on a specific default branch name While at it, use different default branch names for the three different repositories involved in the test script: this makes it easier to debug failures, too (otherwise you have to wonder which `master` branch was meant: the super project's? The submodule's? The nested submodule's?). Note: this touches code that was originally modified to prepare for renaming the default branch name to `main`. This patch side-steps that effort completely by overriding the initial branch name explicitly. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 04 December 2020, 20:05:18 UTC |
e665903 | Dennis Ameling | 04 December 2020, 14:22:20 UTC | ci(vs-build): stop passing the iconv library location explicitly Something changed in `vcpkg` (which we use in our Visual C++ build to provide the dependencies such as libcurl) and our `vs-build` job started failing in CI. The reason is that we had a work-around in place to help CMake find iconv, and this work-around is neither needed nor does it work anymore. For the full discussion with the vcpkg project, see this comment: https://github.com/microsoft/vcpkg/issues/14780#issuecomment-735368280 Signed-off-by: Dennis Ameling <dennis@dennisameling.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 04 December 2020, 20:03:15 UTC |
08e9df2 | Jeff King | 03 December 2020, 08:00:18 UTC | style: indent multiline "if" conditions to align Commit 6dc905d974 (config: split repo scope to local and worktree, 2020-02-10) made some "if" statements multiline, but didn't indent the second lines in our usual way. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 December 2020, 18:32:32 UTC |
d43a21b | Jeff King | 03 December 2020, 08:09:42 UTC | upload-pack: propagate return value from object filter config callback If we encounter an error in parse_filter_object_config(), we'll complain to stderr but won't actually propagate the return value up the stack. This is unlike most of our config callbacks, which return the error to git_config() so it can die (this includes the call just below us to parse_hide_refs_config(), which can also produce errors). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 December 2020, 18:25:13 UTC |
3a0b884 | Junio C Hamano | 03 December 2020, 07:44:25 UTC | Tenth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 December 2020, 08:18:07 UTC |
f3e5dcd | Junio C Hamano | 03 December 2020, 08:18:07 UTC | Merge branch 'pk/subsub-fetch-fix' An earlier attempt to fix "git fetch --recurse-submodules" broke another use case; revert it until a better fix is found. * pk/subsub-fetch-fix: Revert "submodules: fix of regression on fetching of non-init subsub-repo" | 03 December 2020, 08:18:07 UTC |
f3a112a | Junio C Hamano | 03 December 2020, 08:18:07 UTC | Merge branch 'jk/stop-pack-objects-when-fetch-is-killed' "git fetch" that is killed may leave a pack-objects process behind, still computing to find a good compression, wasting cycles. This has been corrected. * jk/stop-pack-objects-when-fetch-is-killed: upload-pack: kill pack-objects helper on signal or exit | 03 December 2020, 08:18:07 UTC |
adae5df | Junio C Hamano | 03 December 2020, 08:18:06 UTC | Merge branch 'jk/stop-pack-objects-when-push-is-killed' "git push" that is killed may leave a pack-objects process behind, still computing to find a good compression, wasting cycles. This has been corrected. * jk/stop-pack-objects-when-push-is-killed: send-pack: kill pack-objects helper on signal or exit | 03 December 2020, 08:18:06 UTC |
39d38a5 | Junio C Hamano | 03 December 2020, 08:18:06 UTC | Merge branch 'tb/repack-simplify' Simplify the logic to deal with a repack operation that ended up creating the same packfile. * tb/repack-simplify: builtin/repack.c: don't move existing packs out of the way builtin/repack.c: keep track of what pack-objects wrote repack: make "exts" array available outside cmd_repack() | 03 December 2020, 08:18:06 UTC |
c692e1b | Junio C Hamano | 03 December 2020, 08:18:06 UTC | Merge branch 'pb/pull-rebase-recurse-submodules' "git pull --rebase --recurse-submodules" checked for local changes in a wrong range and failed to run correctly when it should. * pb/pull-rebase-recurse-submodules: pull: check for local submodule modifications with the right range t5572: describe '--rebase' tests a little more t5572: add notes on a peculiar test pull --rebase: compute rebase arguments in separate function | 03 December 2020, 08:18:06 UTC |
e89ecfb | Junio C Hamano | 03 December 2020, 08:18:06 UTC | Merge branch 'ab/retire-parse-remote' "git-parse-remote" shell script library outlived its usefulness. * ab/retire-parse-remote: submodule: fix fetch_in_submodule logic parse-remote: remove this now-unused library submodule: remove sh function in favor of helper submodule: use "fetch" logic instead of custom remote discovery | 03 December 2020, 08:18:06 UTC |
3569e11 | Arnout Engelen | 01 December 2020, 09:50:37 UTC | doc: make HTML manual reproducible Versions of docbook-xsl newer than 1.79.1 allows xsltproc to assign IDs to nodes in the generated HTML consistently, to make the output resulting from the same source stable and reproducible. Pass the generate.consistent.ids parameter from the command line to ask for this feature. Older versions of the tool simply ignores the parameter and produces their output the same way as before this change, so there is no need to check for toolchain version. Signed-off-by: Arnout Engelen <arnout@bzzt.net> Helped-by: brian m. carlson <sandals@crustytoothpaste.net> Helped-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 03 December 2020, 02:33:34 UTC |
7091499 | Junio C Hamano | 02 December 2020, 23:07:14 UTC | Revert "submodules: fix of regression on fetching of non-init subsub-repo" This reverts commit 1b7ac4e6d4d490b224f5206af7418ed74e490608; in <CAN0XMOLiS_8JZKF_wW70BvRRxkDHyUoa=Z3ODtB_Bd6f5Y=7JQ@mail.gmail.com>, Ralf Thielow reports that "git fetch" with submodule.recurse set can result in a bogus and infinitely recursive fetching of the same submodule. | 02 December 2020, 23:07:14 UTC |
eef1cea | Sergey Organov | 23 November 2020, 20:05:51 UTC | glossary: improve "branch" definition The old phrasing is at least questionable, if not wrong, as there are a lot of branches out there that didn't see active development for years, yet they are still branches, ready to become active again any time. Signed-off-by: Sergey Organov <sorganov@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2020, 22:53:42 UTC |
0a21d0e | Jeff King | 02 December 2020, 02:34:11 UTC | Makefile: mark git-maintenance as a builtin We normally get the list of builtin commands by expanding BUILTIN_OBJS. But for commands which are embedded inside another's source file (e.g., cmd_show() in builtin/log.c), the Makefile needs to be told explicitly about them. Since cmd_maintenance() is inside buitin/gc.c, it should be listed explicitly in the BUILT_INS list in the Makefile. Not doing so isn't _too_ tragic, as it simply means we will not make a git-maintenance symlink in libexec/git-core. Since we encourage people to use the "git foo" form, even in scripts which have put libexec into their PATH, nobody seems to have noticed. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2020, 22:50:26 UTC |
eb3c027 | Matheus Tavares | 01 December 2020, 23:45:04 UTC | apply: don't use core.sharedRepository to create working tree files core.sharedRepository defines which permissions Git should set when creating files in $GIT_DIR, so that the repository may be shared with other users. But (in its current form) the setting shouldn't affect how files are created in the working tree. This is not respected by apply and am (which uses apply), when creating leading directories: $ cat d.patch diff --git a/d/f b/d/f new file mode 100644 index 0000000..e69de29 Apply without the setting: $ umask 0077 $ git apply d.patch $ ls -ld d drwx------ Apply with the setting: $ umask 0077 $ git -c core.sharedRepository=0770 apply d.patch $ ls -ld d drwxrws--- Only the leading directories are affected. That's because they are created with safe_create_leading_directories(), which calls adjust_shared_perm() to set the directories' permissions based on core.sharedRepository. To fix that, let's introduce a variant of this function that ignores the setting, and use it in apply. Also add a regression test and a note in the function documentation about the use of each variant according to the destination (working tree or git dir). Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2020, 22:35:51 UTC |
91aef03 | Jeff King | 01 December 2020, 21:11:38 UTC | banned.h: mark ctime_r() and asctime_r() as banned The ctime_r() and asctime_r() functions are reentrant, but have no check that the buffer we pass in is long enough (the manpage says it "should have room for at least 26 bytes"). Since this is such an easy-to-get-wrong interface, and since we have the much safer strftime() as well as its more convenient strbuf_addftime() wrapper, let's ban both of those. Signed-off-by: Jeff King <peff@peff.net> Reviewed-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2020, 22:30:39 UTC |
2fbd305 | René Scharfe | 02 December 2020, 11:46:01 UTC | gitignore: remove entry for git serve b7ce24d095 (Turn `git serve` into a test helper, 2019-04-18) demoted git serve from a builtin command to a test helper. As a result the git-serve binary is no longer built and thus doesn't have to be ignored anymore. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2020, 22:29:49 UTC |
f580de2 | Jeff King | 02 December 2020, 02:26:24 UTC | gitignore: drop duplicate entry for git-sh-i18n This was accidentally added by e00cf070a4 (git-sh-i18n.sh: add no-op gettext() and eval_gettext() wrappers, 2011-05-14), even though an earlier commit in the same series had already done so. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2020, 22:29:49 UTC |
a0c5ccc | Jeff King | 02 December 2020, 02:47:56 UTC | t7900: speed up expensive test A test marked with EXPENSIVE creates two 2.5GB files and adds them to the repository. This takes 194s to run on my machine, versus 2s when the EXPENSIVE prereq isn't set. We can trim this down a bit by doing two things: - use "git commit --quiet" to avoid spending time generating a diff summary (this actually only helps for the second commit, but I've added it here to both for consistency). This shaves off 8s. - set core.compression to 0. We know these files are full of random bytes, and so won't compress (that's the point of the test!). Spending cycles on zlib is pointless. This shaves off 122s. After this, my total time to run the script is 64s. That won't help normal runs without GIT_TEST_LONG set, of course, but it's easy enough to do. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 02 December 2020, 22:27:08 UTC |
1fbfdf5 | Jeff King | 01 December 2020, 21:11:37 UTC | banned.h: mark non-reentrant gmtime, etc as banned The traditional gmtime(), localtime(), ctime(), and asctime() functions return pointers to shared storage. This means they're not thread-safe, and they also run the risk of somebody holding onto the result across multiple calls (where each call invalidates the previous result). All callers should be using their reentrant counterparts. Signed-off-by: Jeff King <peff@peff.net> Reviewed-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 22:37:27 UTC |
e63d774 | Štěpán Němec | 01 December 2020, 12:10:51 UTC | config.txt: fix a typo (backslash != backquote) Signed-off-by: Štěpán Němec <stepnem@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 21:31:55 UTC |
4f6460d | Taylor Blau | 01 December 2020, 00:30:06 UTC | builtin/bugreport.c: use thread-safe localtime_r() To generate its filename, the 'git bugreport' builtin asks the system for the current time with 'localtime()'. Since this uses a shared buffer, it is not thread-safe. Even though 'git bugreport' is not multi-threaded, using localtime() can trigger some static analysis tools to complain, and a quick $ git grep -oh 'localtime\(_.\)\?' -- **/*.c | sort | uniq -c shows that the only usage of the thread-unsafe 'localtime' is in a piece of documentation. So, convert this instance to use the thread-safe version for consistency, and to appease some analysis tools. Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 21:05:37 UTC |
309a402 | Jeff King | 01 December 2020, 12:15:13 UTC | upload-pack: kill pack-objects helper on signal or exit We spawn an external pack-objects process to actually send objects to the remote side. If we are killed by a signal during this process, then pack-objects may continue to run. As soon as it starts producing output for the pack, it will see a failure writing to upload-pack and exit itself. But before then, it may do significant work traversing the object graph, compressing deltas, etc, which will all be pointless. So let's make sure to kill as soon as we know that the caller will not read the result. There's no test here, since it's inherently racy, but here's an easy reproduction is on a large-ish repo like linux.git: - make sure you don't have pack bitmaps (since they make the enumerating phase go quickly). For linux.git it takes ~30s or so to walk the whole graph on my machine. - run "git clone --no-local -q . dst"; the "-q" is important because if pack-objects is writing progress to upload-pack (to get multiplexed over the sideband to the client), then it will notice pretty quickly the failure to write to stderr - kill the client-side clone process in another terminal (don't use ^C, as that will send SIGINT to all of the processes) - run "ps au | grep git" or similar to observe upload-pack dying within 5 seconds (it will send a keepalive that will notice the client has gone away) - but you'll still see pack-objects consuming 100% CPU (and 1GB+ of RAM) during the traversal and delta compression phases. It will exit as soon as it starts to write the pack (when it will notice that upload-pack went away). With this patch, pack-objects exits as soon as upload-pack does. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 20:05:58 UTC |
5021236 | Nicolas Morey-Chaisemartin | 01 December 2020, 07:38:16 UTC | imap-send: parse default git config git imap-send does not parse the default git config settings and thus ignore core.askpass value. Rewrite config parsing to support core settings. Reported-by: Philippe Blain <levraiphilippeblain@gmail.com> Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 19:10:59 UTC |
c5dd0c8 | Felipe Contreras | 01 December 2020, 00:54:31 UTC | completion: zsh: fix file completion regression Turns out we always need to set the ignored prefix (compset) to have similar behavior as in default Bash. The issue can be seen with: git show master:<tab> Commit 94b2901cfe wrongly removed it. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 18:32:40 UTC |
1ab7e00 | Felipe Contreras | 01 December 2020, 00:46:49 UTC | tests: lib-functions: trivial style cleanups Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 18:31:30 UTC |
b64b43d | Felipe Contreras | 01 December 2020, 00:46:48 UTC | test: completion: fix typos Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 18:31:30 UTC |
02b5aa5 | Felipe Contreras | 01 December 2020, 00:46:47 UTC | .gitignore: remove dangling file The library was removed 7 years ago on commit ae34ac126f. But not from the .gitignore file. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 18:31:29 UTC |
bfded87 | Felipe Contreras | 01 December 2020, 00:46:46 UTC | refspec: trivial cleanup We can remove one level of indentation and make the code clearer. No functional changes. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 01 December 2020, 18:31:29 UTC |
72ffeb9 | Junio C Hamano | 30 November 2020, 22:49:16 UTC | Ninth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 22:49:45 UTC |
3d8f81f | Junio C Hamano | 30 November 2020, 22:49:45 UTC | Merge branch 'sa/credential-store-timeout' Multiple "credential-store" backends can race to lock the same file, causing everybody else but one to fail---reattempt locking with some timeout to reduce the rate of the failure. * sa/credential-store-timeout: crendential-store: use timeout when locking file | 30 November 2020, 22:49:45 UTC |
fa27e2d | Junio C Hamano | 30 November 2020, 22:49:45 UTC | Merge branch 'km/stash-error-message-fix' Error message fix. * km/stash-error-message-fix: stash: add missing space to an error message | 30 November 2020, 22:49:45 UTC |
43c1c79 | Junio C Hamano | 30 November 2020, 22:49:44 UTC | Merge branch 'hn/sleep-millisec-decl' Move a definition of compatibility wrapper from cache.h to git-compat-util.h * hn/sleep-millisec-decl: move sleep_millisec to git-compat-util.h | 30 November 2020, 22:49:44 UTC |
9f41d09 | Junio C Hamano | 30 November 2020, 22:49:44 UTC | Merge branch 'js/t3404-master-to-primary' A test script got cleaned up and then made not to depend on the value of init.defaultBranch. * js/t3404-master-to-primary: t3404: do not depend on any specific default branch name | 30 November 2020, 22:49:44 UTC |
e082a85 | Junio C Hamano | 30 November 2020, 22:49:44 UTC | Merge branch 'na/notes-displayref-is-not-boolean' Config parser fix for "git notes". * na/notes-displayref-is-not-boolean: t3301: test proper exit response to no-value notes.displayRef. notes.c: fix a segfault in notes_display_config() | 30 November 2020, 22:49:44 UTC |
b94b1f9 | Junio C Hamano | 30 November 2020, 22:49:43 UTC | Merge branch 'jc/do-not-just-explain-but-update-your-patch' Expectation for the original contributor after responding to a review comment to use the explanation in a patch update has been described. * jc/do-not-just-explain-but-update-your-patch: MyFirstContribition: answering questions is not the end of the story | 30 November 2020, 22:49:43 UTC |
f73ee0c | Junio C Hamano | 30 November 2020, 22:49:43 UTC | Merge branch 'mt/worktree-error-message-fix' Fix formulation of an error message with two placeholders in "git worktree add" subcommand. * mt/worktree-error-message-fix: worktree: fix order of arguments in error message | 30 November 2020, 22:49:43 UTC |
1c04cdd | Junio C Hamano | 30 November 2020, 22:49:42 UTC | Merge branch 'ab/gc-keep-base-option' Fix an option name in "gc" documentation. * ab/gc-keep-base-option: gc: rename keep_base_pack variable for --keep-largest-pack gc docs: change --keep-base-pack to --keep-largest-pack | 30 November 2020, 22:49:43 UTC |
1242501 | Junio C Hamano | 30 November 2020, 22:49:42 UTC | Merge branch 'js/t1309-master-to-topic' Test preparation. * js/t1309-master-to-topic: t1309: use a neutral branch name in the `onbranch` test cases | 30 November 2020, 22:49:42 UTC |
290c940 | Junio C Hamano | 30 November 2020, 22:49:42 UTC | Merge branch 'js/pull-rebase-use-advise' UI improvement. * js/pull-rebase-use-advise: pull: colorize the hint about setting `pull.rebase` | 30 November 2020, 22:49:42 UTC |
376b4cc | Junio C Hamano | 30 November 2020, 22:49:41 UTC | Merge branch 'js/t4015-wo-master' A test script got cleaned up not to depend on the value of init.defaultBranch. * js/t4015-wo-master: t4015: let the test pass with any default branch name | 30 November 2020, 22:49:41 UTC |
26d0286 | Junio C Hamano | 30 November 2020, 22:49:41 UTC | Merge branch 'js/t3040-cleanup' Cleanup. * js/t3040-cleanup: t3040: remove stale note | 30 November 2020, 22:49:41 UTC |
39f95df | Junio C Hamano | 30 November 2020, 22:49:41 UTC | Merge branch 'js/t2106-cleanup' A test script got cleaned up and then made not to depend on the value of init.defaultBranch. * js/t2106-cleanup: t2106: ensure that the checkout fails for the expected reason t2106: make test independent of the current main branch name t2106: adjust style to the current conventions | 30 November 2020, 22:49:41 UTC |
6031af3 | René Scharfe | 30 November 2020, 19:27:15 UTC | fetch-pack: disregard invalid pack lockfiles 9da69a6539 (fetch-pack: support more than one pack lockfile, 2020-06-10) started to use a string_list for pack lockfile names instead of a single string pointer. It removed a NULL check from transport_unlock_pack() as well, which is the function that eventually deletes these lockfiles and releases their name strings. index_pack_lockfile() can return NULL if it doesn't like the contents it reads from the file descriptor passed to it. unlink(2) is declared to not accept NULL pointers (at least with glibc). Undefined Behavior Sanitizer together with Address Sanitizer detects a case where a NULL lockfile name is passed to unlink(2) by transport_unlock_pack() in t1060 (make SANITIZE=address,undefined; cd t; ./t1060-object-corruption.sh). Reinstate the NULL check to avoid undefined behavior, but put it right at the source, so that the number of items in the string_list reflects the number of valid lockfiles. Signed-off-by: René Scharfe <l.s.r@web.de> Reviewed-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 22:35:00 UTC |
374fbae | Felipe Contreras | 26 November 2020, 00:16:16 UTC | refspec: make @ a synonym of HEAD Since commit 9ba89f484e git learned how to push to a remote branch using the source @, for example: git push origin @:master However, if the right-hand side is missing, the push fails: git push origin @ It is obvious what is the desired behavior, and allowing the push makes things more consistent. Additionally, @:master now has the same semantics as HEAD:master. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 21:57:55 UTC |
e7f80ea | Felipe Contreras | 26 November 2020, 00:16:15 UTC | tests: push: trivial cleanup No need to do two checkouts. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 21:57:54 UTC |
12a30a3 | Felipe Contreras | 26 November 2020, 00:16:14 UTC | tests: push: improve cleanup of HEAD tests So that we are not left in an inconsistent state between them. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 21:57:54 UTC |
3bf97e1 | Martin Ågren | 29 November 2020, 19:52:22 UTC | MyFirstObjectWalk: drop `init_walken_defaults()` In a recent commit, we stopped calling `init_grep_defaults()` from this function. Thus, by the end of the tutorial, we still haven't added any contents to this function. Let's remove it for simplicity. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 21:55:54 UTC |
6ba9bb7 | Martin Ågren | 29 November 2020, 19:52:21 UTC | grep: copy struct in one fell swoop We have a `struct grep_opt` with our defaults which we then copy into the caller's struct. Rather than zeroing the target struct and copying each element one by one, just copy everything at once. This leaves the code simpler and more maintainable. We don't have any ownership issues with what we're copying now and can just greedily copy the whole thing. If and when we do need to handle such elements (`char *`?), we must and can handle it appropriately. Make sure to leave a comment to our future selves. Signed-off-by: Martin Ågren <martin.agren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 21:55:54 UTC |
36fa907 | Nipunn Koorapati | 25 November 2020, 22:11:37 UTC | perf/fsmonitor: use test_must_be_empty helper Simplify test and make error messages more clear here. Per feedback from Junio in 33226af42b (t/perf/fsmonitor: improve error message if typoing hook name, 2020-10-26) Signed-off-by: Nipunn Koorapati <nipunn@dropbox.com> Acked-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 21:51:43 UTC |
e72f7de | Rafael Silva | 26 November 2020, 20:41:41 UTC | maintenance: fix SEGFAULT when no repository The "git maintenance run" and "git maintenance start/stop" commands holds a file-based lock at the .git/maintenance.lock and .git/schedule.lock respectively. These locks are used to ensure only one maintenance process is executed at the time as both operations involves writing data into the git repository. The path to the lock file is built using "the_repository->objects->odb->path" that results in SEGFAULT when we have no repository available as "the_repository->objects->odb" is set to NULL. Let's teach maintenance command to use RUN_SETUP option that will provide the validation and fail when running outside of a repository. Hence fixing the SEGFAULT for all three operations and making the behaviour consistent across all subcommands. Setting the RUN_SETUP also provides the same protection for all subcommands given that the "register" and "unregister" also requires to be executed inside a repository. Furthermore let's remove the local validation implemented by the "register" and "unregister" as this will not be required anymore with the new option. Signed-off-by: Rafael Silva <rafaeloliveira.cs@gmail.com> Reviewed-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> | 30 November 2020, 21:44:15 UTC |
e67fbf9 | Junio C Hamano | 25 November 2020, 22:32:32 UTC | Eighth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> | 25 November 2020, 23:24:54 UTC |
7bd645e | Junio C Hamano | 25 November 2020, 23:24:54 UTC | Merge branch 'sg/tests-prereq' A lazily defined test prerequisite can now be defined in terms of another lazily defined test prerequisite. * sg/tests-prereq: tests: fix description of 'test_set_prereq' tests: make sure nested lazy prereqs work reliably | 25 November 2020, 23:24:54 UTC |
ca06552 | Junio C Hamano | 25 November 2020, 23:24:53 UTC | Merge branch 'rs/plug-diff-cache-leak' Memleak fix. * rs/plug-diff-cache-leak: diff-lib: plug minor memory leaks in do_diff_cache() | 25 November 2020, 23:24:53 UTC |
2ba70a3 | Junio C Hamano | 25 November 2020, 23:24:53 UTC | Merge branch 'rs/gc-sort-func-cast-fix' Fix broken sorting of maintenance tasks. * rs/gc-sort-func-cast-fix: gc: fix cast in compare_tasks_by_selection() | 25 November 2020, 23:24:53 UTC |
57228d3 | Junio C Hamano | 25 November 2020, 23:24:53 UTC | Merge branch 'jc/ci-github-set-env' Another CI adjustment. * jc/ci-github-set-env: ci: avoid `set-env` construct in print-test-failures.sh | 25 November 2020, 23:24:53 UTC |
d302170 | Junio C Hamano | 25 November 2020, 23:24:53 UTC | Merge branch 'sg/t5310-jgit-wants-sha1' Since jgit does not yet work with SHA-256 repositories, mark the tests that uses it not to run unless we are testing with ShA-1 repositories. * sg/t5310-jgit-wants-sha1: t5310-pack-bitmaps: skip JGit tests with SHA256 | 25 November 2020, 23:24:53 UTC |
3eebb3e | Junio C Hamano | 25 November 2020, 23:24:53 UTC | Merge branch 'rs/archive-plug-leak-refname' Memleak fix. * rs/archive-plug-leak-refname: archive: release refname after use | 25 November 2020, 23:24:53 UTC |
b5b71cb | Junio C Hamano | 25 November 2020, 23:24:52 UTC | Merge branch 'ma/list-object-filter-opt-msgfix' Error message fix. * ma/list-object-filter-opt-msgfix: list-objects-filter-options: fix function name in BUG | 25 November 2020, 23:24:53 UTC |
d627bf6 | Junio C Hamano | 25 November 2020, 23:24:52 UTC | Merge branch 'pk/subsub-fetch-fix' "git fetch" did not work correctly with nested submodules where the innermost submodule that is not of interest got updated in the upstream, which has been corrected. * pk/subsub-fetch-fix: submodules: fix of regression on fetching of non-init subsub-repo | 25 November 2020, 23:24:52 UTC |
fcf26ef | Junio C Hamano | 25 November 2020, 23:24:52 UTC | Merge branch 'jk/4gb-idx' The code was not prepared to deal with pack .idx file that is larger than 4GB. * jk/4gb-idx: packfile: detect overflow in .idx file size checks block-sha1: take a size_t length parameter fsck: correctly compute checksums on idx files larger than 4GB use size_t to store pack .idx byte offsets compute pack .idx byte offsets using size_t | 25 November 2020, 23:24:52 UTC |
8f8f10a | Junio C Hamano | 25 November 2020, 23:24:52 UTC | Merge branch 'jx/t5411-flake-fix' The exchange between receive-pack and proc-receive hook did not carefully check for errors. * jx/t5411-flake-fix: receive-pack: use default version 0 for proc-receive receive-pack: gently write messages to proc-receive t5411: new helper filter_out_user_friendly_and_stable_output | 25 November 2020, 23:24:52 UTC |
455e8d1 | Junio C Hamano | 25 November 2020, 23:24:52 UTC | Merge branch 'rs/hashwrite-be64' Code simplification. * rs/hashwrite-be64: pack-write: use hashwrite_be64() midx: use hashwrite_be64() csum-file: add hashwrite_be64() | 25 November 2020, 23:24:52 UTC |
2557c11 | Junio C Hamano | 25 November 2020, 23:24:52 UTC | Merge branch 'sg/bisect-approximately-halfway' "git bisect start/next" in a large span of history spends a lot of time trying to come up with exactly the half-way point; this can be optimized by stopping when we see a commit that is close enough to the half-way point. * sg/bisect-approximately-halfway: bisect: loosen halfway() check for a large number of commits | 25 November 2020, 23:24:52 UTC |
fd6445a | Junio C Hamano | 25 November 2020, 23:24:51 UTC | Merge branch 'fc/bash-completion-alias-of-alias' The command line completion script (in contrib/) learned to expand commands that are alias of alias. * fc/bash-completion-alias-of-alias: completion: bash: improve alias loop detection completion: bash: check for alias loop completion: bash: support recursive aliases | 25 November 2020, 23:24:51 UTC |