SHA256
7
0
forked from pool/git

4 Commits

Author SHA256 Message Date
29c41e30f3 Accepting request 1291488 from devel:tools:scm
OBS-URL: https://build.opensuse.org/request/show/1291488
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/git?expand=0&rev=325
2025-07-10 21:14:51 +00:00
d282f59a19 - refreshed gitk sha256 patches:
0001-gitk-Add-support-of-SHA256-repo.patch
  0002-git-gui-Add-support-of-SHA256-repo.patch

- update to 2.50.1 (boo#1245938 boo#1245939 boo#1245942 boo#1245943 boo#1245946 boo#1245947)

OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git?expand=0&rev=677
2025-07-09 12:22:02 +00:00
449f6b4529 Accepting request 1288721 from devel:tools:scm
OBS-URL: https://build.opensuse.org/request/show/1288721
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/git?expand=0&rev=324
2025-06-27 21:00:18 +00:00
25bd9d7139 - Fix git-gui citool SHA256 repo handling:
refreshed 0002-git-gui-Add-support-of-SHA256-repo.patch

OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/git?expand=0&rev=675
2025-06-26 15:46:25 +00:00
8 changed files with 175 additions and 75 deletions

View File

@@ -37,11 +37,11 @@ v1->v2:
gitk-git/gitk | 83 +++++++++++++++++++++++++++++++++++---------------- gitk-git/gitk | 83 +++++++++++++++++++++++++++++++++++----------------
1 file changed, 58 insertions(+), 25 deletions(-) 1 file changed, 58 insertions(+), 25 deletions(-)
diff --git a/gitk-git/gitk b/gitk-git/gitk Index: git/gitk-git/gitk
index 19689765cde5..04f5f5face68 100755 ===================================================================
--- a/gitk-git/gitk --- git.orig/gitk-git/gitk
+++ b/gitk-git/gitk +++ git/gitk-git/gitk
@@ -394,6 +394,7 @@ proc parseviewargs {n arglist} { @@ -479,6 +479,7 @@ proc parseviewargs {n arglist} {
proc parseviewrevs {view revs} { proc parseviewrevs {view revs} {
global vposids vnegids global vposids vnegids
@@ -49,7 +49,7 @@ index 19689765cde5..04f5f5face68 100755
if {$revs eq {}} { if {$revs eq {}} {
set revs HEAD set revs HEAD
@@ -407,7 +408,7 @@ proc parseviewrevs {view revs} { @@ -492,7 +493,7 @@ proc parseviewrevs {view revs} {
set badrev {} set badrev {}
for {set l 0} {$l < [llength $errlines]} {incr l} { for {set l 0} {$l < [llength $errlines]} {incr l} {
set line [lindex $errlines $l] set line [lindex $errlines $l]
@@ -58,7 +58,7 @@ index 19689765cde5..04f5f5face68 100755
if {[string match "fatal:*" $line]} { if {[string match "fatal:*" $line]} {
if {[string match "fatal: ambiguous argument*" $line] if {[string match "fatal: ambiguous argument*" $line]
&& $badrev ne {}} { && $badrev ne {}} {
@@ -624,6 +625,7 @@ proc updatecommits {} { @@ -698,6 +699,7 @@ proc updatecommits {} {
global hasworktree global hasworktree
global varcid vposids vnegids vflags vrevs global varcid vposids vnegids vflags vrevs
global show_notes global show_notes
@@ -66,7 +66,7 @@ index 19689765cde5..04f5f5face68 100755
set hasworktree [hasworktree] set hasworktree [hasworktree]
rereadrefs rereadrefs
@@ -657,7 +659,7 @@ proc updatecommits {} { @@ -731,7 +733,7 @@ proc updatecommits {} {
# take out positive refs that we asked for before or # take out positive refs that we asked for before or
# that we have already seen # that we have already seen
foreach rev $revs { foreach rev $revs {
@@ -75,7 +75,7 @@ index 19689765cde5..04f5f5face68 100755
if {[lsearch -exact $oldpos $rev] < 0 if {[lsearch -exact $oldpos $rev] < 0
&& ![info exists varcid($view,$rev)]} { && ![info exists varcid($view,$rev)]} {
lappend newrevs $rev lappend newrevs $rev
@@ -1542,6 +1544,7 @@ proc getcommitlines {fd inst view updating} { @@ -1614,6 +1616,7 @@ proc getcommitlines {fd inst view updati
global parents children curview hlview global parents children curview hlview
global idpending ordertok global idpending ordertok
global varccommits varcid varctok vtokmod vfilelimit vshortids global varccommits varcid varctok vtokmod vfilelimit vshortids
@@ -83,7 +83,7 @@ index 19689765cde5..04f5f5face68 100755
set stuff [read $fd 500000] set stuff [read $fd 500000]
# git log doesn't terminate the last commit with a null... # git log doesn't terminate the last commit with a null...
@@ -1624,7 +1627,7 @@ proc getcommitlines {fd inst view updating} { @@ -1696,7 +1699,7 @@ proc getcommitlines {fd inst view updati
} }
set ok 1 set ok 1
foreach id $ids { foreach id $ids {
@@ -92,7 +92,7 @@ index 19689765cde5..04f5f5face68 100755
set ok 0 set ok 0
break break
} }
@@ -1870,8 +1873,8 @@ proc getcommit {id} { @@ -1942,8 +1945,8 @@ proc getcommit {id} {
return 1 return 1
} }
@@ -103,7 +103,7 @@ index 19689765cde5..04f5f5face68 100755
# This is fairly slow... # This is fairly slow...
proc longid {prefix} { proc longid {prefix} {
global varcid curview vshortids global varcid curview vshortids
@@ -1904,6 +1907,7 @@ proc readrefs {} { @@ -1976,6 +1979,7 @@ proc readrefs {} {
global selecthead selectheadid global selecthead selectheadid
global hideremotes global hideremotes
global tclencoding global tclencoding
@@ -111,7 +111,7 @@ index 19689765cde5..04f5f5face68 100755
foreach v {tagids idtags headids idheads otherrefids idotherrefs} { foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
unset -nocomplain $v unset -nocomplain $v
@@ -1913,9 +1917,9 @@ proc readrefs {} { @@ -1985,9 +1989,9 @@ proc readrefs {} {
fconfigure $refd -encoding $tclencoding fconfigure $refd -encoding $tclencoding
} }
while {[gets $refd line] >= 0} { while {[gets $refd line] >= 0} {
@@ -124,7 +124,7 @@ index 19689765cde5..04f5f5face68 100755
if {![string match "refs/*" $ref]} continue if {![string match "refs/*" $ref]} continue
set name [string range $ref 5 end] set name [string range $ref 5 end]
if {[string match "remotes/*" $name]} { if {[string match "remotes/*" $name]} {
@@ -2210,6 +2214,7 @@ proc makewindow {} { @@ -2282,6 +2286,7 @@ proc makewindow {} {
global have_tk85 have_tk86 use_ttk NS global have_tk85 have_tk86 use_ttk NS
global git_version global git_version
global worddiff global worddiff
@@ -132,7 +132,7 @@ index 19689765cde5..04f5f5face68 100755
# The "mc" arguments here are purely so that xgettext # The "mc" arguments here are purely so that xgettext
# sees the following string as needing to be translated # sees the following string as needing to be translated
@@ -2335,7 +2340,7 @@ proc makewindow {} { @@ -2407,7 +2412,7 @@ proc makewindow {} {
-command gotocommit -width 8 -command gotocommit -width 8
$sha1but conf -disabledforeground [$sha1but cget -foreground] $sha1but conf -disabledforeground [$sha1but cget -foreground]
pack .tf.bar.sha1label -side left pack .tf.bar.sha1label -side left
@@ -141,7 +141,7 @@ index 19689765cde5..04f5f5face68 100755
trace add variable sha1string write sha1change trace add variable sha1string write sha1change
pack $sha1entry -side left -pady 2 pack $sha1entry -side left -pady 2
@@ -4062,6 +4067,7 @@ proc stopblaming {} { @@ -4132,6 +4137,7 @@ proc stopblaming {} {
proc read_line_source {fd inst} { proc read_line_source {fd inst} {
global blamestuff curview commfd blameinst nullid nullid2 global blamestuff curview commfd blameinst nullid nullid2
@@ -149,7 +149,7 @@ index 19689765cde5..04f5f5face68 100755
while {[gets $fd line] >= 0} { while {[gets $fd line] >= 0} {
lappend blamestuff($inst) $line lappend blamestuff($inst) $line
@@ -4082,7 +4088,7 @@ proc read_line_source {fd inst} { @@ -4152,7 +4158,7 @@ proc read_line_source {fd inst} {
set line [split [lindex $blamestuff($inst) 0] " "] set line [split [lindex $blamestuff($inst) 0] " "]
set id [lindex $line 0] set id [lindex $line 0]
set lnum [lindex $line 1] set lnum [lindex $line 1]
@@ -158,7 +158,7 @@ index 19689765cde5..04f5f5face68 100755
[string is digit -strict $lnum]} { [string is digit -strict $lnum]} {
# look for "filename" line # look for "filename" line
foreach l $blamestuff($inst) { foreach l $blamestuff($inst) {
@@ -5226,11 +5232,13 @@ proc askrelhighlight {row id} { @@ -5296,11 +5302,13 @@ proc askrelhighlight {row id} {
# Graph layout functions # Graph layout functions
proc shortids {ids} { proc shortids {ids} {
@@ -173,7 +173,7 @@ index 19689765cde5..04f5f5face68 100755
lappend res [string range $id 0 7] lappend res [string range $id 0 7]
} else { } else {
lappend res $id lappend res $id
@@ -5405,13 +5413,14 @@ proc get_viewmainhead {view} { @@ -5475,13 +5483,14 @@ proc get_viewmainhead {view} {
# git rev-list should give us just 1 line to use as viewmainheadid($view) # git rev-list should give us just 1 line to use as viewmainheadid($view)
proc getviewhead {fd inst view} { proc getviewhead {fd inst view} {
global viewmainheadid commfd curview viewinstances showlocalchanges global viewmainheadid commfd curview viewinstances showlocalchanges
@@ -189,7 +189,7 @@ index 19689765cde5..04f5f5face68 100755
set id $line set id $line
} }
set viewmainheadid($view) $id set viewmainheadid($view) $id
@@ -7175,10 +7184,11 @@ proc commit_descriptor {p} { @@ -7245,10 +7254,11 @@ proc commit_descriptor {p} {
# Also look for URLs of the form "http[s]://..." and make them web links. # Also look for URLs of the form "http[s]://..." and make them web links.
proc appendwithlinks {text tags} { proc appendwithlinks {text tags} {
global ctext linknum curview global ctext linknum curview
@@ -202,7 +202,7 @@ index 19689765cde5..04f5f5face68 100755
foreach l $links { foreach l $links {
set s [lindex $l 0] set s [lindex $l 0]
set e [lindex $l 1] set e [lindex $l 1]
@@ -7206,13 +7216,14 @@ proc appendwithlinks {text tags} { @@ -7276,13 +7286,14 @@ proc appendwithlinks {text tags} {
proc setlink {id lk} { proc setlink {id lk} {
global curview ctext pendinglinks global curview ctext pendinglinks
global linkfgcolor global linkfgcolor
@@ -218,7 +218,7 @@ index 19689765cde5..04f5f5face68 100755
set matches [longid $id] set matches [longid $id]
if {[llength $matches] > 0} { if {[llength $matches] > 0} {
if {[llength $matches] > 1} return if {[llength $matches] > 1} return
@@ -8857,13 +8868,16 @@ proc incrfont {inc} { @@ -8927,13 +8938,16 @@ proc incrfont {inc} {
proc clearsha1 {} { proc clearsha1 {} {
global sha1entry sha1string global sha1entry sha1string
@@ -236,7 +236,7 @@ index 19689765cde5..04f5f5face68 100755
if {$sha1string == {} if {$sha1string == {}
|| ([info exists currentid] && $sha1string == $currentid)} { || ([info exists currentid] && $sha1string == $currentid)} {
set state disabled set state disabled
@@ -8880,6 +8894,7 @@ proc sha1change {n1 n2 op} { @@ -8950,6 +8964,7 @@ proc sha1change {n1 n2 op} {
proc gotocommit {} { proc gotocommit {} {
global sha1string tagids headids curview varcid global sha1string tagids headids curview varcid
@@ -244,7 +244,7 @@ index 19689765cde5..04f5f5face68 100755
if {$sha1string == {} if {$sha1string == {}
|| ([info exists currentid] && $sha1string == $currentid)} return || ([info exists currentid] && $sha1string == $currentid)} return
@@ -8889,7 +8904,7 @@ proc gotocommit {} { @@ -8959,7 +8974,7 @@ proc gotocommit {} {
set id $headids($sha1string) set id $headids($sha1string)
} else { } else {
set id [string tolower $sha1string] set id [string tolower $sha1string]
@@ -253,7 +253,7 @@ index 19689765cde5..04f5f5face68 100755
set matches [longid $id] set matches [longid $id]
if {$matches ne {}} { if {$matches ne {}} {
if {[llength $matches] > 1} { if {[llength $matches] > 1} {
@@ -9378,6 +9393,7 @@ proc doseldiff {oldid newid} { @@ -9446,6 +9461,7 @@ proc doseldiff {oldid newid} {
proc mkpatch {} { proc mkpatch {} {
global rowmenuid currentid commitinfo patchtop patchnum NS global rowmenuid currentid commitinfo patchtop patchnum NS
@@ -261,7 +261,7 @@ index 19689765cde5..04f5f5face68 100755
if {![info exists currentid]} return if {![info exists currentid]} return
set oldid $currentid set oldid $currentid
@@ -9392,7 +9408,7 @@ proc mkpatch {} { @@ -9460,7 +9476,7 @@ proc mkpatch {} {
${NS}::label $top.title -text [mc "Generate patch"] ${NS}::label $top.title -text [mc "Generate patch"]
grid $top.title - -pady 10 grid $top.title - -pady 10
${NS}::label $top.from -text [mc "From:"] ${NS}::label $top.from -text [mc "From:"]
@@ -270,7 +270,7 @@ index 19689765cde5..04f5f5face68 100755
$top.fromsha1 insert 0 $oldid $top.fromsha1 insert 0 $oldid
$top.fromsha1 conf -state readonly $top.fromsha1 conf -state readonly
grid $top.from $top.fromsha1 -sticky w grid $top.from $top.fromsha1 -sticky w
@@ -9401,7 +9417,7 @@ proc mkpatch {} { @@ -9469,7 +9485,7 @@ proc mkpatch {} {
$top.fromhead conf -state readonly $top.fromhead conf -state readonly
grid x $top.fromhead -sticky w grid x $top.fromhead -sticky w
${NS}::label $top.to -text [mc "To:"] ${NS}::label $top.to -text [mc "To:"]
@@ -279,7 +279,7 @@ index 19689765cde5..04f5f5face68 100755
$top.tosha1 insert 0 $newid $top.tosha1 insert 0 $newid
$top.tosha1 conf -state readonly $top.tosha1 conf -state readonly
grid $top.to $top.tosha1 -sticky w grid $top.to $top.tosha1 -sticky w
@@ -9470,6 +9486,7 @@ proc mkpatchcan {} { @@ -9535,6 +9551,7 @@ proc mkpatchcan {} {
proc mktag {} { proc mktag {} {
global rowmenuid mktagtop commitinfo NS global rowmenuid mktagtop commitinfo NS
@@ -287,7 +287,7 @@ index 19689765cde5..04f5f5face68 100755
set top .maketag set top .maketag
set mktagtop $top set mktagtop $top
@@ -9479,7 +9496,7 @@ proc mktag {} { @@ -9544,7 +9561,7 @@ proc mktag {} {
${NS}::label $top.title -text [mc "Create tag"] ${NS}::label $top.title -text [mc "Create tag"]
grid $top.title - -pady 10 grid $top.title - -pady 10
${NS}::label $top.id -text [mc "ID:"] ${NS}::label $top.id -text [mc "ID:"]
@@ -296,7 +296,7 @@ index 19689765cde5..04f5f5face68 100755
$top.sha1 insert 0 $rowmenuid $top.sha1 insert 0 $rowmenuid
$top.sha1 conf -state readonly $top.sha1 conf -state readonly
grid $top.id $top.sha1 -sticky w grid $top.id $top.sha1 -sticky w
@@ -9587,10 +9604,11 @@ proc mktaggo {} { @@ -9652,10 +9669,11 @@ proc mktaggo {} {
proc copyreference {} { proc copyreference {} {
global rowmenuid autosellen global rowmenuid autosellen
@@ -308,8 +308,8 @@ index 19689765cde5..04f5f5face68 100755
+ if {$autosellen < $hashlength} { + if {$autosellen < $hashlength} {
lappend cmd --abbrev=$autosellen lappend cmd --abbrev=$autosellen
} }
set reference [eval exec $cmd $rowmenuid] set reference [safe_exec [concat $cmd $rowmenuid]]
@@ -9601,6 +9619,7 @@ proc copyreference {} { @@ -9666,6 +9684,7 @@ proc copyreference {} {
proc writecommit {} { proc writecommit {} {
global rowmenuid wrcomtop commitinfo wrcomcmd NS global rowmenuid wrcomtop commitinfo wrcomcmd NS
@@ -317,7 +317,7 @@ index 19689765cde5..04f5f5face68 100755
set top .writecommit set top .writecommit
set wrcomtop $top set wrcomtop $top
@@ -9610,7 +9629,7 @@ proc writecommit {} { @@ -9675,7 +9694,7 @@ proc writecommit {} {
${NS}::label $top.title -text [mc "Write commit to file"] ${NS}::label $top.title -text [mc "Write commit to file"]
grid $top.title - -pady 10 grid $top.title - -pady 10
${NS}::label $top.id -text [mc "ID:"] ${NS}::label $top.id -text [mc "ID:"]
@@ -326,7 +326,7 @@ index 19689765cde5..04f5f5face68 100755
$top.sha1 insert 0 $rowmenuid $top.sha1 insert 0 $rowmenuid
$top.sha1 conf -state readonly $top.sha1 conf -state readonly
grid $top.id $top.sha1 -sticky w grid $top.id $top.sha1 -sticky w
@@ -9690,6 +9709,7 @@ proc mvbranch {} { @@ -9755,6 +9774,7 @@ proc mvbranch {} {
proc branchdia {top valvar uivar} { proc branchdia {top valvar uivar} {
global NS commitinfo global NS commitinfo
@@ -334,7 +334,7 @@ index 19689765cde5..04f5f5face68 100755
upvar $valvar val $uivar ui upvar $valvar val $uivar ui
catch {destroy $top} catch {destroy $top}
@@ -9698,7 +9718,7 @@ proc branchdia {top valvar uivar} { @@ -9763,7 +9783,7 @@ proc branchdia {top valvar uivar} {
${NS}::label $top.title -text $ui(title) ${NS}::label $top.title -text $ui(title)
grid $top.title - -pady 10 grid $top.title - -pady 10
${NS}::label $top.id -text [mc "ID:"] ${NS}::label $top.id -text [mc "ID:"]
@@ -343,7 +343,7 @@ index 19689765cde5..04f5f5face68 100755
$top.sha1 insert 0 $val(id) $top.sha1 insert 0 $val(id)
$top.sha1 conf -state readonly $top.sha1 conf -state readonly
grid $top.id $top.sha1 -sticky w grid $top.id $top.sha1 -sticky w
@@ -9708,7 +9728,7 @@ proc branchdia {top valvar uivar} { @@ -9773,7 +9793,7 @@ proc branchdia {top valvar uivar} {
grid x $top.head -sticky ew grid x $top.head -sticky ew
grid columnconfigure $top 1 -weight 1 grid columnconfigure $top 1 -weight 1
${NS}::label $top.nlab -text [mc "Name:"] ${NS}::label $top.nlab -text [mc "Name:"]
@@ -352,7 +352,7 @@ index 19689765cde5..04f5f5face68 100755
$top.name insert 0 $val(name) $top.name insert 0 $val(name)
grid $top.nlab $top.name -sticky w grid $top.nlab $top.name -sticky w
${NS}::frame $top.buts ${NS}::frame $top.buts
@@ -11697,6 +11717,7 @@ proc prefspage_general {notebook} { @@ -11762,6 +11782,7 @@ proc prefspage_general {notebook} {
global tabstop wrapcomment wrapdefault limitdiffs global tabstop wrapcomment wrapdefault limitdiffs
global autocopy autoselect autosellen extdifftool perfile_attrs global autocopy autoselect autosellen extdifftool perfile_attrs
global hideremotes want_ttk have_ttk maxrefs web_browser global hideremotes want_ttk have_ttk maxrefs web_browser
@@ -360,7 +360,7 @@ index 19689765cde5..04f5f5face68 100755
set page [create_prefs_page $notebook.general] set page [create_prefs_page $notebook.general]
@@ -11725,7 +11746,8 @@ proc prefspage_general {notebook} { @@ -11790,7 +11811,8 @@ proc prefspage_general {notebook} {
-variable autoselect -variable autoselect
grid x $page.autoselect -sticky w grid x $page.autoselect -sticky w
} }
@@ -370,7 +370,7 @@ index 19689765cde5..04f5f5face68 100755
${NS}::label $page.autosellenl -text [mc "Length of commit ID to copy"] ${NS}::label $page.autosellenl -text [mc "Length of commit ID to copy"]
grid x $page.autosellenl $page.autosellen -sticky w grid x $page.autosellenl $page.autosellen -sticky w
@@ -12491,6 +12513,17 @@ if {$tclencoding == {}} { @@ -12556,6 +12578,17 @@ if {$tclencoding == {}} {
puts stderr "Warning: encoding $gitencoding is not supported by Tcl/Tk" puts stderr "Warning: encoding $gitencoding is not supported by Tcl/Tk"
} }
@@ -388,7 +388,7 @@ index 19689765cde5..04f5f5face68 100755
set gui_encoding [encoding system] set gui_encoding [encoding system]
catch { catch {
set enc [exec git config --get gui.encoding] set enc [exec git config --get gui.encoding]
@@ -12545,7 +12578,7 @@ set limitdiffs 1 @@ -12610,7 +12643,7 @@ set limitdiffs 1
set datetimeformat "%Y-%m-%d %H:%M:%S" set datetimeformat "%Y-%m-%d %H:%M:%S"
set autocopy 0 set autocopy 0
set autoselect 1 set autoselect 1
@@ -397,6 +397,3 @@ index 19689765cde5..04f5f5face68 100755
set perfile_attrs 0 set perfile_attrs 0
set want_ttk 1 set want_ttk 1
--
2.49.0

View File

@@ -1,7 +1,7 @@
From 36516ccae8af702640d900067998f4c7310d5b05 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <tiwai@suse.de> From: Takashi Iwai <tiwai@suse.de>
Date: Fri, 13 Jun 2025 17:36:34 +0200
Subject: [PATCH] git-gui: Add support of SHA256 repo Subject: [PATCH] git-gui: Add support of SHA256 repo
Date: Tue, 17 Jun 2025 08:03:59 +0200
Message-ID: <20250617060406.10159-1-tiwai@suse.de>
This patch adds the basic support of SHA256 Git repositories. This patch adds the basic support of SHA256 Git repositories.
The needed changes were mostly about adjusting the fixed ID length of The needed changes were mostly about adjusting the fixed ID length of
@@ -12,14 +12,15 @@ Signed-off-by: Takashi Iwai <tiwai@suse.de>
git-gui/git-gui.sh | 13 ++++++++++++- git-gui/git-gui.sh | 13 ++++++++++++-
git-gui/lib/blame.tcl | 12 ++++++++---- git-gui/lib/blame.tcl | 12 ++++++++----
git-gui/lib/choose_repository.tcl | 8 ++++++-- git-gui/lib/choose_repository.tcl | 8 ++++++--
git-gui/lib/commit.tcl | 3 ++-
git-gui/lib/remote_branch_delete.tcl | 4 +++- git-gui/lib/remote_branch_delete.tcl | 4 +++-
4 files changed, 29 insertions(+), 8 deletions(-) 5 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh Index: git/git-gui/git-gui.sh
index 28572c889c0e..206981190535 100755 ===================================================================
--- a/git-gui/git-gui.sh --- git.orig/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh +++ git/git-gui/git-gui.sh
@@ -1275,6 +1275,17 @@ if {[catch { @@ -1298,6 +1298,17 @@ if {[catch {
set picked 1 set picked 1
} }
@@ -37,7 +38,7 @@ index 28572c889c0e..206981190535 100755
# we expand the _gitdir when it's just a single dot (i.e. when we're being # we expand the _gitdir when it's just a single dot (i.e. when we're being
# run from the .git dir itself) lest the routines to find the worktree # run from the .git dir itself) lest the routines to find the worktree
# get confused # get confused
@@ -1822,7 +1833,7 @@ proc short_path {path} { @@ -1845,7 +1856,7 @@ proc short_path {path} {
} }
set next_icon_id 0 set next_icon_id 0
@@ -46,10 +47,10 @@ index 28572c889c0e..206981190535 100755
proc merge_state {path new_state {head_info {}} {index_info {}}} { proc merge_state {path new_state {head_info {}} {index_info {}}} {
global file_states next_icon_id null_sha1 global file_states next_icon_id null_sha1
diff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl Index: git/git-gui/lib/blame.tcl
index 8441e109be32..1f0b8ea28504 100644 ===================================================================
--- a/git-gui/lib/blame.tcl --- git.orig/git-gui/lib/blame.tcl
+++ b/git-gui/lib/blame.tcl +++ git/git-gui/lib/blame.tcl
@@ -426,6 +426,7 @@ method _kill {} { @@ -426,6 +426,7 @@ method _kill {} {
method _load {jump} { method _load {jump} {
@@ -85,7 +86,7 @@ index 8441e109be32..1f0b8ea28504 100644
set t [string range $c 0 8]... set t [string range $c 0 8]...
} elseif {$c eq {}} { } elseif {$c eq {}} {
set t {Working Directory} set t {Working Directory}
@@ -627,6 +630,7 @@ method _exec_blame {cur_w cur_d options cur_s} { @@ -627,6 +630,7 @@ method _exec_blame {cur_w cur_d options
method _read_blame {fd cur_w cur_d} { method _read_blame {fd cur_w cur_d} {
upvar #0 $cur_d line_data upvar #0 $cur_d line_data
variable group_colors variable group_colors
@@ -111,10 +112,10 @@ index 8441e109be32..1f0b8ea28504 100644
set commit_abbr work set commit_abbr work
set commit_type curr_commit set commit_type curr_commit
} elseif {$cmit eq $commit} { } elseif {$cmit eq $commit} {
diff --git a/git-gui/lib/choose_repository.tcl b/git-gui/lib/choose_repository.tcl Index: git/git-gui/lib/choose_repository.tcl
index d23abedcb36f..6078b1c7e2c4 100644 ===================================================================
--- a/git-gui/lib/choose_repository.tcl --- git.orig/git-gui/lib/choose_repository.tcl
+++ b/git-gui/lib/choose_repository.tcl +++ git/git-gui/lib/choose_repository.tcl
@@ -870,6 +870,8 @@ method _do_clone_HEAD {ok} { @@ -870,6 +870,8 @@ method _do_clone_HEAD {ok} {
} }
@@ -126,14 +127,14 @@ index d23abedcb36f..6078b1c7e2c4 100644
if {$ok} { if {$ok} {
@@ -879,7 +881,7 @@ method _do_clone_full_end {ok} { @@ -879,7 +881,7 @@ method _do_clone_full_end {ok} {
if {[file exists [gitdir FETCH_HEAD]]} { if {[file exists [gitdir FETCH_HEAD]]} {
set fd [open [gitdir FETCH_HEAD] r] set fd [safe_open_file [gitdir FETCH_HEAD] r]
while {[gets $fd line] >= 0} { while {[gets $fd line] >= 0} {
- if {[regexp "^(.{40})\t\t" $line line HEAD]} { - if {[regexp "^(.{40})\t\t" $line line HEAD]} {
+ if {[regexp [string map "@@ $hashlength" "^(.{@@})\t\t"] $line line HEAD]} { + if {[regexp [string map "@@ $hashlength" "^(.{@@})\t\t"] $line line HEAD]} {
break break
} }
} }
@@ -965,6 +967,8 @@ method _do_clone_checkout {HEAD} { @@ -966,6 +968,8 @@ method _do_clone_checkout {HEAD} {
} }
method _readtree_wait {fd} { method _readtree_wait {fd} {
@@ -142,7 +143,7 @@ index d23abedcb36f..6078b1c7e2c4 100644
set buf [read $fd] set buf [read $fd]
$o_status_op update_meter $buf $o_status_op update_meter $buf
append readtree_err $buf append readtree_err $buf
@@ -986,7 +990,7 @@ method _readtree_wait {fd} { @@ -987,7 +991,7 @@ method _readtree_wait {fd} {
# -- Run the post-checkout hook. # -- Run the post-checkout hook.
# #
@@ -151,10 +152,31 @@ index d23abedcb36f..6078b1c7e2c4 100644
[git rev-parse HEAD] 1] [git rev-parse HEAD] 1]
if {$fd_ph ne {}} { if {$fd_ph ne {}} {
global pch_error global pch_error
diff --git a/git-gui/lib/remote_branch_delete.tcl b/git-gui/lib/remote_branch_delete.tcl Index: git/git-gui/lib/commit.tcl
index 5ba9fcadd17f..8ea672479306 100644 ===================================================================
--- a/git-gui/lib/remote_branch_delete.tcl --- git.orig/git-gui/lib/commit.tcl
+++ b/git-gui/lib/remote_branch_delete.tcl +++ git/git-gui/lib/commit.tcl
@@ -348,6 +348,7 @@ proc commit_committree {fd_wt curHEAD ms
global file_states selected_paths rescan_active
global repo_config
global env
+ global hashlength
gets $fd_wt tree_id
if {[catch {close $fd_wt} err]} {
@@ -367,7 +368,7 @@ proc commit_committree {fd_wt curHEAD ms
close $fd_ot
if {[string equal -length 5 {tree } $old_tree]
- && [string length $old_tree] == 45} {
+ && [string length $old_tree] == [expr {$hashlength + 5}]} {
set old_tree [string range $old_tree 5 end]
} else {
error [mc "Commit %s appears to be corrupt" $PARENT]
Index: git/git-gui/lib/remote_branch_delete.tcl
===================================================================
--- git.orig/git-gui/lib/remote_branch_delete.tcl
+++ git/git-gui/lib/remote_branch_delete.tcl
@@ -323,6 +323,8 @@ method _load {cache uri} { @@ -323,6 +323,8 @@ method _load {cache uri} {
} }
@@ -173,6 +195,3 @@ index 5ba9fcadd17f..8ea672479306 100644
if {[regsub ^refs/heads/ $ref {} abr]} { if {[regsub ^refs/heads/ $ref {} abr]} {
lappend head_list $abr lappend head_list $abr
lappend head_cache($cache) $abr lappend head_cache($cache) $abr
--
2.49.0

Binary file not shown.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dff3c000e400ace3a63b8a6f8b3b76b88ecfdffd4504a04aba4248372cdec045
size 7878256

BIN
git-2.50.1.tar.sign Normal file

Binary file not shown.

3
git-2.50.1.tar.xz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7e3e6c36decbd8f1eedd14d42db6674be03671c2204864befa2a41756c5c8fc4
size 7880972

View File

@@ -1,3 +1,87 @@
-------------------------------------------------------------------
Wed Jul 9 11:01:47 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>
- refreshed gitk sha256 patches:
0001-gitk-Add-support-of-SHA256-repo.patch
0002-git-gui-Add-support-of-SHA256-repo.patch
-------------------------------------------------------------------
Wed Jul 9 10:48:56 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>
- update to 2.50.1 (boo#1245938 boo#1245939 boo#1245942 boo#1245943
boo#1245946 boo#1245947)
Security fixes for CVE-2025-27613, CVE-2025-27614,
CVE-2025-46334, CVE-2025-46835, CVE-2025-48384, CVE-2025-48385,
and CVE-2025-48386
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.
-------------------------------------------------------------------
Thu Jun 26 15:32:00 UTC 2025 - Takashi Iwai <tiwai@suse.com>
- Fix git-gui citool SHA256 repo handling:
refreshed 0002-git-gui-Add-support-of-SHA256-repo.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Jun 17 17:55:40 UTC 2025 - Marcus Rueckert <mrueckert@suse.de> Tue Jun 17 17:55:40 UTC 2025 - Marcus Rueckert <mrueckert@suse.de>

View File

@@ -43,7 +43,7 @@
%bcond_with asciidoctor %bcond_with asciidoctor
%endif %endif
Name: git Name: git
Version: 2.50.0 Version: 2.50.1
Release: 0 Release: 0
Summary: Fast, scalable, distributed revision control system Summary: Fast, scalable, distributed revision control system
License: GPL-2.0-only License: GPL-2.0-only