summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorLines
30 hoursThe 15th batchHEADmastermainJunio C Hamano-0/+24
Signed-off-by: Junio C Hamano <gitster@pobox.com>
30 hoursMerge branch 'sp/send-email-validate-charset'Junio C Hamano-4/+23
"git send-email" has learned to be a bit more careful when it accepts charset to use from the end-user, to avoid 'y' (mistaken 'yes' when expecting a charset like 'UTF-8') and other nonsense. * sp/send-email-validate-charset: send-email: validate charset name in 8bit encoding prompt
30 hoursMerge branch 'dt/send-email-client-cert'Junio C Hamano-11/+71
"git send-email" learns to support use of client-side certificates. * dt/send-email-client-cert: send-email: add client certificate options
30 hoursMerge branch 'ps/ci-gitlab-prepare-for-macos-14-deprecation'Junio C Hamano-38/+48
Move gitlab CI from macOS 14 images that are being deprecated. * ps/ci-gitlab-prepare-for-macos-14-deprecation: gitlab-ci: update to macOS 15 images meson: detect broken iconv that requires ICONV_RESTART_RESET meson: simplify iconv-emits-BOM check
30 hoursMerge branch 'ag/send-email-sasl-with-host-port'Junio C Hamano-0/+2
"git send-email" learns to pass hostname/port to Authen::SASL module. * ag/send-email-sasl-with-host-port: send-email: pass smtp hostname and port to Authen::SASL
30 hoursMerge branch 'ss/t9123-setup-inside-test-expect-success'Junio C Hamano-6/+9
Test clean-up. * ss/t9123-setup-inside-test-expect-success: t9123: use test_when_finished for cleanup
30 hoursMerge branch 'sk/oidmap-clear-with-custom-free-func'Junio C Hamano-6/+88
A bit of OIDmap API enhancement and cleanup. * sk/oidmap-clear-with-custom-free-func: builtin/rev-list: migrate missing_objects cleanup to oidmap_clear_with_free() oidmap: make entry cleanup explicit in oidmap_clear
30 hoursMerge branch 'jt/doc-submitting-patches-study-before-sending'Junio C Hamano-0/+13
Doc update for our contributors. * jt/doc-submitting-patches-study-before-sending: Documentation: extend guidance for submitting patches
30 hoursMerge branch 'os/doc-custom-subcommand-on-path'Junio C Hamano-0/+8
The way end-users can add their own "git <cmd>" subcommand by storing "git-<cmd>" in a directory on their $PATH has not been documented clearly, which has been corrected. * os/doc-custom-subcommand-on-path: doc: add information regarding external commands
30 hoursMerge branch 'ss/t3700-modernize'Junio C Hamano-18/+31
Test clean-up. * ss/t3700-modernize: t3700: use test_grep helper for better diagnostics t3700: avoid suppressing git's exit code
30 hoursMerge branch 'lp/doc-gitprotocol-pack-fixes'Junio C Hamano-8/+10
Doc update. * lp/doc-gitprotocol-pack-fixes: doc: gitprotocol-pack: normalize italic formatting doc: gitprotocol-pack: improve paragraphs structure doc: gitprotocol-pack: fix pronoun-antecedent agreement
30 hoursMerge branch 'kj/path-micro-code-cleanup'Junio C Hamano-7/+6
Code clean-up. * kj/path-micro-code-cleanup: path: remove redundant function calls path: use size_t for dir_prefix length path: remove unused header
30 hoursMerge branch 'bc/sha1-256-interop-02'Junio C Hamano-81/+1734
The code to maintain mapping between object names in multiple hash functions is being added, written in Rust. * bc/sha1-256-interop-02: object-file-convert: always make sure object ID algo is valid rust: add a small wrapper around the hashfile code rust: add a new binary object map format rust: add functionality to hash an object rust: add a build.rs script for tests rust: fix linking binaries with cargo hash: expose hash context functions to Rust write-or-die: add an fsync component for the object map csum-file: define hashwrite's count as a uint32_t rust: add additional helpers for ObjectID hash: add a function to look up hash algo structs rust: add a hash algorithm abstraction rust: add a ObjectID struct hash: use uint32_t for object_id algorithm conversion: don't crash when no destination algo repository: require Rust support for interoperability
3 daysThe 14th batchJunio C Hamano-0/+26
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 daysMerge branch 'jh/alias-i18n-fixes'Junio C Hamano-6/+25
Further update to the i18n alias support to avoid regressions. * jh/alias-i18n-fixes: doc: fix list continuation in alias.adoc git, help: fix memory leaks in alias listing alias: treat empty subsection [alias ""] as plain [alias] doc: fix list continuation in alias subsection example
3 daysMerge branch 'pt/fsmonitor-watchman-sample-fix'Junio C Hamano-21/+5
Fix typo-induced breakages in fsmonitor-watchman sample hook. * pt/fsmonitor-watchman-sample-fix: fsmonitor-watchman: fix variable reference and remove redundant code
3 daysMerge branch 'mm/diff-no-index-find-object'Junio C Hamano-0/+12
"git diff --no-index --find-object=<object-name>" outside a repository of course wouldn't be able to find the object and died while parsing the command line, which is made to die in a bit more user-friendly way. * mm/diff-no-index-find-object: diff: fix crash with --find-object outside repository
3 daysMerge branch 'ps/ci-reduce-gitlab-envsize'Junio C Hamano-0/+4
CI fix. * ps/ci-reduce-gitlab-envsize: ci: unset GITLAB_FEATURES envvar to not bust xargs(1) limits
3 daysMerge branch 'fp/t3310-test-path-is-helpers'Junio C Hamano-6/+6
Test clean-up. * fp/t3310-test-path-is-helpers: t3310: replace test -f/-d with test_path_is_file/test_path_is_dir
3 daysMerge branch 'ss/test-that-that-typofix'Junio C Hamano-1/+1
Typofix in t/. * ss/test-that-that-typofix: t: fix "that that" typo in lib-unicode-nfc-nfd.sh
3 daysMerge branch 'rs/parse-options-duplicated-long-options'Junio C Hamano-2/+23
The parse-options API learned to notice an options[] array with duplicated long options. * rs/parse-options-duplicated-long-options: parseopt: check for duplicate long names and numerical options pack-objects: remove duplicate --stdin-packs definition
3 daysMerge branch 'ar/config-hooks'Junio C Hamano-62/+990
Allow hook commands to be defined (possibly centrally) in the configuration files, and run multiple of them for the same hook event. * ar/config-hooks: hook: add -z option to "git hook list" hook: allow out-of-repo 'git hook' invocations hook: allow event = "" to overwrite previous values hook: allow disabling config hooks hook: include hooks from the config hook: add "git hook list" command hook: run a list of hooks to prepare for multihook support hook: add internal state alloc/free callbacks
3 daysMerge branch 'kh/format-patch-noprefix-is-boolean'Junio C Hamano-1/+37
The configuration variable format.noprefix did not behave as a proper boolean variable, which has now been fixed and documented. * kh/format-patch-noprefix-is-boolean: doc: diff-options.adoc: make *.noprefix split translatable doc: diff-options.adoc: show format.noprefix for format-patch format-patch: make format.noprefix a boolean
4 daysThe 13th batchJunio C Hamano-0/+14
Signed-off-by: Junio C Hamano <gitster@pobox.com>
4 daysMerge branch 'jk/repo-structure-cleanup'Junio C Hamano-1/+0
Code clean-up. * jk/repo-structure-cleanup: repo: remove unnecessary variable shadow
4 daysMerge branch 'lp/diff-stat-utf8-display-width-fix'Junio C Hamano-8/+36
"git log --graph --stat" did not count the display width of colored graph part of its own output correctly, which has been corrected. * lp/diff-stat-utf8-display-width-fix: t4052: test for diffstat width when prefix contains ANSI escape codes diff: handle ANSI escape codes in prefix when calculating diffstat width
4 daysMerge branch 'cs/add-skip-submodule-ignore-all'Junio C Hamano-19/+235
"git add <submodule>" has been taught to honor submodule.<name>.ignore that is set to "all" (and requires "git add -f" to override it). * cs/add-skip-submodule-ignore-all: Documentation: update add --force option + ignore=all config tests: fix existing tests when add an ignore=all submodule tests: t2206-add-submodule-ignored: ignore=all and add --force tests read-cache: submodule add need --force given ignore=all configuration read-cache: update add_files_to_cache take param ignored_too
4 daysMerge branch 'ps/refs-for-each'Junio C Hamano-361/+457
Code refactoring around refs-for-each-* API functions. * ps/refs-for-each: refs: replace `refs_for_each_fullref_in()` refs: replace `refs_for_each_namespaced_ref()` refs: replace `refs_for_each_glob_ref()` refs: replace `refs_for_each_glob_ref_in()` refs: replace `refs_for_each_rawref_in()` refs: replace `refs_for_each_rawref()` refs: replace `refs_for_each_ref_in()` refs: improve verification for-each-ref options refs: generalize `refs_for_each_fullref_in_prefixes()` refs: generalize `refs_for_each_namespaced_ref()` refs: speed up `refs_for_each_glob_ref_in()` refs: introduce `refs_for_each_ref_ext` refs: rename `each_ref_fn` refs: rename `do_for_each_ref_flags` refs: move `do_for_each_ref_flags` further up refs: move `refs_head_ref_namespaced()` refs: remove unused `refs_for_each_include_root_ref()`
4 daysMerge branch 'ar/run-command-hook-take-2'Junio C Hamano-279/+750
Use the hook API to replace ad-hoc invocation of hook scripts via the run_command() API. * ar/run-command-hook-take-2: builtin/receive-pack: avoid spinning no-op sideband async threads receive-pack: convert receive hooks to hook API receive-pack: convert update hooks to new API run-command: poll child input in addition to output hook: add jobs option reference-transaction: use hook API instead of run-command transport: convert pre-push to hook API hook: allow separate std[out|err] streams hook: convert 'post-rewrite' hook in sequencer.c to hook API hook: provide stdin via callback run-command: add stdin callback for parallelization run-command: add helper for pp child states t1800: add hook output stream tests
4 days.mailmap: update email address for Tian YuchenTian Yuchen-0/+1
Map my old Gmail address to my new custom address in .mailmap. Signed-off-by: Tian Yuchen <a3205153416@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
7 daysDocumentation: extend guidance for submitting patchesJustin Tobler-0/+13
Before submitting patches on the mailing list, it is often a good idea to check for previous related discussions or if similar work is already in progress. This enables better coordination amongst contributors and could avoid duplicating work. Additionally, it is often recommended to give reviewers some time to reply to a patch series before sending new versions. This helps collect broader feedback and reduces unnecessary churn from rapid rerolls. Document this guidance in "Documentation/SubmittingPatches" accordingly. Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 dayst9123: use test_when_finished for cleanupSiddharth Shrimali-6/+9
Move the setup logic into a 'test_expect_success' block. This ensures that the code is properly tracked by the test harness. Additionally, we use the 'test_when_finished' helper at the start of the block to ensure that the 'import' directory is removed even if the test fails. This is cleaner than the previous manual 'rm -rf import' approach. Signed-off-by: Siddharth Shrimali <r.siddharth.shrimali@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 dayssend-email: pass smtp hostname and port to Authen::SASLAditya Garg-0/+2
Starting from version 2.2000, Authen::SASL supports passing the SMTP server hostname and port to the OAUTHBEARER string passed via SMTP AUTH. Add support for the same in git-send-email. It's safe to add the new parameters unconditionally as older versions of Authen::SASL will simply ignore them without any error. Something similar is already being done for the authname parameter, which is not supported by every authentication mechanism. This can be understood as declaring a variable but not using at all. Link: https://metacpan.org/pod/Authen::SASL::Perl::OAUTHBEARER Signed-off-by: Aditya Garg <gargaditya08@live.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 daysgitlab-ci: update to macOS 15 imagesPatrick Steinhardt-3/+3
The macos-14-xcode-15 images for GitLab's macOS runners have been deprecated. Update to macOS 15, which is our current stable version. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 daysmeson: detect broken iconv that requires ICONV_RESTART_RESETPatrick Steinhardt-0/+26
In d0cec08d70 (utf8.c: prepare workaround for iconv under macOS 14/15, 2026-01-12) we have introduced a new workaround for a broken version of libiconv on macOS. This workaround has for now only been wired up for our Makefile, so using Meson with such a broken version will fail. We can rather easily detect the broken behaviour. Some encodings have different modes that can be switched to via an escape sequence. In the case of ISO-2022-JP this can be done via "<Esc>$B" and "<Esc>(J" to switch between ASCII and JIS modes. The bug now triggers when one does multiple calls to iconv(3p) to convert a string piece by piece, where the first call enters JIS mode. The second call forgets about the fact that it is still in JIS mode, and consequently it will incorrectly treat the input as ASCII, and thus the produced output is of course garbage. Wire up a test that exercises this in Meson and, if it fails, set the `ICONV_RESTART_RESET` define. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 daysmeson: simplify iconv-emits-BOM checkPatrick Steinhardt-36/+20
Simplify the iconv-emits-BOM check that we have in Meson a bit by: - Dropping useless variables. - Casting the `inpos` pointer to `void *` instead of using a typedef that depends on whether or not we use an old iconv library. This overall condenses the code signficantly and makes it easier to follow. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 daysbuiltin/rev-list: migrate missing_objects cleanup to oidmap_clear_with_free()Seyi Kufoiji-3/+12
As part of the conversion away from oidmap_clear(), switch the missing_objects map to use oidmap_clear_with_free(). missing_objects stores struct missing_objects_map_entry instances, which own an xstrdup()'d path string in addition to the container struct itself. Previously, rev-list manually freed entry->path before calling oidmap_clear(&missing_objects, true). Introduce a dedicated free callback and pass it to oidmap_clear_with_free(), consolidating entry teardown into a single place and making cleanup semantics explicit. Signed-off-by: Seyi Kuforiji <kuforiji98@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 daysoidmap: make entry cleanup explicit in oidmap_clearSeyi Kufoiji-3/+76
Replace oidmap's use of hashmap_clear_() and layout-dependent freeing with an explicit iteration and optional free callback. This removes reliance on struct layout assumptions while keeping the existing API intact. Add tests for oidmap_clear_with_free behavior. test_oidmap__clear_with_free_callback verifies that entries are freed when a callback is provided, while test_oidmap__clear_without_free_callback verifies that entries are not freed when no callback is given. These tests ensure the new clear implementation behaves correctly and preserves ownership semantics. Signed-off-by: Seyi Kuforiji <kuforiji98@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 daysThe 12th batchJunio C Hamano-1/+10
Signed-off-by: Junio C Hamano <gitster@pobox.com>
8 daysMerge branch 'ps/fsck-stream-from-the-right-object-instance'Junio C Hamano-43/+114
"fsck" iterates over packfiles and its access to pack data caused the list to be permuted, which caused it to loop forever; the code to access pack data by "fsck" has been updated to avoid this. * ps/fsck-stream-from-the-right-object-instance: pack-check: fix verification of large objects packfile: expose function to read object stream for an offset object-file: adapt `stream_object_signature()` to take a stream t/helper: improve "genrandom" test helper
8 daysMerge branch 'ob/core-attributesfile-in-repository'Junio C Hamano-42/+111
The core.attributesfile is intended to be set per repository, but were kept track of by a single global variable in-core, which has been corrected by moving it to per-repository data structure. * ob/core-attributesfile-in-repository: environment: move "branch.autoSetupMerge" into `struct repo_config_values` environment: stop using core.sparseCheckout globally environment: stop storing `core.attributesFile` globally
8 daysMerge branch 'pt/t7527-flake-workaround'Junio C Hamano-38/+41
Test fixup. * pt/t7527-flake-workaround: t7527: fix flaky fsmonitor event tests with retry logic
9 daysThe 11th batchJunio C Hamano-6/+41
Signed-off-by: Junio C Hamano <gitster@pobox.com>
9 daysMerge branch 'cx/fetch-display-ubfix'Junio C Hamano-1/+1
Undefined-behaviour fix in "git fetch". * cx/fetch-display-ubfix: fetch: fix wrong evaluation order in URL trailing-slash trimming
9 daysMerge branch 'ds/config-list-with-type'Junio C Hamano-88/+331
"git config list" is taught to show the values interpreted for specific type with "--type=<X>" option. * ds/config-list-with-type: config: use an enum for type config: restructure format_config() config: format colors quietly color: add color_parse_quietly() config: format expiry dates quietly config: format paths gently config: format bools or strings in helper config: format bools or ints gently config: format bools gently config: format int64s gently config: make 'git config list --type=<X>' work config: add 'gently' parameter to format_config() config: move show_all_config()
9 daysMerge branch 'en/merge-ort-almost-wo-the-repository'Junio C Hamano-47/+61
Mark the marge-ort codebase to prevent more uses of the_repository from getting added. * en/merge-ort-almost-wo-the-repository: replay: prevent the_repository from coming back merge-ort: prevent the_repository from coming back merge-ort: replace the_hash_algo with opt->repo->hash_algo merge-ort: replace the_repository with opt->repo merge-ort: pass repository to write_tree() merge,diff: remove the_repository check before prefetching blobs
9 daysMerge branch 'lo/repo-leftover-bits'Junio C Hamano-31/+44
Clean-up the code around "git repo info" command. * lo/repo-leftover-bits: Documentation/git-repo: capitalize format descriptions Documentation/git-repo: replace 'NUL' with '_NUL_' t1901: adjust nul format output instead of expected value t1900: rename t1900-repo to t1900-repo-info repo: rename struct field to repo_info_field repo: replace get_value_fn_for_key by get_repo_info_field repo: rename repo_info_fields to repo_info_field CodingGuidelines: instruct to name arrays in singular
9 daysMerge branch 'ps/maintenance-geometric-default'Junio C Hamano-12/+64
"git maintenance" starts using the "geometric" strategy by default. * ps/maintenance-geometric-default: builtin/maintenance: use "geometric" strategy by default t7900: prepare for switch of the default strategy t6500: explicitly use "gc" strategy t5510: explicitly use "gc" strategy t5400: explicitly use "gc" strategy t34xx: don't expire reflogs where it matters t: disable maintenance where we verify object database structure t: fix races caused by background maintenance
9 daysMerge branch 'jr/apply-directory-normalize'Junio C Hamano-0/+45
"git apply --directory=./un/../normalized/path" now normalizes the given path before using it. * jr/apply-directory-normalize: apply: normalize path in --directory argument
9 daysMerge branch 'sp/tree-diff-wo-the-repository'Junio C Hamano-4/+2
The last uses of the_repository in "tree-diff.c" have been eradicated. * sp/tree-diff-wo-the-repository: tree-diff: remove the usage of the_hash_algo global