summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-07-08Merge branch 'ab/progress-cleanup'Junio C Hamano1-6/+3
Code clean-up. * ab/progress-cleanup: read-cache.c: don't guard calls to progress.c API
2021-07-08Merge branch 'ab/xdiff-bug-cleanup'Junio C Hamano1-14/+8
Code clean-up. * ab/xdiff-bug-cleanup: xdiff: use BUG(...), not xdl_bug(...)
2021-07-08Merge branch 'ms/mergetools-kdiff3-on-windows'Junio C Hamano1-0/+9
On Windows, mergetool has been taught to find kdiff3.exe just like it finds winmerge.exe. * ms/mergetools-kdiff3-on-windows: mergetools/kdiff3: make kdiff3 work on Windows too
2021-07-08Merge branch 'ab/cmd-foo-should-return'Junio C Hamano9-14/+13
Code clean-up. * ab/cmd-foo-should-return: builtins + test helpers: use return instead of exit() in cmd_*
2021-07-08Merge branch 'ar/doc-libera-chat-in-my-first-contrib'Junio C Hamano1-2/+2
Update MyFirst document. * ar/doc-libera-chat-in-my-first-contrib: MyFirstContribution: link #git-devel to Libera Chat
2021-07-08Merge branch 'ar/mailinfo-memcmp-to-skip-prefix'Junio C Hamano1-2/+2
Code clean-up. * ar/mailinfo-memcmp-to-skip-prefix: mailinfo: use starts_with() when checking scissors
2021-07-08Merge branch 'jk/doc-max-pack-size'Junio C Hamano3-10/+23
Doc update. * jk/doc-max-pack-size: doc: warn people against --max-pack-size
2021-07-08Merge branch 'ab/fix-columns-to-80-during-tests'Junio C Hamano1-2/+3
Output from some of our tests were affected by the width of the terminal that they were run in, which has been corrected by exporting a fixed value in the COLUMNS environment. * ab/fix-columns-to-80-during-tests: test-lib.sh: set COLUMNS=80 for --verbose repeatability
2021-07-08Merge branch 'ar/more-typofix'Junio C Hamano4-4/+4
Typofixes. * ar/more-typofix: git-worktree.txt: fix typo in example path t: fix typos in test messages blame: correct name of config option in docs
2021-07-08Merge branch 'fw/complete-cmd-idx-fix'Junio C Hamano1-0/+1
Recent update to completion script (in contrib/) broke those who use the __git_complete helper to define completion to their custom command. * fw/complete-cmd-idx-fix: completion: bash: fix late declaration of __git_cmd_idx
2021-07-08Merge branch 'jk/test-without-readlink-1'Junio C Hamano3-3/+9
Some test scripts assumed that readlink(1) was universally installed and available, which is not the case. * jk/test-without-readlink-1: t: use portable wrapper for readlink(1)
2021-07-08Merge branch 'jx/sideband-cleanup'Junio C Hamano32-1013/+1036
The side-band demultiplexer that is used to display progress output from the remote end did not clear the line properly when the end of line hits at a packet boundary, which has been corrected. Also comes with test clean-ups. * jx/sideband-cleanup: test: refactor to use "get_abbrev_oid" to get abbrev oid test: refactor to use "test_commit" to create commits test: compare raw output, not mangle tabs and spaces sideband: don't lose clear-to-eol at packet boundary
2021-07-08Merge branch 'jk/test-avoid-globmatch-with-skip-patterns'Junio C Hamano1-12/+22
We broke "GIT_SKIP_TESTS=t?000" to skip certain tests in recent update, which got fixed. * jk/test-avoid-globmatch-with-skip-patterns: test-lib: avoid accidental globbing in match_pattern_list()
2021-07-08Merge branch 'jv/userdiff-csharp-update'Junio C Hamano1-1/+1
The userdiff pattern for C# learned the token "record". * jv/userdiff-csharp-update: userdiff: add support for C# record types
2021-07-08Merge branch 'ab/config-hooks-path-testfix'Junio C Hamano1-0/+1
Test fix. * ab/config-hooks-path-testfix: pre-commit hook tests: don't leave "actual" nonexisting on failure
2021-07-08Merge branch 'fc/pull-cleanups'Junio C Hamano1-15/+11
Code cleanup. * fc/pull-cleanups: pull: trivial whitespace style fix pull: trivial cleanup pull: cleanup autostash check
2021-07-08Merge branch 'jk/bitmap-tree-optim'Junio C Hamano3-0/+22
Avoid duplicated work while building reachability bitmaps. * jk/bitmap-tree-optim: bitmaps: don't recurse into trees already in the bitmap
2021-07-08Merge branch 'ah/graph-typofix'Junio C Hamano1-1/+1
Typofix in an error message. * ah/graph-typofix: graph: improve grammar of "invalid color" error message
2021-07-08Merge branch 'jx/t6020-with-older-bash'Junio C Hamano1-19/+31
Work around inefficient glob substitution in older versions of bash by rewriting parts of a test. * jx/t6020-with-older-bash: t6020: fix incompatible parameter expansion
2021-07-08Merge branch 'ar/typofix'Junio C Hamano14-16/+15
Typofixes. * ar/typofix: *: fix typos which duplicate a word
2021-07-08Merge branch 'jk/revision-squelch-gcc-warning'Junio C Hamano1-2/+3
Warning fix. * jk/revision-squelch-gcc-warning: add_pending_object_with_path(): work around "gcc -O3" complaint
2021-07-08Merge branch 'ah/uninitialized-reads-fix'Junio C Hamano3-4/+4
Make the codebase MSAN clean. * ah/uninitialized-reads-fix: builtin/checkout--worker: zero-initialise struct to avoid MSAN complaints split-index: use oideq instead of memcmp to compare object_id's bulk-checkin: make buffer reuse more obvious and safer
2021-07-08Merge branch 'js/no-more-multimail'Junio C Hamano12-6303/+2
Remove multimail from contrib/ * js/no-more-multimail: multimail: stop shipping a copy
2021-07-08Merge branch 'js/subtree-on-windows-fix'Junio C Hamano1-4/+8
Update "git subtree" to work better on Windows. * js/subtree-on-windows-fix: subtree: fix assumption about the directory separator subtree: fix the GIT_EXEC_PATH sanity check to work on Windows
2021-07-08Merge branch 'dd/svn-test-wo-locale-a'Junio C Hamano6-22/+32
"git-svn" tests assumed that "locale -a", which is used to pick an available UTF-8 locale, is available everywhere. A knob has been introduced to allow testers to specify a suitable locale to use. * dd/svn-test-wo-locale-a: t: use user-specified utf-8 locale for testing svn
2021-07-08Merge branch 'fc/doc-default-to-upstream-config'Junio C Hamano1-1/+1
Doc clean-up. * fc/doc-default-to-upstream-config: doc: merge: mention default of defaulttoupstream
2021-07-08Merge branch 'js/trace2-discard-event-docfix'Junio C Hamano1-2/+2
Docfix. * js/trace2-discard-event-docfix: docs: fix api-trace2 doc for "too_many_files" event
2021-07-08Merge branch 'tb/complete-diff-anchored'Junio C Hamano1-0/+1
The command line completion (in contrib/) learned that "git diff" takes the "--anchored" option. * tb/complete-diff-anchored: completion: add --anchored to diff's options
2021-07-08Merge branch 'tk/partial-clone-repack-doc'Junio C Hamano1-5/+1
Docfix. * tk/partial-clone-repack-doc: Remove warning that repack only works on non-promisor packfiles
2021-07-08fetch: fix segfault in --negotiate-only without --negotiation-tip=*Ævar Arnfjörð Bjarmason2-0/+19
The recent --negotiate-only option would segfault in the call to oid_array_for_each() in negotiate_using_fetch() unless one or more --negotiation-tip=* options were provided. All of the other tests for the feature combine both, but nothing was checking this assumption, let's do that and add a test for it. Fixes a bug in 9c1e657a8fd (fetch: teach independent negotiation (no packfile), 2021-05-04). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-08l10n: Update Catalan translationJordi Mas1-342/+322
Signed-off-by: Jordi Mas <jmas@softcatala.org>
2021-07-07oidtree: a crit-bit tree for odb_loose_cacheEric Wong12-30/+478
This saves 8K per `struct object_directory', meaning it saves around 800MB in my case involving 100K alternates (half or more of those alternates are unlikely to hold loose objects). This is implemented in two parts: a generic, allocation-free `cbtree' and the `oidtree' wrapper on top of it. The latter provides allocation using alloc_state as a memory pool to improve locality and reduce free(3) overhead. Unlike oid-array, the crit-bit tree does not require sorting. Performance is bound by the key length, for oidtree that is fixed at sizeof(struct object_id). There's no need to have 256 oidtrees to mitigate the O(n log n) overhead like we did with oid-array. Being a prefix trie, it is natively suited for expanding short object IDs via prefix-limited iteration in `find_short_object_filename'. On my busy workstation, p4205 performance seems to be roughly unchanged (+/-8%). Startup with 100K total alternates with no loose objects seems around 10-20% faster on a hot cache. (800MB in memory savings means more memory for the kernel FS cache). The generic cbtree implementation does impose some extra overhead for oidtree in that it uses memcmp(3) on "struct object_id" so it wastes cycles comparing 12 extra bytes on SHA-1 repositories. I've not yet explored reducing this overhead, but I expect there are many places in our code base where we'd want to investigate this. More information on crit-bit trees: https://cr.yp.to/critbit.html Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-07oidcpy_with_padding: constify `src' argEric Wong1-1/+1
As with `oidcpy', the source struct will not be modified and this will allow an upcoming const-correct caller to use it. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-07make object_directory.loose_objects_subdir_seen a bitmapEric Wong2-4/+9
There's no point in using 8 bits per-directory when 1 bit will do. This saves us 224 bytes per object directory, which ends up being 22MB when dealing with 100K alternates. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-07avoid strlen via strbuf_addstr in link_alt_odb_entryEric Wong1-4/+4
We can save a few milliseconds (across 100K odbs) by using strbuf_addbuf() instead of strbuf_addstr() by passing `entry' as a strbuf pointer rather than a "const char *". Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-07speed up alt_odb_usable() with many alternatesEric Wong5-12/+42
With many alternates, the duplicate check in alt_odb_usable() wastes many cycles doing repeated fspathcmp() on every existing alternate. Use a khash to speed up lookups by odb->path. Since the kh_put_* API uses the supplied key without duplicating it, we also take advantage of it to replace both xstrdup() and strbuf_release() in link_alt_odb_entry() with strbuf_detach() to avoid the allocation and copy. In a test repository with 50K alternates and each of those 50K alternates having one alternate each (for a total of 100K total alternates); this speeds up lookup of a non-existent blob from over 16 minutes to roughly 2.7 seconds on my busy workstation. Note: all underlying git object directories were small and unpacked with only loose objects and no packs. Having to load packs increases times significantly. Signed-off-by: Eric Wong <e@80x24.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-07imap-send.c: use less verbose strbuf_fread() idiomÆvar Arnfjörð Bjarmason1-14/+2
When looking for things that hardcoded a non-zero "hint" parameter to strbuf_fread() I discovered that since f2561fda364 (Add git-imap-send, derived from isync 1.0.1., 2006-03-10) we've been passing a hardcoded 4096 in imap-send.c to read stdin. Since we're not doing anything unusual here let's use a less verbose pattern used in a lot of other places (the hint of "0" will default to 8192). We don't need to take a FILE * here either, so we can use "0" instead of "stdin". While we're at it improve the error message if we can't read the input to use error_errno(). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-07t7400: test failure to add submodule in tracked pathAtharva Raykar1-0/+11
Add a test to ensure failure on adding a submodule to a directory with tracked contents in the index. As we are going to refactor and port to C some parts of `git submodule add`, let's add a test to help ensure no regression is introduced. Signed-off-by: Atharva Raykar <raykar.ath@gmail.com> Mentored-by: Christian Couder <christian.couder@gmail.com> Based-on-patch-by: Shourya Shukla <periperidip@gmail.com> Mentored-by: Shourya Shukla <periperidip@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06docs: .gitignore parsing is to the top of the repoAndrew Berry1-6/+5
The current documentation reads as if .gitignore files will be parsed in every parent directory, and not until they reach a repository boundary. This clarifies the current behaviour. As well, this corrects 'toplevel' to 'top-level', matching usage for 'top-level domain'. Signed-off-by: Andrew Berry <andrew@furrypaws.ca> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06submodule--helper: remove redundant includeAtharva Raykar1-1/+0
"dir.h" should have been included only once. Signed-off-by: Atharva Raykar <raykar.ath@gmail.com> Mentored-by: Christian Couder <christian.couder@gmail.com> Mentored-by: Shourya Shukla <periperidip@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06help: convert git_cmd to page in one placeAndrei Rybak1-9/+8
Depending on the chosen format of help pages, git-help uses function show_man_page, show_info_page, or show_html_page. The first thing all three functions do is to convert given `git_cmd` to a `page` using function cmd_to_page. Move the common part of these three functions to function cmd_help to avoid code duplication. Signed-off-by: Andrei Rybak <rybak.a.v@gmail.com> Reviewed-by: Felipe Contreras <felipe.contreras@gmail.com> Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06khash: clarify that allocations never failRené Scharfe1-9/+5
We use our standard allocation functions and macros (xcalloc, ALLOC_ARRAY, REALLOC_ARRAY) in our version of khash.h. They terminate the program on error instead, so code that's using them doesn't have to handle allocation failures. Make this behavior explicit by turning kh_resize_ into a void function and removing the related unreachable error handling code. Helped-by: Jeff King <peff@peff.net> Signed-off-by: René Scharfe <l.s.r@web.de> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06t7509: avoid direct file access for writing CHERRY_PICK_HEADHan-Wen Nienhuys1-2/+2
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06t1415: avoid direct filesystem access for writing refsHan-Wen Nienhuys1-6/+4
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06t6402: preserve git exit status codeĐoàn Trần Công Danh1-68/+64
In t6402, we're checking number of files in the index and the working tree by piping the output of Git's command to "wc -l", thus losing the exit status code of git. Let's use the new helper test_stdout_line_count in order to preserve Git's exit status code. Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06t6400: preserve git ls-files exit status codeĐoàn Trần Công Danh1-8/+8
In t6400, we're checking number of files in the index and the working tree by piping the output of "git ls-files" to "wc -l", thus losing the exit status code of git. Let's use the newly introduced test_stdout_line_count in order to check the exit status code of Git's command. Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06test-lib-functions: introduce test_stdout_line_countĐoàn Trần Công Danh1-0/+26
In some tests, we're checking the number of lines in output of some commands, including but not limited to Git's command. We're doing the check by running those commands in the left side of a pipe, thus losing the exit status code of those commands. Meanwhile, we really want to check the exit status code of Git's command. Let's write the output of those commands to a temporary file, and use test_line_count separately in order to check exit status code of those commands properly. Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06ci: accelerate the checkoutJohannes Schindelin1-5/+5
By upgrading from v1 to v2 of `actions/checkout`, we avoid fetching all the tags and the complete history: v2 only fetches one revision by default. This should make things a lot faster. Note that `actions/checkout@v2` seems to be incompatible with running in containers: https://github.com/actions/checkout/issues/151. Therefore, we stick with v1 there. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06ci (vs-build): build with NO_GETTEXTDennis Ameling1-2/+2
We already build Git for Windows with `NO_GETTEXT` when compiling with GCC. Let's do the same with Visual C, too. Note that we do not technically _need_ to pass `NO_GETTEXT` explicitly in that `make artifacts-tar` invocation because we do this while `MSVC` is set (which will set `uname_S := Windows`, which in turn will set `NO_GETTEXT = YesPlease`). But it is definitely nicer to be explicit here. Signed-off-by: Dennis Ameling <dennis@dennisameling.com> Helped-by: Matthias Aßhauer <mha1993@live.de> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2021-07-06artifacts-tar: respect NO_GETTEXTJohannes Schindelin1-1/+4
We obviously do not want to bundle `.mo` files during `make artifacts-tar NO_GETTEXT=Yep`, but that was the case. To fix that, go a step beyond just fixing the symptom, and simply define the lists of `.po` and `.mo` files as empty if `NO_GETTEXT` is set. Helped-by: Matthias Aßhauer <mha1993@live.de> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>