From c539449b2df0381de1d34c70b093b68370e89a4e Mon Sep 17 00:00:00 2001 From: "Shawn O. Pearce" Date: Fri, 26 Jan 2007 04:43:43 -0500 Subject: [PATCH] git-gui: Support merge.summary, merge.verbosity. Changed our private merge summary config option to be the same as the merge.summary option supported by core Git. This means setting the "Show Merge Summary" flag in git-gui will have the same effect on the command line. In the same vein I've also added merge.verbosity to the gui options, allowing the user to adjust the verbosity level of the recursive merge strategy. I happen to like level 1 and suggest that other users use that, but level 2 is the core Git default right now so we'll use the same default in git-gui. Unfortunately it appears as though core Git has broken support for the merge.summary option, even though its still in the documentation For the time being we should pass along --no-summary to git-merge if merge.summary is false. Signed-off-by: Shawn O. Pearce --- git-gui.sh | 77 +++++++++++++++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 27 deletions(-) diff --git a/git-gui.sh b/git-gui.sh index 68fd7ebf18..1ba7f5a293 100755 --- a/git-gui.sh +++ b/git-gui.sh @@ -60,6 +60,17 @@ proc is_many_config {name} { } } +proc is_config_true {name} { + global repo_config + if {[catch {set v $repo_config($name)}]} { + return 0 + } elseif {$v eq {true} || $v eq {1} || $v eq {yes}} { + return 1 + } else { + return 0 + } +} + proc load_config {include_global} { global repo_config global_config default_config @@ -2682,6 +2693,10 @@ proc start_local_merge_action {w} { global HEAD ui_status_value current_branch set cmd [list git merge] + if {![is_config_true merge.summary]} { + lappend cmd --no-summary + } + set names {} set revcnt 0 foreach i [$w.source.l curselection] { @@ -3755,52 +3770,59 @@ proc do_options {} { pack $w.repo -side left -fill both -expand 1 -pady 5 -padx 5 pack $w.global -side right -fill both -expand 1 -pady 5 -padx 5 + set optid 0 foreach option { - {b pullsummary {Show Pull Summary}} - {b trustmtime {Trust File Modification Timestamps}} - {i diffcontext {Number of Diff Context Lines}} - {t newbranchtemplate {New Branch Name Template}} + {b merge.summary {Show Merge Summary}} + {i-1..5 merge.verbosity {Merge Verbosity}} + + {b gui.trustmtime {Trust File Modification Timestamps}} + {i-1..99 gui.diffcontext {Number of Diff Context Lines}} + {t gui.newbranchtemplate {New Branch Name Template}} } { set type [lindex $option 0] set name [lindex $option 1] set text [lindex $option 2] + incr optid foreach f {repo global} { - switch $type { + switch -glob -- $type { b { - checkbutton $w.$f.$name -text $text \ - -variable ${f}_config_new(gui.$name) \ + checkbutton $w.$f.$optid -text $text \ + -variable ${f}_config_new($name) \ -onvalue true \ -offvalue false \ -font font_ui - pack $w.$f.$name -side top -anchor w + pack $w.$f.$optid -side top -anchor w } - i { - frame $w.$f.$name - label $w.$f.$name.l -text "$text:" -font font_ui - pack $w.$f.$name.l -side left -anchor w -fill x - spinbox $w.$f.$name.v \ - -textvariable ${f}_config_new(gui.$name) \ - -from 1 -to 99 -increment 1 \ - -width 3 \ + i-* { + regexp -- {-(\d+)\.\.(\d+)$} $type _junk min max + frame $w.$f.$optid + label $w.$f.$optid.l -text "$text:" -font font_ui + pack $w.$f.$optid.l -side left -anchor w -fill x + spinbox $w.$f.$optid.v \ + -textvariable ${f}_config_new($name) \ + -from $min \ + -to $max \ + -increment 1 \ + -width [expr {1 + [string length $max]}] \ -font font_ui - bind $w.$f.$name.v {%W selection range 0 end} - pack $w.$f.$name.v -side right -anchor e -padx 5 - pack $w.$f.$name -side top -anchor w -fill x + bind $w.$f.$optid.v {%W selection range 0 end} + pack $w.$f.$optid.v -side right -anchor e -padx 5 + pack $w.$f.$optid -side top -anchor w -fill x } t { - frame $w.$f.$name - label $w.$f.$name.l -text "$text:" -font font_ui - entry $w.$f.$name.v \ + frame $w.$f.$optid + label $w.$f.$optid.l -text "$text:" -font font_ui + entry $w.$f.$optid.v \ -borderwidth 1 \ -relief sunken \ -width 20 \ - -textvariable ${f}_config_new(gui.$name) \ + -textvariable ${f}_config_new($name) \ -font font_ui - pack $w.$f.$name.l -side left -anchor w - pack $w.$f.$name.v -side left -anchor w \ + pack $w.$f.$optid.l -side left -anchor w + pack $w.$f.$optid.v -side left -anchor w \ -fill x -expand 1 \ -padx 5 - pack $w.$f.$name -side top -anchor w -fill x + pack $w.$f.$optid -side top -anchor w -fill x } } } @@ -4131,8 +4153,9 @@ proc apply_config {} { } } +set default_config(merge.summary) true +set default_config(merge.verbosity) 2 set default_config(gui.trustmtime) false -set default_config(gui.pullsummary) true set default_config(gui.diffcontext) 5 set default_config(gui.newbranchtemplate) {} set default_config(gui.fontui) [font configure font_ui]