summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-11-14Git 2.43-rc2v2.43.0-rc2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-12RelNotes: minor wording fixes in 2.43.0 release notesElijah Newren
Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-08Git 2.43-rc1v2.43.0-rc1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-08Merge branch 'tb/rev-list-unpacked-fix'Junio C Hamano
"git rev-list --unpacked --objects" failed to exclude packed non-commit objects, which has been corrected. * tb/rev-list-unpacked-fix: pack-bitmap: drop --unpacked non-commit objects from results list-objects: drop --unpacked non-commit objects from results
2023-11-08Merge branch 'ps/leakfixes'Junio C Hamano
Leakfix. * ps/leakfixes: setup: fix leaking repository format setup: refactor `upgrade_repository_format()` to have common exit shallow: fix memory leak when registering shallow roots test-bloom: stop setting up Git directory twice
2023-11-08Prepare for -rc1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-08Merge branch 'jc/test-i18ngrep'Junio C Hamano
Another step to deprecate test_i18ngrep. * jc/test-i18ngrep: tests: teach callers of test_i18ngrep to use test_grep test framework: further deprecate test_i18ngrep
2023-11-08Merge branch 'la/strvec-header-fix'Junio C Hamano
Code clean-up. * la/strvec-header-fix: strvec: drop unnecessary include of hex.h
2023-11-08Merge branch 'bc/merge-file-object-input'Junio C Hamano
"git merge-file" learns a mode to read three contents to be merged from blob objects. * bc/merge-file-object-input: merge-file: add an option to process object IDs git-merge-file doc: drop "-file" from argument placeholders
2023-11-08Merge branch 'kn/rev-list-missing-fix'Junio C Hamano
"git rev-list --missing" did not work for missing commit objects, which has been corrected. * kn/rev-list-missing-fix: rev-list: add commit object support in `--missing` option rev-list: move `show_commit()` to the bottom revision: rename bit to `do_not_die_on_missing_objects`
2023-11-08Merge branch 'an/clang-format-typofix'Junio C Hamano
Typofix. * an/clang-format-typofix: clang-format: fix typo in comment
2023-11-08Merge branch 'tb/format-pack-doc-update'Junio C Hamano
Doc update. * tb/format-pack-doc-update: Documentation/gitformat-pack.txt: fix incorrect MIDX documentation Documentation/gitformat-pack.txt: fix typo
2023-11-08Merge branch 'ps/show-ref'Junio C Hamano
Teach "git show-ref" a mode to check the existence of a ref. * ps/show-ref: t: use git-show-ref(1) to check for ref existence builtin/show-ref: add new mode to check for reference existence builtin/show-ref: explicitly spell out different modes in synopsis builtin/show-ref: ensure mutual exclusiveness of subcommands builtin/show-ref: refactor options for patterns subcommand builtin/show-ref: stop using global vars for `show_one()` builtin/show-ref: stop using global variable to count matches builtin/show-ref: refactor `--exclude-existing` options builtin/show-ref: fix dead code when passing patterns builtin/show-ref: fix leaking string buffer builtin/show-ref: split up different subcommands builtin/show-ref: convert pattern to a local variable
2023-11-08Merge branch 'ps/do-not-trust-commit-graph-blindly-for-existence'Junio C Hamano
The codepath to traverse the commit-graph learned to notice that a commit is missing (e.g., corrupt repository lost an object), even though it knows something about the commit (like its parents) from what is in commit-graph. * ps/do-not-trust-commit-graph-blindly-for-existence: commit: detect commits that exist in commit-graph but not in the ODB commit-graph: introduce envvar to disable commit existence checks
2023-11-08Merge branch 'js/ci-use-macos-13'Junio C Hamano
Replace macos-12 used at GitHub CI with macos-13. * js/ci-use-macos-13: ci: upgrade to using macos-13
2023-11-08Merge branch 'jk/chunk-bounds'Junio C Hamano
Test portability fix. * jk/chunk-bounds: t: avoid perl's pack/unpack "Q" specifier
2023-11-08Merge branch 'jk/tree-name-and-depth-limit'Junio C Hamano
Further limit tree depth max to avoid Windows build running out of the stack space. * jk/tree-name-and-depth-limit: max_tree_depth: lower it for MSVC to avoid stack overflows
2023-11-07pack-bitmap: drop --unpacked non-commit objects from resultsTaylor Blau
When performing revision queries with `--objects` and `--use-bitmap-index`, the output may incorrectly contain objects which are packed, even when the `--unpacked` option is given. This affects traversals, but also other querying operations, like `--count`, `--disk-usage`, etc. Like in the previous commit, the fix is to exclude those objects from the result set before they are shown to the user (or, in this case, before the bitmap containing the result of the traversal is enumerated and its objects listed). This is performed by a new function in pack-bitmap.c, called `filter_packed_objects_from_bitmap()`. Note that we do not have to inspect individual bits in the result bitmap, since we know that the first N (where N is the number of objects in the bitmap's pack/MIDX) bits correspond to objects which packed by definition. In other words, for an object to have a bitmap position (not in the extended index), it must appear in either the bitmap's pack or one of the packs in its MIDX. This presents an appealing optimization to us, which is that we can simply memset() the corresponding number of `eword_t`'s to zero, provided that we handle any objects which spill into the next word (but don't occupy all 64 bits of the word itself). We only have to handle objects in the bitmap's extended index. These objects may (or may not) appear in one or more pack(s). Since these objects are known to not appear in either the bitmap's MIDX or pack, they may be stored as loose, appear in other pack(s), or both. Before returning a bitmap containing the result of the traversal back to the caller, drop any bits from the extended index which appear in one or more packs. This implements the correct behavior for rev-list operations which use the bitmap index to compute their result. Co-authored-by: Jeff King <peff@peff.net> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-07list-objects: drop --unpacked non-commit objects from resultsTaylor Blau
In git-rev-list(1), we describe the `--unpacked` option as: Only useful with `--objects`; print the object IDs that are not in packs. This is true of commits, which we discard via get_commit_action(), but not of the objects they reach. So if we ask for an --objects traversal with --unpacked, we may get arbitrarily many objects which are indeed packed. I am nearly certain this behavior dates back to the introduction of `--unpacked` via 12d2a18780 ("git rev-list --unpacked" shows only unpacked commits, 2005-07-03), but I couldn't get that revision of Git to compile for me. At least as early as v2.0.0 this has been subtly broken: $ git.compile --version git version 2.0.0 $ git.compile rev-list --objects --all --unpacked 72791fe96c93f9ec5c311b8bc966ab349b3b5bbe 05713d991c18bbeef7e154f99660005311b5004d v1.0 153ed8b7719c6f5a68ce7ffc43133e95a6ac0fdb 8e4020bb5a8d8c873b25de15933e75cc0fc275df one 9200b628cf9dc883a85a7abc8d6e6730baee589c two 3e6b46e1b7e3b91acce99f6a823104c28aae0b58 unpacked.t There, only the first, third, and sixth entries are loose, with the remaining set of objects belonging to at least one pack. The implications for this are relatively benign: bare 'git repack' invocations which invoke pack-objects with --unpacked are impacted, and at worst we'll store a few extra objects that should have been excluded. Arguably changing this behavior is a backwards-incompatible change, since it alters the set of objects emitted from rev-list queries with `--objects` and `--unpacked`. But I argue that this change is still sensible, since the existing implementation deviates from clearly-written documentation. The fix here is straightforward: avoid showing any non-commit objects which are contained in packs by discarding them within list-objects.c, before they are shown to the user. Note that similar treatment for `list-objects.c::show_commit()` is not needed, since that case is already handled by `revision.c::get_commit_action()`. Co-authored-by: Jeff King <peff@peff.net> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Taylor Blau <me@ttaylorr.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-07RelNotes: improve wording of credential helper notesTodd Zullinger
Offer a slightly more verbose description of the issue fixed by 7144dee3ec (credential/libsecret: erase matching creds only, 2023-07-26) and cb626f8e5c (credential/wincred: erase matching creds only, 2023-07-26). Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-07RelNotes: minor typo fixes in 2.43.0 draftTodd Zullinger
Signed-off-by: Todd Zullinger <tmz@pobox.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-07A bit more before -rc1Junio C Hamano
2023-11-07Merge branch 'rc/trace-upload-pack'Junio C Hamano
Trace2 update. * rc/trace-upload-pack: upload-pack: add tracing for fetches
2023-11-07Merge branch 'es/bugreport-no-extra-arg'Junio C Hamano
"git bugreport" learned to complain when it received a command line argument that it will not use. * es/bugreport-no-extra-arg: bugreport: reject positional arguments t0091-bugreport: stop using i18ngrep
2023-11-07Merge branch 'js/my-first-contribution-update'Junio C Hamano
Documentation update. * js/my-first-contribution-update: Include gettext.h in MyFirstContribution tutorial
2023-11-07Merge branch 'ms/send-email-validate-fix'Junio C Hamano
"git send-email" did not have certain pieces of data computed yet when it tried to validate the outging messages and its recipient addresses, which has been sorted out. * ms/send-email-validate-fix: send-email: move validation code below process_address_list
2023-11-07Merge branch 'rs/reflog-expire-single-worktree-fix'Junio C Hamano
"git reflog expire --single-worktree" has been broken for the past 20 months or so, which has been corrected. * rs/reflog-expire-single-worktree-fix: reflog: fix expire --single-worktree
2023-11-07Merge branch 'rs/fix-arghelp'Junio C Hamano
Doc and help update. * rs/fix-arghelp: am, rebase: fix arghelp syntax of --empty
2023-11-07Merge branch 'rs/parse-options-cmdmode'Junio C Hamano
parse-options improvements for OPT_CMDMODE options. * rs/parse-options-cmdmode: am: simplify --show-current-patch handling parse-options: make CMDMODE errors more precise
2023-11-07Merge branch 'jc/grep-f-relative-to-cwd'Junio C Hamano
"cd sub && git grep -f patterns" tried to read "patterns" file at the top level of the working tree; it has been corrected to read "sub/patterns" instead. * jc/grep-f-relative-to-cwd: grep: -f <path> is relative to $cwd
2023-11-07Merge branch 'ar/submitting-patches-doc-update'Junio C Hamano
Doc update. * ar/submitting-patches-doc-update: SubmittingPatches: call gitk's command "Copy commit reference"
2023-11-07setup: fix leaking repository formatPatrick Steinhardt
While populating the `repository_format` structure may cause us to allocate memory, we do not call `clear_repository_format()` in some places and thus potentially leak memory. Fix this. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-07setup: refactor `upgrade_repository_format()` to have common exitPatrick Steinhardt
The `upgrade_repository_format()` function has multiple exit paths, which means that there is no common cleanup of acquired resources. While this isn't much of a problem right now, we're about to fix a memory leak that would require us to free the resource in every one of those exit paths. Refactor the code to have a common exit path so that the subsequent memory leak fix becomes easier to implement. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-07shallow: fix memory leak when registering shallow rootsPatrick Steinhardt
When registering shallow roots, we unset the list of parents of the to-be-registered commit if it's already been parsed. This causes us to leak memory though because we never free this list. Fix this. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-07test-bloom: stop setting up Git directory twicePatrick Steinhardt
We're setting up the Git directory twice in the `test-tool bloom` helper, once at the beginning of `cmd_bloom()` and once in the local subcommand implementation `get_bloom_filter_for_commit()`. This can lead to memory leaks as we'll overwrite variables of `the_repository` with newly allocated data structures. On top of that it's simply unnecessary. Fix this by only setting up the Git directory once. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-04t: avoid perl's pack/unpack "Q" specifierJeff King
The perl script introduced by 86b008ee61 (t: add library for munging chunk-format files, 2023-10-09) uses pack("Q") and unpack("Q") to read and write 64-bit values ("quadwords" in perl parlance) from the on-disk chunk files. However, some builds of perl may not support 64-bit integers at all, and throw an exception here. While some 32-bit platforms may still support 64-bit integers in perl (such as our linux32 CI environment), others reportedly don't (the NonStop 32-bit builds). We can work around this by treating the 64-bit values as two 32-bit values. We can't ever combine them into a single 64-bit value, but in practice this is OK. These are representing file offsets, and our files are much smaller than 4GB. So the upper half of the 64-bit value will always be 0. We can just introduce a few helper functions which perform the translation and double-check our assumptions. Reported-by: Randall S. Becker <randall.becker@nexbridge.ca> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-03ci: upgrade to using macos-13Johannes Schindelin
In April, GitHub announced that the `macos-13` pool is available: https://github.blog/changelog/2023-04-24-github-actions-macos-13-is-now-available/. It is only a matter of time until the `macos-12` pool is going away, therefore we should switch now, without pressure of a looming deadline. Since the `macos-13` runners no longer include Python2, we also drop specifically testing with Python2 and switch uniformly to Python3, see https://github.com/actions/runner-images/blob/HEAD/images/macos/macos-13-Readme.md for details about the software available on the `macos-13` pool's runners. Also, on macOS 13, Homebrew seems to install a `gcc@9` package that no longer comes with a regular `unistd.h` (there seems only to be a `ssp/unistd.h`), and hence builds would fail with: In file included from base85.c:1: git-compat-util.h:223:10: fatal error: unistd.h: No such file or directory 223 | #include <unistd.h> | ^~~~~~~~~~ compilation terminated. The reason why we install GCC v9.x explicitly is historical, and back in the days it was because it was the _newest_ version available via Homebrew: 176441bfb58 (ci: build Git with GCC 9 in the 'osx-gcc' build job, 2019-11-27). To reinstate the spirit of that commit _and_ to fix that build failure, let's switch to the now-newest GCC version: v13.x. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-03strvec: drop unnecessary include of hex.hLinus Arver
In 41771fa435 (cache.h: remove dependence on hex.h; make other files include it explicitly, 2023-02-24) we added this as part of a larger mechanical refactor. But strvec doesn't actually depend on hex.h, so remove it. Signed-off-by: Linus Arver <linusa@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-02tests: teach callers of test_i18ngrep to use test_grepJunio C Hamano
They are equivalents and the former still exists, so as long as the only change this commit makes are to rewrite test_i18ngrep to test_grep, there won't be any new bug, even if there still are callers of test_i18ngrep remaining in the tree, or when merged to other topics that add new uses of test_i18ngrep. This patch was produced more or less with git grep -l -e 'test_i18ngrep ' 't/t[0-9][0-9][0-9][0-9]-*.sh' | xargs perl -p -i -e 's/test_i18ngrep /test_grep /' and a good way to sanity check the result yourself is to run the above in a checkout of c4603c1c (test framework: further deprecate test_i18ngrep, 2023-10-31) and compare the resulting working tree contents with the result of applying this patch to the same commit. You'll see that test_i18ngrep in a few t/lib-*.sh files corrected, in addition to the manual reproduction. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-02Git 2.43-rc0v2.43.0-rc0Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-02Git 2.42.1v2.42.1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-11-02Merge branch 'ms/doc-push-fix' into maint-2.42Junio C Hamano
Docfix. * ms/doc-push-fix: git-push doc: more visibility for -q option
2023-11-02Merge branch 'jc/commit-new-underscore-index-fix' into maint-2.42Junio C Hamano
Message fix. * jc/commit-new-underscore-index-fix: commit: do not use cryptic "new_index" in end-user facing messages
2023-11-02Merge branch 'wx/merge-ort-comment-typofix' into maint-2.42Junio C Hamano
Typofix. * wx/merge-ort-comment-typofix: merge-ort.c: fix typo 'neeed' to 'needed'
2023-11-02Merge branch 'ps/git-repack-doc-fixes' into maint-2.42Junio C Hamano
Doc updates. * ps/git-repack-doc-fixes: doc/git-repack: don't mention nonexistent "--unpacked" option doc/git-repack: fix syntax for `-g` shorthand option
2023-11-02Merge branch 'ni/die-message-fix-for-git-add' into maint-2.42Junio C Hamano
Message updates. * ni/die-message-fix-for-git-add: builtin/add.c: clean up die() messages
2023-11-02Merge branch 'jc/am-doc-whitespace-action-fix' into maint-2.42Junio C Hamano
Docfix. * jc/am-doc-whitespace-action-fix: am: align placeholder for --whitespace option with apply
2023-11-02Merge branch 'jc/update-list-references-to-lore' into maint-2.42Junio C Hamano
Doc update. * jc/update-list-references-to-lore: doc: update list archive reference to use lore.kernel.org
2023-11-02Merge branch 'ps/rewritten-is-per-worktree-doc' into maint-2.42Junio C Hamano
Doc update. * ps/rewritten-is-per-worktree-doc: doc/git-worktree: mention "refs/rewritten" as per-worktree refs
2023-11-02Merge branch 'sn/cat-file-doc-update' into maint-2.42Junio C Hamano
"git cat-file" documentation updates. * sn/cat-file-doc-update: doc/cat-file: make synopsis and description less confusing