From 8f49975bbd981a592c2c526e2a2b767f37a3feee Mon Sep 17 00:00:00 2001 From: Mark Levedahl Date: Thu, 5 Jun 2025 17:09:02 -0400 Subject: [PATCH] gitk: require git >= 2.20 gitk has alternate code paths for early git up to 1.72, and has no defined minimum version. Setting any version > 1.72 as minimum will allow removing those code paths. The recent set of advisories published for git, gitk, and git-gui add updates for v2.43 and later, but Debian has buster withgit 2.20 still available. While Debian would be responsible for backporting any fixes to such an early version, we have no good reason preclude it. So, make 2.20 the minimum required git version. Helped-by: Johannes Sixt Signed-off-by: Mark Levedahl --- gitk | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/gitk b/gitk index 5be8b2aeb0..c05808b353 100755 --- a/gitk +++ b/gitk @@ -9,6 +9,22 @@ exec wish "$0" -- "$@" package require Tk +set MIN_GIT_VERSION 2.20 +regexp {^git version ([\d.]*\d)} [exec git version] _ git_version +if {[package vcompare $git_version $MIN_GIT_VERSION] < 0} { + set message "The git executable found is too old. +The minimum required version is $MIN_GIT_VERSION.0. +The version of git found is $git_version." + + catch {wm withdraw .} + tk_messageBox \ + -icon error \ + -type ok \ + -title "gitk: fatal error" \ + -message $message + exit 1 +} + ###################################################################### ## ## Enabling platform-specific code paths @@ -12820,8 +12836,6 @@ if {$use_ttk} { setttkstyle } -regexp {^git version ([\d.]*\d)} [exec git version] _ git_version - set show_notes {} if {[package vcompare $git_version "1.6.6.2"] >= 0} { set show_notes "--show-notes"