1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-08 16:46:35 +02:00

Merge remote-tracking branch 'paulus/master' into pm/gitk-update

* paulus/master:
  gitk: Resize panes correctly when reducing window size
  gitk: replace tabs with spaces
  gitk: fix the context menu not appearing in the presence of submodule diffs
  gitk: Un-hide selection in areas with non-default background color
  gitk: add diff lines background colors
  gitk: be prepared to be run in a bare repository
  gitk: Preserve window dimensions on exit when not using ttk themes
  gitk: don't highlight files after submodules as submodules
  gitk: fix branch name encoding error
  gitk: rename "commit summary" to "commit reference"
This commit is contained in:
Junio C Hamano 2020-10-03 10:06:27 -07:00
commit e2b9cb1c5a

View File

@ -34,8 +34,7 @@ proc gitworktree {} {
# cdup to obtain a relative path to the top of the worktree. If
# run from the top, the ./ prefix ensures normalize expands pwd.
if {[catch { set _gitworktree $env(GIT_WORK_TREE) }]} {
catch {set _gitworktree [exec git config --get core.worktree]}
if {$_gitworktree eq ""} {
if {[catch {set _gitworktree [exec git config --get core.worktree]}]} {
set _gitworktree [file normalize ./[exec git rev-parse --show-cdup]]
}
}
@ -1780,11 +1779,15 @@ proc readrefs {} {
global otherrefids idotherrefs mainhead mainheadid
global selecthead selectheadid
global hideremotes
global tclencoding
foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
unset -nocomplain $v
}
set refd [open [list | git show-ref -d] r]
if {$tclencoding != {}} {
fconfigure $refd -encoding $tclencoding
}
while {[gets $refd line] >= 0} {
if {[string index $line 40] ne " "} continue
set id [string range $line 0 39]
@ -2069,7 +2072,7 @@ proc makewindow {} {
global rowctxmenu fakerowmenu mergemax wrapcomment
global highlight_files gdttype
global searchstring sstring
global bgcolor fgcolor bglist fglist diffcolors selectbgcolor
global bgcolor fgcolor bglist fglist diffcolors diffbgcolors selectbgcolor
global uifgcolor uifgdisabledcolor
global filesepbgcolor filesepfgcolor
global mergecolors foundbgcolor currentsearchhitbgcolor
@ -2430,7 +2433,9 @@ proc makewindow {} {
$ctext tag conf filesep -font textfontbold -fore $filesepfgcolor -back $filesepbgcolor
$ctext tag conf hunksep -fore [lindex $diffcolors 2]
$ctext tag conf d0 -fore [lindex $diffcolors 0]
$ctext tag conf d0 -back [lindex $diffbgcolors 0]
$ctext tag conf dresult -fore [lindex $diffcolors 1]
$ctext tag conf dresult -back [lindex $diffbgcolors 1]
$ctext tag conf m0 -fore [lindex $mergecolors 0]
$ctext tag conf m1 -fore [lindex $mergecolors 1]
$ctext tag conf m2 -fore [lindex $mergecolors 2]
@ -2455,6 +2460,12 @@ proc makewindow {} {
$ctext tag conf currentsearchhit -back $currentsearchhitbgcolor
$ctext tag conf wwrap -wrap word -lmargin2 1c
$ctext tag conf bold -font textfontbold
# set these to the lowest priority:
$ctext tag lower currentsearchhit
$ctext tag lower found
$ctext tag lower filesep
$ctext tag lower dresult
$ctext tag lower d0
.pwbottom add .bleft
if {!$use_ttk} {
@ -2526,9 +2537,9 @@ proc makewindow {} {
bind %W <Map> {}
%W sashpos 0 $::geometry(botwidth)
}
bind .pwbottom <Configure> {resizecdetpanes %W %w}
}
bind .pwbottom <Configure> {resizecdetpanes %W %w}
pack .ctop -fill both -expand 1
bindall <1> {selcanvline %W %x %y}
#bindall <B1-Motion> {selcanvline %W %x %y}
@ -2640,7 +2651,7 @@ proc makewindow {} {
{mc "Diff selected -> this" command {diffvssel 1}}
{mc "Make patch" command mkpatch}
{mc "Create tag" command mktag}
{mc "Copy commit summary" command copysummary}
{mc "Copy commit reference" command copyreference}
{mc "Write commit to file" command writecommit}
{mc "Create new branch" command mkbranch}
{mc "Cherry-pick this commit" command cherrypick}
@ -2942,9 +2953,12 @@ proc savestuff {w} {
}
proc resizeclistpanes {win w} {
global oldwidth use_ttk
global oldwidth oldsash use_ttk
if {[info exists oldwidth($win)]} {
if {$use_ttk} {
if {[info exists oldsash($win)]} {
set s0 [lindex $oldsash($win) 0]
set s1 [lindex $oldsash($win) 1]
} elseif {$use_ttk} {
set s0 [$win sashpos 0]
set s1 [$win sashpos 1]
} else {
@ -2978,14 +2992,17 @@ proc resizeclistpanes {win w} {
$win sash place 0 $sash0 [lindex $s0 1]
$win sash place 1 $sash1 [lindex $s1 1]
}
set oldsash($win) [list $sash0 $sash1]
}
set oldwidth($win) $w
}
proc resizecdetpanes {win w} {
global oldwidth use_ttk
global oldwidth oldsash use_ttk
if {[info exists oldwidth($win)]} {
if {$use_ttk} {
if {[info exists oldsash($win)]} {
set s0 $oldsash($win)
} elseif {$use_ttk} {
set s0 [$win sashpos 0]
} else {
set s0 [$win sash coord 0]
@ -3007,6 +3024,7 @@ proc resizecdetpanes {win w} {
} else {
$win sash place 0 $sash0 [lindex $s0 1]
}
set oldsash($win) $sash0
}
set oldwidth($win) $w
}
@ -8146,6 +8164,8 @@ proc parseblobdiffline {ids line} {
}
# start of a new file
set diffinhdr 1
set currdiffsubmod ""
$ctext insert end "\n"
set curdiffstart [$ctext index "end - 1c"]
lappend ctext_file_names ""
@ -8218,10 +8238,10 @@ proc parseblobdiffline {ids line} {
if {$currdiffsubmod != $fname} {
$ctext insert end "\n"; # Add newline after commit message
}
if {$currdiffsubmod != $fname} {
set curdiffstart [$ctext index "end - 1c"]
lappend ctext_file_names ""
if {$currdiffsubmod != $fname} {
lappend ctext_file_lines $fname
lappend ctext_file_lines [lindex [split $curdiffstart "."] 0]
makediffhdr $fname $ids
set currdiffsubmod $fname
$ctext insert end "\n$line\n" filesep
@ -8229,11 +8249,9 @@ proc parseblobdiffline {ids line} {
$ctext insert end "$line\n" filesep
}
} elseif {$currdiffsubmod != "" && ![string compare -length 3 " >" $line]} {
set $currdiffsubmod ""
set line [encoding convertfrom $diffencoding $line]
$ctext insert end "$line\n" dresult
} elseif {$currdiffsubmod != "" && ![string compare -length 3 " <" $line]} {
set $currdiffsubmod ""
set line [encoding convertfrom $diffencoding $line]
$ctext insert end "$line\n" d0
} elseif {$diffinhdr} {
@ -9426,7 +9444,7 @@ proc mktaggo {} {
mktagcan
}
proc copysummary {} {
proc copyreference {} {
global rowmenuid autosellen
set format "%h (\"%s\", %ad)"
@ -9434,10 +9452,10 @@ proc copysummary {} {
if {$autosellen < 40} {
lappend cmd --abbrev=$autosellen
}
set summary [eval exec $cmd $rowmenuid]
set reference [eval exec $cmd $rowmenuid]
clipboard clear
clipboard append $summary
clipboard append $reference
}
proc writecommit {} {
@ -11603,6 +11621,7 @@ proc prefspage_general {notebook} {
proc prefspage_colors {notebook} {
global NS uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor
global diffbgcolors
set page [create_prefs_page $notebook.colors]
@ -11625,11 +11644,23 @@ proc prefspage_colors {notebook} {
-command [list choosecolor diffcolors 0 $page.diffold [mc "diff old lines"] \
[list $ctext tag conf d0 -foreground]]
grid x $page.diffoldbut $page.diffold -sticky w
label $page.diffoldbg -padx 40 -relief sunk -background [lindex $diffbgcolors 0]
${NS}::button $page.diffoldbgbut -text [mc "Diff: old lines bg"] \
-command [list choosecolor diffbgcolors 0 $page.diffoldbg \
[mc "diff old lines bg"] \
[list $ctext tag conf d0 -background]]
grid x $page.diffoldbgbut $page.diffoldbg -sticky w
label $page.diffnew -padx 40 -relief sunk -background [lindex $diffcolors 1]
${NS}::button $page.diffnewbut -text [mc "Diff: new lines"] \
-command [list choosecolor diffcolors 1 $page.diffnew [mc "diff new lines"] \
[list $ctext tag conf dresult -foreground]]
grid x $page.diffnewbut $page.diffnew -sticky w
label $page.diffnewbg -padx 40 -relief sunk -background [lindex $diffbgcolors 1]
${NS}::button $page.diffnewbgbut -text [mc "Diff: new lines bg"] \
-command [list choosecolor diffbgcolors 1 $page.diffnewbg \
[mc "diff new lines bg"] \
[list $ctext tag conf dresult -background]]
grid x $page.diffnewbgbut $page.diffnewbg -sticky w
label $page.hunksep -padx 40 -relief sunk -background [lindex $diffcolors 2]
${NS}::button $page.hunksepbut -text [mc "Diff: hunk header"] \
-command [list choosecolor diffcolors 2 $page.hunksep \
@ -12373,7 +12404,8 @@ if {[tk windowingsystem] eq "win32"} {
set web_browser "xdg-open"
}
}
set diffcolors {red "#00a000" blue}
set diffcolors {"#c30000" "#009800" blue}
set diffbgcolors {"#fff3f3" "#f0fff0"}
set diffcontext 3
set mergecolors {red blue "#00ff00" purple brown "#009090" magenta "#808000" "#009000" "#ff0080" cyan "#b07070" "#70b0f0" "#70f0b0" "#f0b070" "#ff70b0"}
set ignorespace 0
@ -12444,7 +12476,7 @@ set config_variables {
remotebgcolor tagbgcolor tagfgcolor tagoutlinecolor reflinecolor
filesepbgcolor filesepfgcolor linehoverbgcolor linehoverfgcolor
linehoveroutlinecolor mainheadcirclecolor workingfilescirclecolor
indexcirclecolor circlecolors linkfgcolor circleoutlinecolor
indexcirclecolor circlecolors linkfgcolor circleoutlinecolor diffbgcolors
web_browser
}
foreach var $config_variables {
@ -12599,7 +12631,7 @@ set cdup {}
if {[expr {[exec git rev-parse --is-inside-work-tree] == "true"}]} {
set cdup [exec git rev-parse --show-cdup]
}
set worktree [exec git rev-parse --show-toplevel]
set worktree [gitworktree]
setcoords
makewindow
catch {