https://github.com/git/git

sort by:
Revision Author Date Message Commit Date
1c52ecf Git 2.30-rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 December 2020, 18:30:05 UTC
3fc7fc1 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 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 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 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 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 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 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 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 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 Eleventh batch Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 December 2020, 23:11:22 UTC
7d92da3 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tenth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> 03 December 2020, 08:18:07 UTC
f3e5dcd 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 .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 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 Ninth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> 30 November 2020, 22:49:45 UTC
3d8f81f 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 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 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 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 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 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 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 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 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 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 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 Merge branch 'js/t3040-cleanup' Cleanup. * js/t3040-cleanup: t3040: remove stale note 30 November 2020, 22:49:41 UTC
39f95df 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 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 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 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 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 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 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 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 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 Eighth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> 25 November 2020, 23:24:54 UTC
7bd645e 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 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 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 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 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 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 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 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 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 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 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 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
back to top