Commit Graph

78000 Commits (seen)

Author SHA1 Message Date
Junio C Hamano 649787bfd1 Merge branch 'jb/t7510-gpg-program-path' into seen
* jb/t7510-gpg-program-path:
  t7510: add test cases for non-absolute gpg program
2025-07-22 14:29:46 -07:00
Junio C Hamano 7fb23cd084 Merge branch 'jt/switch-restore-no-longer-experimental' into seen
* jt/switch-restore-no-longer-experimental:
  builtin: unmark git-switch and git-restore as experimental
  builtin: remove merge short flag for switch and restore
2025-07-22 14:29:45 -07:00
Junio C Hamano 5b3833a77c Merge branch 'hl/test-helper-fd-close' into seen
* hl/test-helper-fd-close:
  t/helper/test-delta: fix possible resource leak and ensure safe cleanup
  t/helper/test-truncate: close file descriptor after truncation
2025-07-22 14:29:43 -07:00
Junio C Hamano 6557d1427b Merge branch 'lo/repo-info' into seen
A new subcommand "git repo" gives users a way to grab various
repository characteristics.

* lo/repo-info:
  repo: add the --format flag
  repo: add field layout.shallow
  repo: add field layout.bare
  repo: add the field references.format
  repo: declare the repo command
2025-07-22 14:29:23 -07:00
Junio C Hamano bc25d67311 Merge branch 'ds/sparse-checkout-clean' into seen
"git sparse-checkout" subcommand learned a new "clean" action to
prune otherwise unused working-tree files that are outside the
areas of interest.

* ds/sparse-checkout-clean:
  sparse-checkout: make 'clean' clear more files
  t: expand tests around sparse merges and clean
  sparse-index: point users to new 'clean' action
  sparse-checkout: add --verbose option to 'clean'
  dir: add generic "walk all files" helper
  sparse-checkout: match some 'clean' behavior
  sparse-checkout: add basics of 'clean' command
  sparse-checkout: remove use of the_repository
2025-07-22 14:29:22 -07:00
Junio C Hamano fb61fc598d Merge branch 'ps/config-wo-the-repository' into seen
The config API had a set of convenience wrapper functions that
implicitly use the_repository instance; they have been removed and
inlined at the calling sites.

* ps/config-wo-the-repository: (21 commits)
  config: fix sign comparison warnings
  config: move Git config parsing into "environment.c"
  config: remove unused `the_repository` wrappers
  config: drop `git_config_set_multivar()` wrapper
  config: drop `git_config_get_multivar_gently()` wrapper
  config: drop `git_config_set_multivar_in_file_gently()` wrapper
  config: drop `git_config_set_in_file_gently()` wrapper
  config: drop `git_config_set()` wrapper
  config: drop `git_config_set_gently()` wrapper
  config: drop `git_config_set_in_file()` wrapper
  config: drop `git_config_get_bool()` wrapper
  config: drop `git_config_get_ulong()` wrapper
  config: drop `git_config_get_int()` wrapper
  config: drop `git_config_get_string()` wrapper
  config: drop `git_config_get_string()` wrapper
  config: drop `git_config_get_string_multi()` wrapper
  config: drop `git_config_get_value()` wrapper
  config: drop `git_config_get_value()` wrapper
  config: drop `git_config_get()` wrapper
  config: drop `git_config_clear()` wrapper
  ...
2025-07-22 14:29:21 -07:00
Junio C Hamano 32e38a7fc5 Merge branch 'ac/deglobal-sparse-variables' into seen
Two global variables related to sparse checkout have been moved to
the repository settings structure.

Ready?

* ac/deglobal-sparse-variables:
  environment: remove the global variable 'sparse_expect_files_outside_of_patterns'
  environment: move access to "core.sparsecheckoutcone" into repo_settings
  environment: move access to "core.sparsecheckout" into repo_settings
2025-07-22 14:29:19 -07:00
Junio C Hamano a328413445 Merge branch 'ly/pull-autostash' into seen
"git pull" learned to pay attention to pull.autostash configuration
variable, which is officially documented.

* ly/pull-autostash:
  pull: add pull.autoStash config option
2025-07-22 14:29:18 -07:00
Junio C Hamano f66ad5b7ec Merge branch 'kj/renamed-submodule' into seen
The case where a new submodule takes a path where used to be a
completely different subproject is now dealt a bit better than
before.

What's the status of this one?
cf. <xmqq4ivn3a1w.fsf@gitster.g>

* kj/renamed-submodule:
  submodule: skip redundant active entries when pattern covers path
  submodule: prevent overwriting .gitmodules entry on path reuse
2025-07-22 14:29:17 -07:00
Junio C Hamano f7e9460691 Merge branch 'tc/last-modified' into seen
A new command "git last-modified" is proposed to show the closest
ancestor commit that touched each path.

* tc/last-modified:
  fixup! last-modified: support --extended format
  last-modified: support --extended format
  pretty: allow caller to disable indentation
  last-modified: use Bloom filters when available
  t/perf: add last-modified perf script
  last-modified: new subcommand to show when files were last modified
2025-07-22 14:29:16 -07:00
Junio C Hamano 9fe396d3ee Merge branch 'jc/ci-print-test-failures-fix' into seen
CI fix.

Comments?

* jc/ci-print-test-failures-fix:
  ci: allow github-actions print test failures again
2025-07-22 14:29:14 -07:00
Junio C Hamano 49b580becf Merge branch 'pw/3.0-commentchar-auto-deprecation' into seen
Proposes to deprecate "core.commentChar=auto" that attempts to
dynamically pick a suitable comment character, as it is too much
trouble to support for little benefit.

* pw/3.0-commentchar-auto-deprecation:
  commit: print advice when core.commentString=auto
  breaking-changes: deprecate support for core.commentString=auto
2025-07-22 14:29:13 -07:00
Junio C Hamano 8669d1af96 Merge branch 'ps/object-file-wo-the-repository' into seen
Reduce implicit assumption and dependence on the_repository in the
object-file subsystem.

* ps/object-file-wo-the-repository:
  object-file: get rid of `the_repository` in index-related functions
  object-file: get rid of `the_repository` in `force_object_loose()`
  object-file: get rid of `the_repository` in `read_loose_object()`
  object-file: get rid of `the_repository` in loose object iterators
  object-file: remove declaration for `for_each_file_in_obj_subdir()`
  object-file: inline `for_each_loose_file_in_objdir_buf()`
  object-file: get rid of `the_repository` when writing objects
  odb: introduce `odb_write_object()`
  loose: write loose objects map via their source
  object-file: get rid of `the_repository` in `finalize_object_file()`
  object-file: get rid of `the_repository` in `loose_object_info()`
  object-file: get rid of `the_repository` when freshening objects
  object-file: inline `check_and_freshen()` functions
  object-file: get rid of `the_repository` in `has_loose_object()`
  object-file: stop using `the_hash_algo`
  object-file: fix -Wsign-compare warnings
2025-07-22 14:29:11 -07:00
Junio C Hamano b3009658fe Merge branch 'ow/rebase-verify-insn-fmt-before-initializing-state' into seen
"git rebase -i" with bogus rebase.instructionFormat configuration
failed to produce the todo file after recording the state files,
leading to confused "git status"; this has been corrected.

* ow/rebase-verify-insn-fmt-before-initializing-state:
  rebase: write script before initializing state
2025-07-22 14:29:09 -07:00
Junio C Hamano b6b78261d3 Merge branch 'cc/promisor-remote-capability' into seen
The "promisor-remote" capability mechanism has been updated to
allow the "partialCloneFilter" settings and the "token" value to be
communicated from the server side.

Comments?

* cc/promisor-remote-capability:
  promisor-remote: use string constants for 'name' and 'url' too
  promisor-remote: allow a client to check fields
  promisor-remote: refactor how we parse advertised fields
  promisor-remote: allow a server to advertise more fields
  promisor-remote: refactor to get rid of 'struct strvec'
2025-07-22 14:29:09 -07:00
Junio C Hamano 27cbede901 Merge branch 'pw/compound-literal-test-balloon' into seen
Gauge if the world is ready for compound literal that can make the
resulting code clearer in some places.

Comments?

* pw/compound-literal-test-balloon:
  strbuf: add compound literal test balloon
2025-07-22 14:29:08 -07:00
Junio C Hamano 368f061ec0 Merge branch 'ag/send-email-imap-sent' into seen
* ag/send-email-imap-sent:
  send-email: add ability to send a copy of sent emails to an IMAP folder
2025-07-22 14:29:06 -07:00
Junio C Hamano 3904e2276a Merge branch 'en/ort-rename-fixes' into seen
* en/ort-rename-fixes:
  merge-ort: fix directory rename on top of source of other rename/delete
  merge-ort: fix incorrect file handling
  t6423: fix missed staging of file in testcases 12i,12j,12k
  t6423: document two bugs with rename-to-self testcases
  merge-ort: drop unnecessary temporary in check_for_directory_rename()
  merge-ort: update comments to modern testfile location
2025-07-22 14:29:04 -07:00
Junio C Hamano e6c99a19f3 Merge branch 'ps/reflog-migrate-fixes' into seen
* ps/reflog-migrate-fixes:
  refs: fix invalid old object IDs when migrating reflogs
  refs: stop unsetting REF_HAVE_OLD for log-only updates
  refs: fix identity for migrated reflogs
  ident: fix type of string length parameter
  builtin/reflog: implement subcommand to write new entries
  refs: export `ref_transaction_update_reflog()`
  builtin/reflog: improve grouping of subcommands
  Documentation/git-reflog: convert to use synopsis type
2025-07-22 14:29:03 -07:00
Junio C Hamano 47dc1b9b32 Merge branch 'ag/imap-send-list-folders-doc' into jch
* ag/imap-send-list-folders-doc:
  docs: explain how to use `git imap-send --list` command to get a list of available folders
2025-07-22 14:28:51 -07:00
Junio C Hamano b9c3707418 Merge branch 'jk/unleak-reflog-expire-entry' into jch
* jk/unleak-reflog-expire-entry:
  fixup! reflog: close leak of reflog expire entry
  t1410: add test of gc.<pattern>.reflogExpire config
  reflog: close leak of reflog expire entry
2025-07-22 14:28:50 -07:00
Junio C Hamano d646450cea Merge branch 'jc/do-not-scan-argv-without-parsing' into jch
* jc/do-not-scan-argv-without-parsing:
  rev-list: update a NEEDSWORK comment
2025-07-22 14:28:48 -07:00
Junio C Hamano adc06046c3 Merge branch 'jk/revision-no-early-output' into jch
Remove unsupported, unused, and unsupportable old option from "git
log".

* jk/revision-no-early-output:
  revision: drop early output option
2025-07-22 14:28:48 -07:00
Junio C Hamano 1d91ef4b0f Merge branch 'lm/add-p-context' into jch
"git add/etc -p" now honors diff.context configuration variable,
and learns to honor -U<n> option.

* lm/add-p-context:
  add-patch: add diff.context command line overrides
  add-patch: respect diff.context configuration
  t: use test_config in t4055
  t: use test_grep in t3701 and t4055
2025-07-22 14:28:47 -07:00
Junio C Hamano d3c1cc02ba Merge branch 'jc/rev-list-info-cleanup' into jch
* jc/rev-list-info-cleanup:
  rev-list: make "struct rev_list_info" static to the only user
2025-07-22 14:28:46 -07:00
Junio C Hamano df8ab13172 Merge branch 'ps/object-store-midx' into jch
Redefine where the multi-pack-index sits in the object subsystem,
which recently was restructured to allow multiple backends that
support a single object source that belongs to one repository.  A
midx does span mulitple "object sources".

Comments?

* ps/object-store-midx:
  midx: remove now-unused linked list of multi-pack indices
  packfile: stop using linked MIDX list in `get_all_packs()`
  packfile: stop using linked MIDX list in `find_pack_entry()`
  packfile: refactor `get_multi_pack_index()` to work on sources
  midx: stop using linked list when closing MIDX
  packfile: refactor `prepare_packed_git_one()` to work on sources
  midx: start tracking per object database source
2025-07-22 14:28:45 -07:00
Junio C Hamano 297ac787e1 Merge branch 'jc/tag-idempotent-no-op' into jch
"git tag T O" when the tag T is already pointing at the object O is
a no-op; we used to but no longer error out such a request and
require "--force" and instead turn it into a no-op.

* jc/tag-idempotent-no-op:
  tag: allow idempotent "git tag" without "--force"
2025-07-22 14:28:44 -07:00
Junio C Hamano 5cf5ae06fd Merge branch 'tb/prepare-midx-pack-cleanup' into jch
Improvement on Multi-pack-index API.

* tb/prepare-midx-pack-cleanup:
  midx: return a `packed_git` pointer from `prepare_midx_pack()`
  midx-write.c: extract inner loop from fill_packs_from_midx()
  midx-write.c: guard against incremental MIDXs in want_included_pack()
  midx: access pack names through `nth_midxed_pack_name()`
2025-07-22 14:28:43 -07:00
Junio C Hamano b50c10b33d Merge branch 'sk/reftable-clarify-tests' into jch
The reftable unit tests are now ported to the "clar" unit testing
framework.

* sk/reftable-clarify-tests:
  t/unit-tests: finalize migration of reftable-related tests
  t/unit-tests: convert reftable stack test to use clar
  t/unit-tests: convert reftable record test to use clar
  t/unit-tests: convert reftable readwrite test to use clar
  t/unit-tests: convert reftable table test to use clar
  t/unit-tests: convert reftable pq test to use clar
  t/unit-tests: convert reftable merged test to use clar
  t/unit-tests: convert reftable block test to use clar
  t/unit-tests: convert reftable basics test to use clar test framework
  t/unit-tests: implement clar specific reftable test helper functions
2025-07-22 14:28:42 -07:00
Junio C Hamano 141003b8e4 Merge branch 'cb/meson-avoid-broken-macos-pcre2' into jch
Build fix for macOS.

* cb/meson-avoid-broken-macos-pcre2:
  meson: work around broken system PCRE2 dependency in macOS
2025-07-22 14:28:41 -07:00
Junio C Hamano b8a4ec7bed Merge branch 'kn/for-each-ref-skip' into jch
"git for-each-ref" learns "--skip-until" option to help
applications that want to page its output.

* kn/for-each-ref-skip:
  fixup! refs: selectively set prefix in the seek functions
2025-07-22 14:28:41 -07:00
Junio C Hamano 1d449f03af ### match next 2025-07-22 14:28:40 -07:00
Junio C Hamano 4e2cbc22fe Merge branch 'ac/auto-comment-char-fix' into jch
"git commit" that concludes a conflicted merge failed to notice and remove
existing comment added automatically (like "# Conflicts:") when the
core.commentstring is set to 'auto'.

* ac/auto-comment-char-fix:
  config: set comment_line_str to "#" when core.commentChar=auto
  commit: avoid scanning trailing comments when 'core.commentChar' is "auto"
2025-07-22 14:28:40 -07:00
Junio C Hamano 98efb59854 Merge branch 'rs/pop-recent-commit-with-prio-queue' into jch
The pop_most_recent_commit() function can have quite expensive
worst case performance characteristics, which has been optimized by
using prio-queue data structure.

* rs/pop-recent-commit-with-prio-queue:
  commit: use prio_queue_replace() in pop_most_recent_commit()
  prio-queue: add prio_queue_replace()
  commit: convert pop_most_recent_commit() to prio_queue
2025-07-22 14:28:39 -07:00
Junio C Hamano 996979c49f Merge branch 'bc/contribution-under-non-real-names' into jch
Document that we do not require "real" name when signing your
patches off.

* bc/contribution-under-non-real-names:
  SubmittingPatches: allow non-real name contributions
2025-07-22 14:28:38 -07:00
Junio C Hamano 159b0c4711 Merge branch 'rj/meson-libexecdir-fix' into jch
Meson-based build did not handle libexecdir setting correctly,
which has been corrected.

* rj/meson-libexecdir-fix:
  po/meson.build: add missing 'ga' language code
  meson: fix installation when -Dlibexexdir is set
2025-07-22 14:28:38 -07:00
Junio C Hamano 0b10066455 Merge branch 'ss/compat-bswap-revamp' into jch
Clean-up compat/bswap.h mess.

* ss/compat-bswap-revamp:
  bswap.h: provide a built-in based version of bswap32/64 if possible
  bswap.h: remove optimized x86 version of bswap32/64
  bswap.h: always overwrite ntohl/ ntohll macros
  bswap.h: define GIT_LITTLE_ENDIAN on msvc as little endian
  bswap.h: add support for __BYTE_ORDER__
2025-07-22 14:28:37 -07:00
Junio C Hamano 45dc69fb2c Merge branch 'pw/config-kvi-remove-path' into jch
Remove a redundant member from kvi struct.

* pw/config-kvi-remove-path:
  config: remove unneeded struct field
2025-07-22 14:28:36 -07:00
Junio C Hamano 4a4f8e8ca3 Merge branch 'kl/test-installed-fix' into jch
GIT_TEST_INSTALLED was not honored in the recent topic related to
SHA256 hashes, which has been corrected.

* kl/test-installed-fix:
  test-lib: respect GIT_TEST_INSTALLED when querying default hash
2025-07-22 14:28:36 -07:00
Junio C Hamano 126035aac6 Merge branch 'pw/adopt-c99-bool-officially' into jch
Declare weather-balloon we raised for "bool" type 18 months ago a
success and officially allow using the type in our codebase.

* pw/adopt-c99-bool-officially:
  strbuf: convert predicates to return bool
  git-compat-util: convert string predicates to return bool
  CodingGuidelines: allow the use of bool
2025-07-22 14:28:35 -07:00
Junio C Hamano 877e45ae96 Merge branch 'cc/fast-import-export-signature-names' into jch
Clean up the way how signature on commit objects are exported to
and imported from fast-import stream.

* cc/fast-import-export-signature-names:
  fast-(import|export): improve on commit signature output format
2025-07-22 14:28:34 -07:00
Junio C Hamano 3b95e4c1fc Merge branch 'ps/sane-ctype-workaround' into jch
Our <sane-ctype.h> header file relied on that the system-supplied
<ctype.h> header is not later included, which would override our
macro definitions, but "amazon linux" broke this assumption.  Fix
this by preemptively including <ctype.h> near the beginning of
<sane-ctype.h> ourselves.

* ps/sane-ctype-workaround:
  sane-ctype: fix compiler error on Amazon Linux 2
2025-07-22 14:28:34 -07:00
Junio C Hamano 9c40d5e1ae Merge branch 'kn/for-each-ref-skip' (early part) into jch
* 'kn/for-each-ref-skip' (early part):
  for-each-ref: introduce a '--start-after' option
  ref-filter: remove unnecessary else clause
  refs: selectively set prefix in the seek functions
  ref-cache: remove unused function 'find_ref_entry()'
  refs: expose `ref_iterator` via 'refs.h'
2025-07-22 14:28:32 -07:00
Junio C Hamano a34ba44242 Merge branch 'ly/changed-paths-traversal' into jch
Lift the limitation to use changed-path filter in "git log" so that
it can be used for a pathspec with multiple literal paths.

* ly/changed-paths-traversal:
  bloom: optimize multiple pathspec items in revision
  revision: make helper for pathspec to bloom keyvec
  bloom: replace struct bloom_key * with struct bloom_keyvec
  bloom: rename function operates on bloom_key
  bloom: add test helper to return murmur3 hash
2025-07-22 14:28:32 -07:00
Hoyoung Lee 18fea17b6f t/helper/test-delta: fix possible resource leak and ensure safe cleanup
Initialize `fd` to -1 and unify all `open()`-related `close()` calls
under a single cleanup label. This prevents undefined behavior when
`fd` is used without initialization in error paths.

The cleanup logic now safely avoids calling `close()` on invalid
descriptors and ensures consistent resource management.

Signed-off-by: Hoyoung Lee <lhywkd22@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-07-22 14:05:34 -07:00
Hoyoung Lee 8cc19250b3 t/helper/test-truncate: close file descriptor after truncation
Fix a resource leak where the file descriptor was not closed after
truncating a file in t/helper/test-truncate.c.

Signed-off-by: Hoyoung Lee <lhywkd22@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-07-22 14:05:34 -07:00
Justin Tobler a102289001 builtin: unmark git-switch and git-restore as experimental
In 4e43b7ff (Declare both git-switch and git-restore experimental,
2019-04-25), the newly introduced git-switch(1) and git-restore(1)
commands were marked as experimental. This was done to provide time to
make breaking changes to the interface. It has now been over six years
since these commands were implemented and there has not been much change
that would warrant these commands remaining experimental.

A previous series[1] from about a year ago, also proposed removing the
experimental marker for these commands. One point of hesitation
pertained to an unaddressed suggestion[2] to change the `-c` and `-m`
short flags in git-switch(1) to allow them to be used for different
operations that may be a better fit. In the preceding patch, the `-m`
short flag is dropped following this suggestion. For the `-c` short flag
though, the operation to create a new branch is common enough to warrant
a short flag. Given how common this option is, changing it would be
disruptive to users and, absent a substantially better choice, is
difficult to justify changing.

Outside of these suggested option changes, there does not appear to be
any other discussion that would warrant breaking changes to these
commands. This likely signals that the foundations of these commands are
in a decent state. Furthermore, by removing the experimental marker, the
stability and maturity of these commands is clarified making it easier
for users to adopt and recommend.

Update the documentation for git-switch(1) and git-restore(1) to remove
the experimental label.

[1]: https://lore.kernel.org/git/20240220092957.1296283-2-matttbe@kernel.org/
[2]: https://lore.kernel.org/git/877dkdwgfe.fsf@evledraar.gmail.com/

Signed-off-by: Justin Tobler <jltobler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-07-22 13:34:48 -07:00
Justin Tobler 4f8f6129dd builtin: remove merge short flag for switch and restore
Both git-switch(1) and git-restore(1) inherit some common options from
git-checkout(1). One such option is the `--merge` flag and its
accompanying short flag `-m`.

In previous discussion[1] around removing the experimental marker for
git-switch(1), it has been suggested that this short flag could instead
be used for an option similar to `--move` from git-branch(1). Such a
feature is not yet implemented for this command, but reserving a short
flag for an uncommon option is unnecessary and hinders potential future
extension.

While these commands are still marked as experimental, remove the `-m`
flag from both git-switch(1) and git-restore(1) and update the
documentation accordingly. The `--conflict` flag is also now defined
explicitly for each command as to remain alongside its related `--merge`
companion.

[1]: https://lore.kernel.org/git/877dkdwgfe.fsf@evledraar.gmail.com/

Signed-off-by: Justin Tobler <jltobler@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-07-22 13:34:48 -07:00
Junio C Hamano 0e8243a355 Merge branch 'master' of https://github.com/j6t/git-gui
* 'master' of https://github.com/j6t/git-gui: (26 commits)
  git-gui: eliminate _search_exe
  git-gui: remove procs gitexec and _git_cmd
  git-gui: use dashless 'git cmd' form for read/write
  git-gui: default to full copy for linked worktrees
  git-gui: use git-clone
  git-gui: remove non-ttk code
  git-gui: remove ${NS} indirection for ttk
  git-gui: always use themed widgets from ttk
  git-gui: remove redundant check for Tk >= 8.5
  git-gui: remove unreachable Tk 8.4 code
  git-gui: remove unused git-version
  git-gui: use git_init to create new repository dir
  git-gui: git-remote is always available
  git-gui: git merge understands --strategy=recursive
  git-gui: git-diff knows submodules and textconv
  git-gui: git-blame understands -w and textconv
  git-gui: git rev-parse knows show_toplevel
  git-gui: use git-branch --show-current
  git-gui: git-diff-index always knows submodules
  git-gui: git ls-files knows --exclude-standard
  ...
2025-07-22 13:30:52 -07:00
Junio C Hamano afea2205b4 Merge branch 'master' of https://github.com/j6t/gitk
* 'master' of https://github.com/j6t/gitk: (21 commits)
  gitk: remove header of now empty section "General options"
  gitk: separate upstream refs when using the sort-by-type option
  gitk: make 'sort-refs-by-type' optional and persistent
  gitk: sort by ref type on the 'tags and heads' view
  gitk: choosefont - remove a stray debugging line
  gitk: allow horizontal commit-graph scrolling
  gitk: update aqua scrolling for TclTk 8.6 / TIP171
  gitk: update x11 scrolling for TclTk 8.6 / TIP 171
  gitk: update win32 scrolling for Tk 8.6 / TIP 171
  gitk: mousewheel scrolling functions for Tk 8.6
  gitk: wheel scrolling multiplier preference
  gitk: separate x11 / win32 / aqua Mouse bindings
  gitk: remove non-ttk support code
  gitk: replace ${NS} with ttk
  gitk: always use themed Tk (ttk)
  gitk: use $config_variables as list for save/restore
  gitk: remove implementations for Tcl/Tk < 8.6
  gitk: Make TclTk 8.6 the minimum, allow 8.7
  gitk: remove code targeting git <= 1.7.2
  gitk: require git >= 2.20
  ...
2025-07-22 13:30:21 -07:00