Subject: [GIT PULL] git-gui: Sync with 2.50.1, Tcl >= 8.6, git >= 2.36

From: Johannes Sixt <[email-masked]>
Date: Tue, 22 Jul 2025 19:45:06 +0200

Many of the commits listed below are already in git.git via v2.50.1.
Additionally, with this version, we require more modern Tcl/Tk and Git.
Other changes are:
- Bulgarian translation.
- Fix for a redundant trailing empty line in commit messages.
- SHA256 repositories are supported

The following changes since commit 765f1db2b5a890c0fa01f8976f197a8483357afe:

  git-gui: don't delete source files when auto_mkindex fails (2025-06-06 07:43:37 +0200)

are available in the Git repository at:

  https://github.com/j6t/git-gui.git master

for you to fetch changes up to 436dad00c5a717d56bf4feb8a1f5d39126579fe6:

  Merge branch 'ml/abandon-old-versions' (2025-07-22 17:37:33 +0200)

----------------------------------------------------------------
Alexander Shopov (1):
      git-gui i18n: Updated Bulgarian translation (578t)

Johannes Sixt (21):
      git-gui: do not end the commit message with an empty line
      Merge branch 'ml/git-gui-exec-path-fix'
      git-gui: remove special treatment of Windows from open_cmd_pipe
      git-gui: remove git config --list handling for git < 1.5.3
      git-gui: treat file names beginning with "|" as relative paths
      git-gui: sanitize 'exec' arguments: simple cases
      git-gui: sanitize 'exec' arguments: background
      git-gui: remove option --stderr from git_read
      git-gui: break out a separate function git_read_nice
      git-gui: use git_read in githook_read
      git-gui: convert git_read*, git_write to be non-variadic
      git-gui: pass redirections as separate argument to _open_stdout_stderr
      git-gui: pass redirections as separate argument to git_read
      git-gui: introduce function git_redir for git calls with redirections
      git-gui: do not mistake command arguments as redirection operators
      git-gui: sanitize 'exec' arguments: convert new 'cygpath' calls
      Merge branch 'ob/strip-comments-on-commit'
      Merge branch 'ml/replace-auto-execok'
      Merge branch 'js/fix-open-exec-git'
      Merge branch 'ml/tcl86'
      Merge branch 'ml/abandon-old-versions'

Mark Levedahl (35):
      git-gui: _which, only add .exe suffix if not present
      git-gui: use [is_Windows], not bad _shellpath
      git-gui: make _shellpath usable on startup
      git-gui: remove Tcl 8.4 workaround on 2>@1 redirection
      git-gui: use only the configured shell
      git-gui: remove HEAD detachment implementation for git < 1.5.3
      git-gui: remove unused proc is_shellscript
      git-gui: avoid auto_execok for git-bash menu item
      git-gui: avoid auto_execok in do_windows_shortcut
      git-gui: cleanup git-bash menu item
      git-gui: assure PATH has only absolute elements.
      git-gui: sanitize $PATH on all platforms
      git-gui: override exec and open only on Windows
      git-gui: require git >= 2.36
      git-gui: Make TclTk 8.6 the minimum, allow 8.7
      git-gui: git ls-files knows --exclude-standard
      git-gui: git-diff-index always knows submodules
      git-gui: use git-branch --show-current
      git-gui: git rev-parse knows show_toplevel
      git-gui: git-blame understands -w and textconv
      git-gui: git-diff knows submodules and textconv
      git-gui: git merge understands --strategy=recursive
      git-gui: git-remote is always available
      git-gui: use git_init to create new repository dir
      git-gui: remove unused git-version
      git-gui: remove unreachable Tk 8.4 code
      git-gui: remove redundant check for Tk >= 8.5
      git-gui: always use themed widgets from ttk
      git-gui: remove ${NS} indirection for ttk
      git-gui: remove non-ttk code
      git-gui: use git-clone
      git-gui: default to full copy for linked worktrees
      git-gui: use dashless 'git cmd' form for read/write
      git-gui: remove procs gitexec and _git_cmd
      git-gui: eliminate _search_exe

Takashi Iwai (2):
      git-gui: Replace null_sha1 with nullid
      git-gui: Add support of SHA256 repo

Taylor Blau (1):
      Merge branch 'ml/replace-auto-execok' into js/fix-open-exec

 git-gui.sh                   |  877 ++++------
 lib/about.tcl                |   10 +-
 lib/blame.tcl                |   49 +-
 lib/branch.tcl               |    6 +-
 lib/branch_checkout.tcl      |   15 +-
 lib/branch_create.tcl        |   36 +-
 lib/branch_delete.tcl        |   12 +-
 lib/branch_rename.tcl        |   26 +-
 lib/browser.tcl              |   25 +-
 lib/checkout_op.tcl          |   29 +-
 lib/choose_font.tcl          |   25 +-
 lib/choose_repository.tcl    |  565 +------
 lib/choose_rev.tcl           |   52 +-
 lib/class.tcl                |    1 -
 lib/commit.tcl               |   23 +-
 lib/console.tcl              |   20 +-
 lib/database.tcl             |   15 +-
 lib/diff.tcl                 |   39 +-
 lib/error.tcl                |   11 +-
 lib/index.tcl                |   16 +-
 lib/line.tcl                 |    7 +-
 lib/merge.tcl                |   27 +-
 lib/mergetool.tcl            |    8 +-
 lib/option.tcl               |   72 +-
 lib/remote.tcl               |   10 +-
 lib/remote_add.tcl           |   28 +-
 lib/remote_branch_delete.tcl |   46 +-
 lib/search.tcl               |   13 +-
 lib/shortcut.tcl             |   14 +-
 lib/sshkey.tcl               |   28 +-
 lib/status_bar.tcl           |   13 +-
 lib/themed.tcl               |  110 +-
 lib/tools.tcl                |    7 +-
 lib/tools_dlg.tcl            |   66 +-
 lib/transport.tcl            |   40 +-
 lib/win32.tcl                |    9 +-
 po/bg.po                     | 3608 +++++++++++++++++++++---------------------
 37 files changed, 2592 insertions(+), 3366 deletions(-)