summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-01-26Git 2.53-rc2v2.53.0-rc2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-25Revert "Merge branch 'cs/rebased-subtree-split'"Junio C Hamano
This reverts commit 79e3055baba32e2952e6e8994cdcd4fc145ba7f0, reversing changes made to 9813aace1e52765e01e688672cdcdcbe25336ec7. Regresison report https://lore.kernel.org/git/755578cb-07e0-4b40-aa90-aacf4d45ccaa@heusel.eu/
2026-01-25Merge branch 'master' of https://github.com/j6t/git-guiJunio C Hamano
* 'master' of https://github.com/j6t/git-gui: git-gui: mark *.po files at any directory level as UTF-8 git-gui i18n: Update Bulgarian translation (558t) git-gui i18n: Update Bulgarian translation (557t)
2026-01-25git-gui: mark *.po files at any directory level as UTF-8Johannes Sixt
When a commit is viewed in Gitk that changes a file in po/glossary, the patch text shows mojibake instead of correctly decoded UTF-8 text. Gitk retrieves the encoding attribute to decide how to treat the bytes that make up the patch text. There is an attribute definition that all files are US-ASCII, and a later attribute definition overrides this. But the override, which specifies UTF-8, applies only to *.po files in directory po/ and does not apply to subdirectories. Widen the pattern to apply to all directory levels. Signed-off-by: Johannes Sixt <j6t@kdbg.org>
2026-01-25Merge branch 'master' of github.com:alshopov/git-guiJohannes Sixt
* 'master' of github.com:alshopov/git-gui: git-gui i18n: Update Bulgarian translation (558t)
2026-01-24git-gui i18n: Update Bulgarian translation (558t)Alexander Shopov
- Translate new string (558t) - Add graves for disambiguation - Improve glossary translation (96t) and synchonize with git Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2026-01-24Merge branch 'master' of github.com:alshopov/git-guiJohannes Sixt
* 'master' of github.com:alshopov/git-gui: git-gui i18n: Update Bulgarian translation (557t) Signed-off-by: Johannes Sixt <j6t@kdbg.org>
2026-01-23A bit more before -rc2Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-23Merge branch 'dk/replay-doc-omit-irrelevant-rev-list-options'Junio C Hamano
Documentation clean-up. * dk/replay-doc-omit-irrelevant-rev-list-options: lint-gitlink: preemptively ignore all /ifn?def|endif/ macros replay: drop rev-list formatting options from manual
2026-01-23Merge branch 'js/symlink-windows'Junio C Hamano
Upstream symbolic link support on Windows from Git-for-Windows. * js/symlink-windows: mingw: special-case index entries for symlinks with buggy size mingw: emulate `stat()` a little more faithfully mingw: try to create symlinks without elevated permissions mingw: add support for symlinks to directories mingw: implement basic `symlink()` functionality (file symlinks only) mingw: implement `readlink()` mingw: allow `mingw_chdir()` to change to symlink-resolved directories mingw: support renaming symlinks mingw: handle symlinks to directories in `mingw_unlink()` mingw: add symlink-specific error codes mingw: change default of `core.symlinks` to false mingw: factor out the retry logic mingw: compute the correct size for symlinks in `mingw_lstat()` mingw: teach dirent about symlinks mingw: let `mingw_lstat()` error early upon problems with reparse points mingw: drop the separate `do_lstat()` function mingw: implement `stat()` with symlink support mingw: don't call `GetFileAttributes()` twice in `mingw_lstat()`
2026-01-23Merge branch 'pw/mailmap-self'Junio C Hamano
Unify entries in .mailmap file for Phillip Wood. * pw/mailmap-self: mailmap: add an entry for Phillip Wood
2026-01-23Merge branch 'js/ci-leak-skip-svn'Junio C Hamano
Dscho observed that SVN tests are taking too much time in CI leak checking tasks, but most time is spent not in our code but in libsvn code (which happen to be written in Perl), whose leaks have little value to discover for us. Skip SVN, P4, and CVS tests in the leak checking tasks. * js/ci-leak-skip-svn: ci: skip CVS and P4 tests in leaks job, too ci(*-leaks): skip the git-svn tests to save time
2026-01-23Merge branch 'jx/build-options-gettext'Junio C Hamano
"git bugreport" and "git version --build-options" learned to include use of 'gettext' feature, to make it easier to diagnose problems around l10n. * jx/build-options-gettext: help: report on whether or not gettext is enabled
2026-01-23Merge branch 'ty/t1005-test-path-is-helpers'Junio C Hamano
Test clean-up. * ty/t1005-test-path-is-helpers: t1005: modernize "! test -f" to "test_path_is_missing"
2026-01-23Merge branch 'rj/cygwin-test-fixes-for-2.53'Junio C Hamano
Test fixup. * rj/cygwin-test-fixes-for-2.53: t0610-reftable-basics: mitigate a flaky test on cygwin t9700/test.pl: fix path type expectation on cygwin
2026-01-23Merge branch 'sb/doc-update-ref-markup-fix'Junio C Hamano
Doc mark-up fix. * sb/doc-update-ref-markup-fix: doc: fix `update-ref` `symref-create` formatting
2026-01-23Merge branch 'kh/mailmap-avila'Junio C Hamano
* kh/mailmap-avila: .mailmap: fix and expand mappings for Jean-Noël Avila
2026-01-23git-gui i18n: Update Bulgarian translation (557t)Alexander Shopov
Fix the meaning of a string Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2026-01-21A few on top of -rc1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-21Merge branch 'rs/tree-wo-the-repository'Junio C Hamano
Remove implicit reliance on the_repository global in the APIs around tree objects and make it explicit which repository to work in. * rs/tree-wo-the-repository: cocci: remove obsolete the_repository rules cocci: convert parse_tree functions to repo_ variants tree: stop using the_repository tree: use repo_parse_tree() path-walk: use repo_parse_tree_gently() pack-bitmap-write: use repo_parse_tree() delta-islands: use repo_parse_tree() bloom: use repo_parse_tree() add-interactive: use repo_parse_tree_indirect() tree: add repo_parse_tree*() environment: move access to core.maxTreeDepth into repo settings
2026-01-21Merge branch 'ps/config-doc-get-urlmatch-fix'Junio C Hamano
Docfix. * ps/config-doc-get-urlmatch-fix: Documentation/config: fix replacement for --get-urlmatch
2026-01-21Merge branch 'tb/midx-write-corrupt-checksum-fix'Junio C Hamano
The logic that avoids reusing MIDX files with a wrong checksum was broken, which has been corrected. * tb/midx-write-corrupt-checksum-fix: midx-write.c: assume checksum-invalid MIDXs require an update t/t5319-multi-pack-index.sh: drop early 'test_done'
2026-01-21Merge branch 'ps/geometric-repacking-with-promisor-remotes'Junio C Hamano
"git repack --geometric" did not work with promisor packs, which has been corrected. * ps/geometric-repacking-with-promisor-remotes: builtin/repack: handle promisor packs with geometric repacking repack-promisor: extract function to remove redundant packs repack-promisor: extract function to finalize repacking repack-geometry: extract function to compute repacking split builtin/pack-objects: exclude promisor objects with "--stdin-packs"
2026-01-21.mailmap: fix and expand mappings for Jean-Noël AvilaKristoffer Haugsbakk
The latest release candidate notes say that there is a new contributor: Jean-Noël Avila via GitGitGadget, ... But this is a familiar face, just in a G.G. Gadget trench coat. Also map the rest of the idents in the history. Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-21Git 2.53-rc1v2.53.0-rc1Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-21Merge branch 'js/prep-symlink-windows'Junio C Hamano
Further preparation to upstream symbolic link support on Windows. * js/prep-symlink-windows: trim_last_path_component(): avoid hard-coding the directory separator strbuf_readlink(): support link targets that exceed 2*PATH_MAX strbuf_readlink(): avoid calling `readlink()` twice in corner-cases init: do parse _all_ core.* settings early mingw: do resolve symlinks in `getcwd()`
2026-01-21Merge branch 'ps/read-object-info-improvements'Junio C Hamano
The object-info API has been cleaned up. * ps/read-object-info-improvements: packfile: drop repository parameter from `packed_object_info()` packfile: skip unpacking object header for disk size requests packfile: disentangle return value of `packed_object_info()` packfile: always populate pack-specific info when reading object info packfile: extend `is_delta` field to allow for "unknown" state packfile: always declare object info to be OI_PACKED object-file: always set OI_LOOSE when reading object info
2026-01-21Merge branch 'ps/packfile-store-in-odb-source'Junio C Hamano
The packfile_store data structure is moved from object store to odb source. * ps/packfile-store-in-odb-source: packfile: move MIDX into packfile store packfile: refactor `find_pack_entry()` to work on the packfile store packfile: inline `find_kept_pack_entry()` packfile: only prepare owning store in `packfile_store_prepare()` packfile: only prepare owning store in `packfile_store_get_packs()` packfile: move packfile store into object source packfile: refactor misleading code when unusing pack windows packfile: refactor kept-pack cache to work with packfile stores packfile: pass source to `prepare_pack()` packfile: create store via its owning source
2026-01-21Merge branch 'kt/http-backend-errors'Junio C Hamano
Some error messages from the http transport layer lacked the terminating newline, which has been corrected. * kt/http-backend-errors: http-backend: write newlines to stderr when responding with errors
2026-01-21Merge branch 'ps/t1410-cleanup'Junio C Hamano
Test clean-up. * ps/t1410-cleanup: t1410: use test helpers in reflog rewind test
2026-01-21Merge branch 'ps/ref-consistency-checks'Junio C Hamano
Update code paths that check data integrity around refs subsystem. cf. <CAOLa=ZShPP3BPXa=YnC-vuX4zF=pUTFdUidZwOdna8bfVTNM9w@mail.gmail.com> * ps/ref-consistency-checks: builtin/fsck: drop `fsck_head_link()` builtin/fsck: move generic HEAD check into `refs_fsck()` builtin/fsck: move generic object ID checks into `refs_fsck()` refs/reftable: introduce generic checks for refs refs/reftable: fix consistency checks with worktrees refs/reftable: extract function to retrieve backend for worktree refs/reftable: adapt includes to become consistent refs/files: introduce function to perform normal ref checks refs/files: extract generic symref target checks fsck: drop unused fields from `struct fsck_ref_report` refs/files: perform consistency checks for root refs refs/files: improve error handling when verifying symrefs refs/files: extract function to check single ref refs/files: remove useless indirection refs/files: remove `refs_check_dir` parameter refs/files: move fsck functions into global scope refs/files: simplify iterating through root refs
2026-01-21Merge branch 'tb/macos-iconv-workarounds'Junio C Hamano
The iconv library on macOS fails to correctly handle stateful ISO/IEC 2022 encoded strings. Work it around instead of replacing it wholesale from homebrew. * tb/macos-iconv-workarounds: utf8.c: enable workaround for iconv under macOS 14/15 utf8.c: prepare workaround for iconv under macOS 14/15
2026-01-21Merge branch 'cs/rebased-subtree-split'Junio C Hamano
The split command in "git subtree" (in contrib/) has been taught to deal better with rebased history. * cs/rebased-subtree-split: contrib/subtree: detect rewritten subtree commits
2026-01-21Merge branch 'je/doc-reset'Junio C Hamano
Documentation updates. * je/doc-reset: doc: git-reset: clarify `git reset <pathspec>` doc: git-reset: clarify `git reset [mode]` doc: git-reset: clarify intro doc: git-reset: reorder the forms
2026-01-21Merge branch 'en/fsck-snapshot-ref-state'Junio C Hamano
"git fsck" used inconsistent set of refs to show a confused warning, which has been corrected. * en/fsck-snapshot-ref-state: fsck: snapshot default refs before object walk
2026-01-21lint-gitlink: preemptively ignore all /ifn?def|endif/ macrosJean-Noël Avila
Instead of testing if the macro name is ifn?def:: as if it were a inline macro, it is faster and safer to just ignore such block macro lines before hand. Signed-off-by: Jean-Noël Avila <jn.avila@free.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-20replay: drop rev-list formatting options from manualD. Ben Knoble
The rev-list options in our manuals are quite long; git-replay's manual is no exception. Since replay doesn't use the formatting options at all (it has its own output format), drop them. This is the first time we have needed compound tests [1] for if[n]def in our documentation: git grep '^ifn\?def::' Documentation | grep '[,+]' [1]: https://docs.asciidoctor.org/asciidoc/latest/directives/ifdef-ifndef/ For both ifdef and ifndef, the "," takes on the intuitive meaning: - ifdef: if any of the listed attributes are set… - ifndef: unless any of the listed attributes are set (Use "+" for "all".) Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-20mailmap: add an entry for Phillip WoodPhillip Wood
While all my commits appear under the same address, other addresses appear in some commit trailers. Map those addresses to the canonical one. Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-19ci: skip CVS and P4 tests in leaks job, tooJunio C Hamano
Looking at the CI logs, the p4 and cvs tests account for another 24 minutes of test time and they offer minimal value for quite a similar reason as the previous step. Let's introduce and use a mechanism to skip these tests to save some resources. Suggested-by: Phillip Wood <phillip.wood@dunelm.org.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-17ci(*-leaks): skip the git-svn tests to save timeJohannes Schindelin
I noticed recently that the leak-checking jobs still take a lot of time, and upon analysis, the git-svn tests contribute significantly to this. Analyzing a recent CI run, I saw that the Git test suite contains 1,017 tests, running for approximately 5¼ hours total. Of these, 65 git-svn-related tests (~6% of test count) took 42.24 minutes combined, accounting for ~13.% of the total runtime. This implies that the git-svn tests are roughly twice as expernsive compared to the other tests. However, testing git-svn in the leak-checking jobs provides minimal value: git-svn is implemented as a Perl script, and leak checking only handles C code. While git-svn does call into Git's built-in commands that are implemented in C, these are standard Git operations that are already thoroughly exercised elsewhere in the test suite. Therefore, running the git-svn tests in the leak-checking jobs only adds to the overall run time with little value in return. Given that the leak-checking jobs are particularly time-intensive and these 42+ minutes of SVN tests per job provide no additional leak detection value, skip them in the *-leaks jobs to reduce CI runtime. Assisted-by: Claude Sonnet 4.5 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-17t1005: modernize "! test -f" to "test_path_is_missing"Tian Yuchen
Replace instances of "! test -f <file>" with "test_path_is_missing <file>". This macro provides better diagnostics when the test fails (it prints "Path exists:" instead of silently failing). Signed-off-by: Tian Yuchen <a3205153416@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-17help: report on whether or not gettext is enabledJiang Xin
When users report that Git has no localized output, we need to check not only their locale settings, but also whether Git was built with GETTEXT support in the first place. Expose this information via the existing build info output by adding a "gettext: enabled" line to `git version --build-options` (and therefore also to `git bugreport`) when `NO_GETTEXT` is not defined at build time. Signed-off-by: Jiang Xin <zhiyou.jx@alibaba-inc.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-16t0610-reftable-basics: mitigate a flaky test on cygwinRamsay Jones
Test #29 ('ref transaction: corrupted tables cause failure') started to fail intermittently for me (from v2.52.0-rc0) when running the testsuite with '-j8'. (Also, having moved to a new laptop and windows 11, rather than windows 10). If the test is run by hand, or without any parallelism, then it passes without issue. When the test fails (e.g. 1 out of 32 parallel runs) the cause is due to a permission error while corrupting a table file: ./test-lib.sh: line 1010: .git/reftable/0x000000000001-0x000000000002-d89bb8ee.ref: Permission denied This corruption is done in a shell loop, directly after a 'test_commit', which uses an ': >"$f"' expression to truncate the file. Adding a sleep of one second after the 'test_commit' and before the shell loop fixes the test (it is not clear why). Replacing the redirection shell expression with a 'test-tool truncate "$f" 0' invocation also provides a fix, which could simply be another way to change the timing sufficiently to win the race. During a debug session, I tried looking at the strace output for the shell redirection: $ rm /tmp/hello; echo hello >/tmp/hello; ls -l /tmp/hello -rw-r--r-- 1 ramsay None 6 Nov 10 17:25 /tmp/hello $ $ strace -o zzz bash -c ': >/tmp/hello' $ Similarly, for the test-tool solution: $ strace -o xxx ./t/helper/test-tool truncate /tmp/hello 0 $ When comparing the output, the differences seemed to be what you would expect and, if anything, the shell redirect probably would have taken longer than the test-tool solution (many fcntl() calls to dup the stdout to the <fd>). The call to the win32 api NtCreateFile() was identical, apart from the first (FileHandle) parameter, of course. In order to fix this flaky test on cygwin, despite not knowing why it works, replace the shell redirection with the above 'test-tool truncate' invocation. Helped-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-16t9700/test.pl: fix path type expectation on cygwinRamsay Jones
Commit 4ec7ac101b ("t9700: accommodate for Windows paths", 2025-12-17) changed the type of the absolute path to the git directory from unix to win32 for both GfW and cygwin. This fixed the test for GfW but causes new failures on cygwin, since the test expectation is that it uses unix paths on cygwin. In order to not break cygwin, disable the new code by removing the "or $^O eq 'cygwin'" sub-expression from the conditional part of the fix. Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-16Merge a handful more topics after -rc0Junio C Hamano
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-01-16Merge branch 'ml/doc-blame-markup'Junio C Hamano
Doc mark-up update. * ml/doc-blame-markup: doc: git-blame: convert to new doc format doc: blame-options: convert to new doc format
2026-01-16Merge branch 'kh/doc-patch-id'Junio C Hamano
"git patch-id" documentation updates. * kh/doc-patch-id: doc: patch-id: --verbatim locks in --stable doc: patch-id: spell out the git-diff-tree(1) form doc: patch-id: use definite article for the result patch-id: use “patch ID” throughout doc: patch-id: capitalize Git version doc: patch-id: don’t use semicolon between bullet points
2026-01-16Merge branch 'bc/doc-stash-import-export'Junio C Hamano
Update a FAQ entry on synching two separate repositories using the "git stash export/import" recently introduced. * bc/doc-stash-import-export: gitfaq: document using stash import/export to sync working tree
2026-01-16Merge branch 'kj/t7101-modernize'Junio C Hamano
Test update. * kj/t7101-modernize: t7101: modernize test path checks
2026-01-16Merge branch 'ds/builtin-doc-update'Junio C Hamano
Update in-code comment doc to match the current API. * ds/builtin-doc-update: builtin.h: update documentation