Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
582 commits
Select commit Hold shift + click to select a range
59a3998
gitk: Add support of SHA256 repositories
tiwai Jun 17, 2025
4ca7017
bloom: add test helper to return murmur3 hash
brandb97 Jul 12, 2025
b187353
bloom: rename function operates on bloom_key
brandb97 Jul 12, 2025
90d5518
bloom: replace struct bloom_key * with struct bloom_keyvec
brandb97 Jul 12, 2025
937153d
revision: make helper for pathspec to bloom keyvec
brandb97 Jul 12, 2025
7d275cd
gpg-interface: expand gpg.program as a path
424ever Jul 11, 2025
cc876f2
Merge branch 'bs/remote-helpers-doc-markup-fix'
gitster Jul 14, 2025
e02d718
Merge branch 'cb/total-ram-bsd-fix'
gitster Jul 14, 2025
45c50a1
Merge branch 'bs/config-mak-freebsd'
gitster Jul 14, 2025
f96878e
Merge branch 'ac/prune-wo-the-repository'
gitster Jul 14, 2025
50d9c34
Merge branch 'jk/all-negative-diff-filter-fix'
gitster Jul 14, 2025
5e458c1
Merge branch 'ps/use-reftable-as-default-in-3.0'
gitster Jul 14, 2025
0d046cb
Merge branch 'jc/coccicheck-fails-make-when-it-fails'
gitster Jul 14, 2025
db4a912
Merge branch 'mc/netrc-service-names'
gitster Jul 14, 2025
a35b8c8
Merge branch 'kh/doc-config-subcommands'
gitster Jul 14, 2025
38349d1
Merge branch 'kn/clang-format-updates'
gitster Jul 14, 2025
69ea767
Merge branch 'hy/read-cache-lock-error-fix'
gitster Jul 14, 2025
f4fd906
Merge branch 're/ssh-sign-buffer-fix'
gitster Jul 14, 2025
18cd756
Merge branch 'ps/perlless-test-fixes'
gitster Jul 14, 2025
8c5f7db
Merge branch 'ts/merge-orig-head-doc-fix'
gitster Jul 14, 2025
e78bca2
Merge branch 'rj/freebsd-sysinfo-build-fix'
gitster Jul 14, 2025
2b5bf70
Merge branch 'sj/string-list'
gitster Jul 14, 2025
f5b69ee
Merge branch 'rp/apply-intent-to-add-fix'
gitster Jul 14, 2025
d30e120
The ninth batch
gitster Jul 14, 2025
2a6ce09
bloom: optimize multiple pathspec items in revision
brandb97 Jul 15, 2025
6bde5d4
refs: expose `ref_iterator` via 'refs.h'
KarthikNayak Jul 15, 2025
883a7ea
ref-cache: remove unused function 'find_ref_entry()'
KarthikNayak Jul 15, 2025
2b4648b
refs: selectively set prefix in the seek functions
KarthikNayak Jul 15, 2025
526530a
ref-filter: remove unnecessary else clause
KarthikNayak Jul 15, 2025
dabecb9
for-each-ref: introduce a '--start-after' option
KarthikNayak Jul 15, 2025
c29998d
Merge branch 'tb/midx-avoid-cruft-packs' into ps/object-store-midx
gitster Jul 15, 2025
4d8be89
midx: start tracking per object database source
pks-t Jul 15, 2025
ec4380f
packfile: refactor `prepare_packed_git_one()` to work on sources
pks-t Jul 15, 2025
6567432
midx: stop using linked list when closing MIDX
pks-t Jul 15, 2025
736bb72
packfile: refactor `get_multi_pack_index()` to work on sources
pks-t Jul 15, 2025
7fc1998
packfile: stop using linked MIDX list in `find_pack_entry()`
pks-t Jul 15, 2025
c620586
packfile: stop using linked MIDX list in `get_all_packs()`
pks-t Jul 15, 2025
ec865d9
midx: remove now-unused linked list of multi-pack indices
pks-t Jul 15, 2025
14d7583
config: remove unneeded struct field
phillipwood Jul 15, 2025
a6b0070
Merge branch 'bc/use-sha256-by-default-in-3.0' into kl/test-installed…
gitster Jul 15, 2025
d79f8c6
test-lib: respect GIT_TEST_INSTALLED when querying default hash
spectral54 Jul 15, 2025
f1b8524
bswap.h: add support for __BYTE_ORDER__
sebastianas Jul 15, 2025
30dea7d
bswap.h: define GIT_LITTLE_ENDIAN on msvc as little endian
sebastianas Jul 15, 2025
4544cd1
bswap.h: always overwrite ntohl/ ntohll macros
sebastianas Jul 15, 2025
0132f11
bswap.h: remove optimized x86 version of bswap32/64
sebastianas Jul 15, 2025
f4ac32c
bswap.h: provide a built-in based version of bswap32/64 if possible
sebastianas Jul 15, 2025
51b50c5
Merge branch 'ps/object-store'
gitster Jul 15, 2025
f31d155
Merge branch 'ly/load-bitmap-leakfix'
gitster Jul 15, 2025
32571a0
The tenth batch
gitster Jul 15, 2025
586919c
meson: fix installation when -Dlibexexdir is set
ramsay-jones Jul 15, 2025
056dbe8
po/meson.build: add missing 'ga' language code
ramsay-jones Jul 15, 2025
1f0fed3
SubmittingPatches: allow non-real name contributions
bk2204 Jul 16, 2025
bfa405e
CodingGuidelines: allow the use of bool
phillipwood Jul 16, 2025
f3ba426
git-compat-util: convert string predicates to return bool
phillipwood Jul 16, 2025
f006e03
strbuf: convert predicates to return bool
phillipwood Jul 16, 2025
e69bbfa
commit: avoid scanning trailing comments when 'core.commentChar' is "…
ayu-ch Jul 16, 2025
92b7c7c
config: set comment_line_str to "#" when core.commentChar=auto
ayu-ch Jul 16, 2025
8f49975
gitk: require git >= 2.20
mark987 Jun 5, 2025
51c543c
gitk: remove code targeting git <= 1.7.2
mark987 Jun 5, 2025
82d316c
gitk: Make TclTk 8.6 the minimum, allow 8.7
mark987 Jul 13, 2025
b70227f
gitk: remove implementations for Tcl/Tk < 8.6
mark987 May 19, 2025
532a054
git-gui: Replace null_sha1 with nullid
tiwai Jul 16, 2025
7b625c2
Merge branch 'ph/fetch-prune-optim'
gitster Jul 16, 2025
362f695
Merge branch 'ps/t1006-tap-fix'
gitster Jul 16, 2025
ac5fd29
Merge branch 'ps/refs-files-remove-empty-parent'
gitster Jul 16, 2025
edb4fd9
Merge branch 'ps/doc-pack-refs-auto-with-files-backend-fix'
gitster Jul 16, 2025
0fd2a2e
Merge branch 'rs/parse-options-precision'
gitster Jul 16, 2025
fe6fb09
Merge branch 'ag/doc-send-email'
gitster Jul 16, 2025
90c0775
The eleventh batch
gitster Jul 16, 2025
dab92fe
git-gui: Add support of SHA256 repo
tiwai Jul 16, 2025
339d95f
ci: allow github-actions print test failures again
gitster Jul 16, 2025
5b8103a
gitk: use $config_variables as list for save/restore
mark987 Jun 3, 2025
cb9fa4d
gitk: always use themed Tk (ttk)
mark987 Jun 8, 2025
9c3cc84
gitk: replace ${NS} with ttk
mark987 Jun 8, 2025
51bb2ab
gitk: remove non-ttk support code
mark987 Jun 8, 2025
3489ff1
gitk: separate x11 / win32 / aqua Mouse bindings
mark987 Jul 6, 2024
ec02983
gitk: wheel scrolling multiplier preference
mark987 Jun 3, 2025
429bbf4
gitk: mousewheel scrolling functions for Tk 8.6
mark987 Jun 6, 2025
61c74d0
gitk: update win32 scrolling for Tk 8.6 / TIP 171
mark987 Jul 6, 2024
82f0b92
gitk: update x11 scrolling for TclTk 8.6 / TIP 171
mark987 Jun 6, 2025
24fb77a
gitk: update aqua scrolling for TclTk 8.6 / TIP171
mark987 Jun 3, 2025
3e43143
gitk: allow horizontal commit-graph scrolling
mark987 May 27, 2025
8e34d8b
gitk: choosefont - remove a stray debugging line
j6t Jul 17, 2025
86c9c14
Merge branch 'bc/use-sha256-by-default-in-3.0' into ps/config-wo-the-…
gitster Jul 17, 2025
77f648e
git-gui: require git >= 2.36
mark987 Feb 13, 2024
ed73388
git-gui: Make TclTk 8.6 the minimum, allow 8.7
mark987 May 17, 2025
8c3add5
meson: work around broken system PCRE2 dependency in macOS
carenas Jul 18, 2025
dd7eb2d
git-gui: git ls-files knows --exclude-standard
mark987 Apr 5, 2025
d342dcd
git-gui: git-diff-index always knows submodules
mark987 Apr 5, 2025
f87a36b
git-gui: use git-branch --show-current
mark987 Feb 12, 2024
182e2c4
git-gui: git rev-parse knows show_toplevel
mark987 Feb 13, 2024
e48c822
git-gui: git-blame understands -w and textconv
mark987 Feb 13, 2024
940640d
git-gui: git-diff knows submodules and textconv
mark987 Feb 13, 2024
e42ba88
git-gui: git merge understands --strategy=recursive
mark987 Feb 13, 2024
8b48034
git-gui: git-remote is always available
mark987 Feb 13, 2024
c855570
git-gui: use git_init to create new repository dir
mark987 Feb 9, 2024
c939344
git-gui: remove unused git-version
mark987 Feb 13, 2024
4e3369f
git-gui: remove unreachable Tk 8.4 code
mark987 Feb 16, 2024
13df401
git-gui: remove redundant check for Tk >= 8.5
mark987 Feb 18, 2024
ed7d2af
git-gui: always use themed widgets from ttk
mark987 May 21, 2025
fdc0e3a
git-gui: remove ${NS} indirection for ttk
mark987 Jul 14, 2025
aa1a3e0
gitk: sort by ref type on the 'tags and heads' view
rappazzo Jun 1, 2015
9abe70d
gitk: make 'sort-refs-by-type' optional and persistent
Jul 18, 2025
c0fb435
gitk: separate upstream refs when using the sort-by-type option
Jul 19, 2025
9b1c537
git-gui: remove non-ttk code
mark987 May 20, 2025
a636d39
Merge branch 'bc/use-sha256-by-default-in-3.0'
gitster Jul 21, 2025
205493d
Merge branch 'tb/midx-avoid-cruft-packs'
gitster Jul 21, 2025
5f2b826
Merge branch 'jk/remote-avoid-overlapping-names'
gitster Jul 21, 2025
867d9b1
Merge branch 'ps/meson-cleanups'
gitster Jul 21, 2025
b5e966d
Merge branch 'rh/doc-glob-pathspec-fix'
gitster Jul 21, 2025
fe02fe7
Merge branch 'ja/doc-git-log-markup'
gitster Jul 21, 2025
d80b764
Merge branch 'cb/daemon-reap-children'
gitster Jul 21, 2025
3a112b5
Merge branch 'jb/gpg-program-variable-is-a-pathname'
gitster Jul 21, 2025
3f2a948
The twelfth batch
gitster Jul 21, 2025
54b1826
revision: drop early output option
peff Jul 19, 2025
e337860
pull: add pull.autoStash config option
brandb97 Jul 20, 2025
6ff8d68
git-gui: use git-clone
mark987 Feb 9, 2024
3ce650f
git-gui: default to full copy for linked worktrees
mark987 Jul 21, 2025
6dfdf7b
git-gui: use dashless 'git cmd' form for read/write
mark987 Apr 5, 2025
eaca720
git-gui: remove procs gitexec and _git_cmd
mark987 Apr 6, 2025
f4b7ad5
git-gui: eliminate _search_exe
mark987 Apr 5, 2025
9b5c002
rev-list: make "struct rev_list_info" static to the only user
gitster Jul 18, 2025
f31abb4
rev-list: update a NEEDSWORK comment
gitster Jul 21, 2025
d6ec087
commit: convert pop_most_recent_commit() to prio_queue
rscharfe Jul 18, 2025
3d5091d
prio-queue: add prio_queue_replace()
rscharfe Jul 18, 2025
a79e351
commit: use prio_queue_replace() in pop_most_recent_commit()
rscharfe Jul 18, 2025
594810d
Merge branch 'ml/tcl86'
j6t Jul 22, 2025
436dad0
Merge branch 'ml/abandon-old-versions'
j6t Jul 22, 2025
0b86937
docs: explain how to use `git imap-send --list` command to get a list…
AdityaGarg8 Jul 22, 2025
cf9d3c1
Merge branch 'ti/support-sha256'
j6t Jul 22, 2025
e2874c6
Merge branch 'mr/sort-refs-by-type'
j6t Jul 22, 2025
0f3d030
Merge branch 'ml/abandon-old-version' (early part)
j6t Jul 22, 2025
2d3f3f0
gitk: remove header of now empty section "General options"
j6t Jul 18, 2025
26ef887
t7510: add test cases for non-absolute gpg program
424ever Jul 22, 2025
afea220
Merge branch 'master' of https://github.com/j6t/gitk
gitster Jul 22, 2025
0e8243a
Merge branch 'master' of https://github.com/j6t/git-gui
gitster Jul 22, 2025
8cc1925
t/helper/test-truncate: close file descriptor after truncation
lhywk Jul 22, 2025
26552cb
reflog: close leak of reflog expire entry
jacob-keller Jul 22, 2025
9ce196e
config: drop `git_config()` wrapper
pks-t Jul 23, 2025
83bd9e0
config: drop `git_config_clear()` wrapper
pks-t Jul 23, 2025
7807051
config: drop `git_config_get()` wrapper
pks-t Jul 23, 2025
2f12425
config: drop `git_config_get_value()` wrapper
pks-t Jul 23, 2025
8e7110d
config: drop `git_config_get_value()` wrapper
pks-t Jul 23, 2025
4f5ba82
config: drop `git_config_get_string_multi()` wrapper
pks-t Jul 23, 2025
627d08c
config: drop `git_config_get_string()` wrapper
pks-t Jul 23, 2025
cba3c02
config: drop `git_config_get_string()` wrapper
pks-t Jul 23, 2025
3fda14d
config: drop `git_config_get_int()` wrapper
pks-t Jul 23, 2025
d57f078
config: drop `git_config_get_ulong()` wrapper
pks-t Jul 23, 2025
5d215a7
config: drop `git_config_get_bool()` wrapper
pks-t Jul 23, 2025
122e38c
config: drop `git_config_set_in_file()` wrapper
pks-t Jul 23, 2025
b1659e6
config: drop `git_config_set_gently()` wrapper
pks-t Jul 23, 2025
e957ed2
config: drop `git_config_set()` wrapper
pks-t Jul 23, 2025
62c1ed3
config: drop `git_config_set_in_file_gently()` wrapper
pks-t Jul 23, 2025
adf9e5f
config: drop `git_config_set_multivar_in_file_gently()` wrapper
pks-t Jul 23, 2025
1bb3e41
config: drop `git_config_get_multivar_gently()` wrapper
pks-t Jul 23, 2025
a538250
config: drop `git_config_set_multivar()` wrapper
pks-t Jul 23, 2025
00271bb
config: remove unused `the_repository` wrappers
pks-t Jul 23, 2025
08b7758
config: move Git config parsing into "environment.c"
pks-t Jul 23, 2025
b06408b
config: fix sign comparison warnings
pks-t Jul 23, 2025
f22d4ac
Merge branch 'ly/changed-paths-traversal'
gitster Jul 23, 2025
9881326
Merge branch 'ps/sane-ctype-workaround'
gitster Jul 23, 2025
5216bcb
Merge branch 'cc/fast-import-export-signature-names'
gitster Jul 23, 2025
97e14d9
The thirteenth batch
gitster Jul 23, 2025
9b2527c
CodingGuidelines: document test balloons in flight
gitster Jul 23, 2025
bc235a6
test-delta: handle errors with die()
peff Jul 24, 2025
760dd80
test-delta: use strbufs to hold input files
peff Jul 24, 2025
0f1b338
test-delta: close output descriptor after use
peff Jul 24, 2025
5dd5c4e
t/unit-tests: implement clar specific reftable test helper functions
Seyi007 Jul 24, 2025
ed5dcbf
t/unit-tests: convert reftable basics test to use clar test framework
Seyi007 Jul 24, 2025
a83bf04
t/unit-tests: convert reftable block test to use clar
Seyi007 Jul 24, 2025
c7784ba
t/unit-tests: convert reftable merged test to use clar
Seyi007 Jul 24, 2025
a0aaa85
t/unit-tests: convert reftable pq test to use clar
Seyi007 Jul 24, 2025
18a992b
t/unit-tests: convert reftable table test to use clar
Seyi007 Jul 24, 2025
ee0a88d
t/unit-tests: convert reftable readwrite test to use clar
Seyi007 Jul 24, 2025
2596bef
t/unit-tests: convert reftable record test to use clar
Seyi007 Jul 24, 2025
1cfd187
t/unit-tests: convert reftable stack test to use clar
Seyi007 Jul 24, 2025
9bbc981
t/unit-tests: finalize migration of reftable-related tests
Seyi007 Jul 24, 2025
9201261
ref-cache: set prefix_state when seeking
KarthikNayak Jul 24, 2025
5ce9702
Merge branch 'pw/adopt-c99-bool-officially'
gitster Jul 24, 2025
79c64eb
Merge branch 'kl/test-installed-fix'
gitster Jul 24, 2025
0686fa4
Merge branch 'pw/config-kvi-remove-path'
gitster Jul 24, 2025
42eb288
Merge branch 'ss/compat-bswap-revamp'
gitster Jul 24, 2025
8c7817c
Merge branch 'rj/meson-libexecdir-fix'
gitster Jul 24, 2025
422a522
Merge branch 'bc/contribution-under-non-real-names'
gitster Jul 24, 2025
e4ef048
The fourteenth batch
gitster Jul 24, 2025
5345ca1
t9350: redirect input to only fast-import
chriscool Jul 25, 2025
0f6e503
Merge branch 'rs/pop-recent-commit-with-prio-queue'
gitster Jul 28, 2025
d345ced
Merge branch 'ac/auto-comment-char-fix'
gitster Jul 28, 2025
e813a02
The fifteenth batch
gitster Jul 28, 2025
6585575
ref-cache: use 'size_t' instead of int for length
KarthikNayak Jul 28, 2025
a7c8a4c
for-each-ref: fix documentation argument ordering
KarthikNayak Jul 28, 2025
fa0f4e4
for-each-ref: reword the documentation for '--start-after'
KarthikNayak Jul 28, 2025
ed9cc21
t6302: add test combining '--start-after' with '--exclude'
KarthikNayak Jul 28, 2025
444ad14
ref-filter: use REF_ITERATOR_SEEK_SET_PREFIX instead of '1'
KarthikNayak Jul 28, 2025
f609dc4
builtin: unmark git-switch and git-restore as experimental
jltobler Jul 28, 2025
7e29431
blame: remove parameter detailed in get_commit_info()
hanyang-tony Jul 28, 2025
c26ecaf
t7510: use $PWD instead of $(pwd) inside PATH
peff Jul 25, 2025
5247da0
meson: ensure correct "clar-decls.h" header is used
pks-t Jul 29, 2025
671b283
t: use test_grep in t3701 and t4055
NinjaInShade Jul 29, 2025
97b99a9
t: use test_config in t4055
NinjaInShade Jul 29, 2025
2b0a2db
add-patch: respect diff.context configuration
NinjaInShade Jul 29, 2025
2b3ae04
add-patch: add diff.context command line overrides
NinjaInShade Jul 29, 2025
9b07811
test-hashmap: document why it is no longer used but still there
gitster Jul 30, 2025
f3ef347
t7450: inspect the correct path a broken code would write to
Jul 31, 2025
711a208
interactive: do strip trailing CRLF from input
j6t Jul 31, 2025
4ac3302
CodingGuidelines: clarify that S_release() does not reinitialize
gitster Aug 1, 2025
cca758d
doc: fast-import: contextualize the hardware cost
LemmingAvalanche Aug 1, 2025
3bdd897
meson: tolerate errors from git ls-files --deduplicate
mstorsjo Aug 1, 2025
6741b9b
Merge branch 'jc/rev-list-info-cleanup'
gitster Aug 1, 2025
2346617
Merge branch 'jk/revision-no-early-output'
gitster Aug 1, 2025
152871b
Merge branch 'jc/do-not-scan-argv-without-parsing'
gitster Aug 1, 2025
a2384a7
Merge branch 'jk/unleak-reflog-expire-entry'
gitster Aug 1, 2025
4f5b161
Merge branch 'jc/ci-print-test-failures-fix'
gitster Aug 1, 2025
557c494
Merge branch 'cb/meson-avoid-broken-macos-pcre2'
gitster Aug 1, 2025
8ad370f
Merge branch 'ag/imap-send-list-folders-doc'
gitster Aug 1, 2025
cbcde15
Merge branch 'jc/document-test-balloons-in-flight'
gitster Aug 1, 2025
6fe666b
Merge branch 'ly/pull-autostash'
gitster Aug 1, 2025
80b8016
Merge branch 'sk/reftable-clarify-tests'
gitster Aug 1, 2025
866e6a3
The sixteenth batch
gitster Aug 1, 2025
5f277fc
mingw_open_existing: handle directories better
rimrul Aug 3, 2025
ce6ccba
mingw: drop Windows 7-specific work-around
dscho Aug 3, 2025
51f9b62
mingw_rename: support ReFS on Windows 2022
dscho Aug 3, 2025
f559d42
mingw: support Windows Server 2016 again
dscho Aug 3, 2025
8d9f536
Merge branch 'kn/for-each-ref-skip'
gitster Aug 4, 2025
733b640
Merge branch 'ps/object-store-midx'
gitster Aug 4, 2025
f61d8ce
Merge branch 'ow/rebase-verify-insn-fmt-before-initializing-state'
gitster Aug 4, 2025
750a95b
Merge branch 'hl/test-helper-fd-close'
gitster Aug 4, 2025
e075325
The seventeenth batch, just before -rc0
gitster Aug 4, 2025
41ca6a9
Merge branch 'hy/blame-simplify-get-commit-info'
gitster Aug 4, 2025
8e75941
Merge branch 'cc/t9350-cleanup'
gitster Aug 4, 2025
fab5968
Merge branch 'jb/t7510-gpg-program-path'
gitster Aug 4, 2025
0dc39a6
Merge branch 'jt/switch-restore-no-longer-experimental'
gitster Aug 4, 2025
10be1c4
Merge branch 'kn/for-each-ref-skip-updates'
gitster Aug 4, 2025
540aaa6
Merge branch 'ps/config-wo-the-repository'
gitster Aug 4, 2025
d63f334
Merge branch 'lm/add-p-context'
gitster Aug 4, 2025
817d661
Merge branch 'js/mingw-fixes'
gitster Aug 4, 2025
c4c628f
Merge branch 'ps/meson-clar-decls-fix'
gitster Aug 4, 2025
ea58ada
Merge branch 'js/prompt-crlf-fix'
gitster Aug 4, 2025
d8f795e
Merge branch 'ch/t7450-recursive-clone-test-fix'
gitster Aug 4, 2025
67424f5
Merge branch 'jc/doc-release-vs-clear'
gitster Aug 4, 2025
dc87d07
Merge branch 'ms/meson-with-ancient-git-wo-ls-files-dedup'
gitster Aug 4, 2025
67fd255
Merge branch 'kh/doc-fast-import-historical'
gitster Aug 4, 2025
f674965
Merge branch 'jc/test-hashmap-is-still-here'
gitster Aug 4, 2025
721c9e5
Git 2.51-rc0
gitster Aug 4, 2025
fd49595
doc: factor out common option
inosmeet Jul 25, 2025
1ed0717
builtin/for-each-ref: align usage string with the man page
inosmeet Aug 4, 2025
69f147a
builtin/for-each-ref: factor out core logic into a helper
inosmeet Aug 4, 2025
4195415
builtin/refs: add list subcommand
inosmeet Jul 25, 2025
d3da47e
t6300: refactor tests to be shareable
inosmeet Jul 23, 2025
df2c3fc
t: add test for git refs list subcommand
inosmeet Jul 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 5 additions & 3 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ freebsd_task:
env:
GIT_PROVE_OPTS: "--timer --jobs 10"
GIT_TEST_OPTS: "--no-chain-lint --no-bin-wrappers"
MAKEFLAGS: "-j4"
GIT_SKIP_TESTS: t7815.12
MAKEFLAGS: -j4
DEFAULT_TEST_TARGET: prove
DEFAULT_UNIT_TEST_TARGET: unit-tests-prove
DEVELOPER: 1
freebsd_instance:
image_family: freebsd-13-4
image_family: freebsd-14-3
memory: 2G
install_script:
pkg install -y gettext gmake perl5
Expand All @@ -19,4 +21,4 @@ freebsd_task:
build_script:
- su git -c gmake
test_script:
- su git -c 'gmake DEFAULT_UNIT_TEST_TARGET=unit-tests-prove test unit-tests'
- su git -c 'gmake test unit-tests'
27 changes: 15 additions & 12 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,15 @@ UseTab: Always
TabWidth: 8
IndentWidth: 8
ContinuationIndentWidth: 8
ColumnLimit: 80

# While we do want to enforce a character limit of 80 characters, we often
# allow lines to overflow that limit to prioritize readability. Setting a
# character limit here with penalties has been finicky and creates too many
# false positives.
#
# NEEDSWORK: It would be nice if we can find optimal settings to ensure we
# can re-enable the limit here.
ColumnLimit: 0

# C Language specifics
Language: Cpp
Expand Down Expand Up @@ -210,16 +218,11 @@ MaxEmptyLinesToKeep: 1
# No empty line at the start of a block.
KeepEmptyLinesAtTheStartOfBlocks: false

# Penalties
# This decides what order things should be done if a line is too long
PenaltyBreakAssignment: 5
PenaltyBreakBeforeFirstCallParameter: 5
PenaltyBreakComment: 5
PenaltyBreakFirstLessLess: 0
PenaltyBreakOpenParenthesis: 300
PenaltyBreakString: 5
PenaltyExcessCharacter: 10
PenaltyReturnTypeOnItsOwnLine: 300

# Don't sort #include's
SortIncludes: false

# Remove optional braces of control statements (if, else, for, and while)
# according to the LLVM coding style. This avoids braces on simple
# single-statement bodies of statements but keeps braces if one side of
# if/else if/.../else cascade has multi-statement body.
RemoveBracesLLVM: true
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -298,7 +298,7 @@ jobs:
path: build
- name: Test
shell: pwsh
run: meson test -C build --list | Select-Object -Skip 1 | Select-String .* | Group-Object -Property { $_.LineNumber % 10 } | Where-Object Name -EQ ${{ matrix.nr }} | ForEach-Object { meson test -C build --no-rebuild --print-errorlogs $_.Group }
run: meson test -C build --no-rebuild --print-errorlogs --slice "$(1+${{ matrix.nr }})/10"

regular:
name: ${{matrix.vector.jobname}} (${{matrix.vector.pool}})
Expand Down
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ test:msvc-meson:
- job: "build:msvc-meson"
artifacts: true
script:
- meson test -C build --list | Select-Object -Skip 1 | Select-String .* | Group-Object -Property { $_.LineNumber % $Env:CI_NODE_TOTAL + 1 } | Where-Object Name -EQ $Env:CI_NODE_INDEX | ForEach-Object { meson test -C build --no-rebuild --print-errorlogs $_.Group; if (!$?) { exit $LASTEXITCODE } }
- meson test -C build --no-rebuild --print-errorlogs --slice $Env:CI_NODE_INDEX/$Env:CI_NODE_TOTAL
parallel: 10

test:fuzz-smoke-tests:
Expand Down
55 changes: 55 additions & 0 deletions Documentation/BreakingChanges.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,53 @@ Cf. <2f5de416-04ba-c23d-1e0b-83bb655829a7@zombino.com>,
<20170223155046.e7nxivfwqqoprsqj@LykOS.localdomain>,
<CA+EOSBncr=4a4d8n9xS4FNehyebpmX8JiUwCsXD47EQDE+DiUQ@mail.gmail.com>.

* The default storage format for references in newly created repositories will
be changed from "files" to "reftable". The "reftable" format provides
multiple advantages over the "files" format:
+
** It is impossible to store two references that only differ in casing on
case-insensitive filesystems with the "files" format. This issue is common
on Windows and macOS platforms. As the "reftable" backend does not use
filesystem paths to encode reference names this problem goes away.
** Similarly, macOS normalizes path names that contain unicode characters,
which has the consequence that you cannot store two names with unicode
characters that are encoded differently with the "files" backend. Again,
this is not an issue with the "reftable" backend.
** Deleting references with the "files" backend requires Git to rewrite the
complete "packed-refs" file. In large repositories with many references
this file can easily be dozens of megabytes in size, in extreme cases it
may be gigabytes. The "reftable" backend uses tombstone markers for
deleted references and thus does not have to rewrite all of its data.
** Repository housekeeping with the "files" backend typically performs
all-into-one repacks of references. This can be quite expensive, and
consequently housekeeping is a tradeoff between the number of loose
references that accumulate and slow down operations that read references,
and compressing those loose references into the "packed-refs" file. The
"reftable" backend uses geometric compaction after every write, which
amortizes costs and ensures that the backend is always in a
well-maintained state.
** Operations that write multiple references at once are not atomic with the
"files" backend. Consequently, Git may see in-between states when it reads
references while a reference transaction is in the process of being
committed to disk.
** Writing many references at once is slow with the "files" backend because
every reference is created as a separate file. The "reftable" backend
significantly outperforms the "files" backend by multiple orders of
magnitude.
** The reftable backend uses a binary format with prefix compression for
reference names. As a result, the format uses less space compared to the
"packed-refs" file.
+
Users that get immediate benefit from the "reftable" backend could continue to
opt-in to the "reftable" format manually by setting the "init.defaultRefFormat"
config. But defaults matter, and we think that overall users will have a better
experience with less platform-specific quirks when they use the new backend by
default.
+
A prerequisite for this change is that the ecosystem is ready to support the
"reftable" format. Most importantly, alternative implementations of Git like
JGit, libgit2 and Gitoxide need to support it.

=== Removals

* Support for grafting commits has long been superseded by git-replace(1).
Expand Down Expand Up @@ -183,6 +230,14 @@ These features will be removed.
timeframe, in preference to its synonym "--annotate-stdin". Git 3.0
removes the support for "--stdin" altogether.

* The git-whatchanged(1) command has outlived its usefulness more than
10 years ago, and takes more keystrokes to type than its rough
equivalent `git log --raw`. We have nominated the command for
removal, have changed the command to refuse to work unless the
`--i-still-use-this` option is given, and asked the users to report
when they do so. So far there hasn't been a single complaint.
+
The command will be removed.

== Superseded features that will not be deprecated

Expand Down
19 changes: 17 additions & 2 deletions Documentation/CodingGuidelines
Original file line number Diff line number Diff line change
Expand Up @@ -298,6 +298,17 @@ For C programs:
. since late 2021 with 44ba10d6, we have had variables declared in
the for loop "for (int i = 0; i < 10; i++)".

. since late 2023 with 8277dbe987 we have been using the bool type
from <stdbool.h>.

C99 features we have test balloons for:

. since late 2024 with v2.48.0-rc0~20, we have test balloons for
compound literal syntax, e.g., (struct foo){ .member = value };
our hope is that no platforms we care about have trouble using
them, and officially adopt its wider use in mid 2026. Do not add
more use of the syntax until that happens.

New C99 features that we cannot use yet:

. %z and %zu as a printf() argument for a size_t (the %z being for
Expand All @@ -315,6 +326,9 @@ For C programs:
encouraged to have a blank line between the end of the declarations
and the first statement in the block.

- Do not explicitly initialize global variables to 0 or NULL;
instead, let BSS take care of the zero initialization.

- NULL pointers shall be written as NULL, not as 0.

- When declaring pointers, the star sides with the variable
Expand Down Expand Up @@ -610,8 +624,9 @@ For C programs:
- `S_init()` initializes a structure without allocating the
structure itself.

- `S_release()` releases a structure's contents without freeing the
structure.
- `S_release()` releases a structure's contents without reinitializing
the structure for immediate reuse, and without freeing the structure
itself.

- `S_clear()` is equivalent to `S_release()` followed by `S_init()`
such that the structure is directly usable after clearing it. When
Expand Down
7 changes: 6 additions & 1 deletion Documentation/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,12 @@ lint-docs-meson:
awk "/^manpages = {$$/ {flag=1 ; next } /^}$$/ { flag=0 } flag { gsub(/^ \047/, \"\"); gsub(/\047 : [157],\$$/, \"\"); print }" meson.build | \
grep -v -e '#' -e '^$$' | \
sort >tmp-meson-diff/meson.adoc && \
ls git*.adoc scalar.adoc | grep -v -e git-bisect-lk2009.adoc -e git-pack-redundant.adoc -e git-tools.adoc >tmp-meson-diff/actual.adoc && \
ls git*.adoc scalar.adoc | \
grep -v -e git-bisect-lk2009.adoc \
-e git-pack-redundant.adoc \
-e git-tools.adoc \
-e git-whatchanged.adoc \
>tmp-meson-diff/actual.adoc && \
if ! cmp tmp-meson-diff/meson.adoc tmp-meson-diff/actual.adoc; then \
echo "Meson man pages differ from actual man pages:"; \
diff -u tmp-meson-diff/meson.adoc tmp-meson-diff/actual.adoc; \
Expand Down
4 changes: 2 additions & 2 deletions Documentation/MyFirstObjectWalk.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -83,13 +83,13 @@ int cmd_walken(int argc, const char **argv, const char *prefix)
}
----

Also add the relevant line in `builtin.h` near `cmd_whatchanged()`:
Also add the relevant line in `builtin.h` near `cmd_version()`:

----
int cmd_walken(int argc, const char **argv, const char *prefix, struct repository *repo);
----

Include the command in `git.c` in `commands[]` near the entry for `whatchanged`,
Include the command in `git.c` in `commands[]` near the entry for `version`,
maintaining alphabetical ordering:

----
Expand Down
73 changes: 73 additions & 0 deletions Documentation/RelNotes/2.43.7.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
Git v2.43.7 Release Notes
=========================

This release includes fixes for CVE-2025-27613, CVE-2025-27614,
CVE-2025-46334, CVE-2025-46835, CVE-2025-48384, CVE-2025-48385, and
CVE-2025-48386.

Fixes since v2.43.6
-------------------

* CVE-2025-27613, Gitk:

When a user clones an untrusted repository and runs Gitk without
additional command arguments, any writable file can be created and
truncated. The option "Support per-file encoding" must have been
enabled. The operation "Show origin of this line" is affected as
well, regardless of the option being enabled or not.

* CVE-2025-27614, Gitk:

A Git repository can be crafted in such a way that a user who has
cloned the repository can be tricked into running any script
supplied by the attacker by invoking `gitk filename`, where
`filename` has a particular structure.

* CVE-2025-46334, Git GUI (Windows only):

A malicious repository can ship versions of sh.exe or typical
textconv filter programs such as astextplain. On Windows, path
lookup can find such executables in the worktree. These programs
are invoked when the user selects "Git Bash" or "Browse Files" from
the menu.

* CVE-2025-46835, Git GUI:

When a user clones an untrusted repository and is tricked into
editing a file located in a maliciously named directory in the
repository, then Git GUI can create and overwrite any writable
file.

* CVE-2025-48384, Git:

When reading a config value, Git strips any trailing carriage
return and line feed (CRLF). When writing a config entry, values
with a trailing CR are not quoted, causing the CR to be lost when
the config is later read. When initializing a submodule, if the
submodule path contains a trailing CR, the altered path is read
resulting in the submodule being checked out to an incorrect
location. If a symlink exists that points the altered path to the
submodule hooks directory, and the submodule contains an executable
post-checkout hook, the script may be unintentionally executed
after checkout.

* CVE-2025-48385, Git:

When cloning a repository Git knows to optionally fetch a bundle
advertised by the remote server, which allows the server-side to
offload parts of the clone to a CDN. The Git client does not
perform sufficient validation of the advertised bundles, which
allows the remote side to perform protocol injection.

This protocol injection can cause the client to write the fetched
bundle to a location controlled by the adversary. The fetched
content is fully controlled by the server, which can in the worst
case lead to arbitrary code execution.

* CVE-2025-48386, Git:

The wincred credential helper uses a static buffer (`target`) as a
unique key for storing and comparing against internal storage. This
credential helper does not properly bounds check the available
space remaining in the buffer before appending to it with
`wcsncat()`, leading to potential buffer overflows.
7 changes: 7 additions & 0 deletions Documentation/RelNotes/2.44.4.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Git v2.44.4 Release Notes
=========================

This release merges up the fixes that appears in v2.43.7 to address
the following CVEs: CVE-2025-27613, CVE-2025-27614, CVE-2025-46334,
CVE-2025-46835, CVE-2025-48384, CVE-2025-48385, and CVE-2025-48386.
See the release notes for v2.43.7 for details.
7 changes: 7 additions & 0 deletions Documentation/RelNotes/2.45.4.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Git v2.45.4 Release Notes
=========================

This release merges up the fixes that appears in v2.43.7, and v2.44.4
to address the following CVEs: CVE-2025-27613, CVE-2025-27614,
CVE-2025-46334, CVE-2025-46835, CVE-2025-48384, CVE-2025-48385, and
CVE-2025-48386. See the release notes for v2.43.7 for details.
7 changes: 7 additions & 0 deletions Documentation/RelNotes/2.46.4.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
Git v2.46.4 Release Notes
=========================

This release merges up the fixes that appears in v2.43.7, v2.44.4, and
v2.45.4 to address the following CVEs: CVE-2025-27613, CVE-2025-27614,
CVE-2025-46334, CVE-2025-46835, CVE-2025-48384, CVE-2025-48385, and
CVE-2025-48386. See the release notes for v2.43.7 for details.
8 changes: 8 additions & 0 deletions Documentation/RelNotes/2.47.3.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Git v2.47.3 Release Notes
=========================

This release merges up the fixes that appears in v2.43.7, v2.44.4,
v2.45.4, and v2.46.4 to address the following CVEs: CVE-2025-27613,
CVE-2025-27614, CVE-2025-46334, CVE-2025-46835, CVE-2025-48384,
CVE-2025-48385, and CVE-2025-48386. See the release notes for v2.43.7
for details.
8 changes: 8 additions & 0 deletions Documentation/RelNotes/2.48.2.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Git v2.48.2 Release Notes
=========================

This release merges up the fixes that appears in v2.43.7, v2.44.4,
v2.45.4, v2.46.4, and v2.47.3 to address the following CVEs:
CVE-2025-27613, CVE-2025-27614, CVE-2025-46334, CVE-2025-46835,
CVE-2025-48384, CVE-2025-48385, and CVE-2025-48386. See the release
notes for v2.43.7 for details.
12 changes: 12 additions & 0 deletions Documentation/RelNotes/2.49.1.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Git v2.49.1 Release Notes
=========================

This release merges up the fixes that appear in v2.43.7, v2.44.4,
v2.45.4, v2.46.4, v2.47.3, and v2.48.2 to address the following CVEs:
CVE-2025-27613, CVE-2025-27614, CVE-2025-46334, CVE-2025-46835,
CVE-2025-48384, CVE-2025-48385, and CVE-2025-48386. See the release
notes for v2.43.7 for details.

It also contains some updates to various CI bits to work around
and/or to adjust to the deprecation of use of Ubuntu 20.04 GitHub
Actions CI, updates to to Fedora base image.
8 changes: 8 additions & 0 deletions Documentation/RelNotes/2.50.1.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Git v2.50.1 Release Notes
=========================

This release merges up the fixes that appear in v2.43.7, v2.44.4,
v2.45.4, v2.46.4, v2.47.3, v2.48.2, and v2.49.1 to address the
following CVEs: CVE-2025-27613, CVE-2025-27614, CVE-2025-46334,
CVE-2025-46835, CVE-2025-48384, CVE-2025-48385, and
CVE-2025-48386. See the release notes for v2.43.7 for details.
Loading
Loading