Browse Source

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 <spearce@spearce.org>
maint
Shawn O. Pearce 18 years ago
parent
commit
c539449b2d
  1. 77
      git-gui.sh

77
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} { proc load_config {include_global} {
global repo_config global_config default_config global repo_config global_config default_config


@ -2682,6 +2693,10 @@ proc start_local_merge_action {w} {
global HEAD ui_status_value current_branch global HEAD ui_status_value current_branch


set cmd [list git merge] set cmd [list git merge]
if {![is_config_true merge.summary]} {
lappend cmd --no-summary
}

set names {} set names {}
set revcnt 0 set revcnt 0
foreach i [$w.source.l curselection] { 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.repo -side left -fill both -expand 1 -pady 5 -padx 5
pack $w.global -side right -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 { foreach option {
{b pullsummary {Show Pull Summary}} {b merge.summary {Show Merge Summary}}
{b trustmtime {Trust File Modification Timestamps}} {i-1..5 merge.verbosity {Merge Verbosity}}
{i diffcontext {Number of Diff Context Lines}}
{t newbranchtemplate {New Branch Name Template}} {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 type [lindex $option 0]
set name [lindex $option 1] set name [lindex $option 1]
set text [lindex $option 2] set text [lindex $option 2]
incr optid
foreach f {repo global} { foreach f {repo global} {
switch $type { switch -glob -- $type {
b { b {
checkbutton $w.$f.$name -text $text \ checkbutton $w.$f.$optid -text $text \
-variable ${f}_config_new(gui.$name) \ -variable ${f}_config_new($name) \
-onvalue true \ -onvalue true \
-offvalue false \ -offvalue false \
-font font_ui -font font_ui
pack $w.$f.$name -side top -anchor w pack $w.$f.$optid -side top -anchor w
} }
i { i-* {
frame $w.$f.$name regexp -- {-(\d+)\.\.(\d+)$} $type _junk min max
label $w.$f.$name.l -text "$text:" -font font_ui frame $w.$f.$optid
pack $w.$f.$name.l -side left -anchor w -fill x label $w.$f.$optid.l -text "$text:" -font font_ui
spinbox $w.$f.$name.v \ pack $w.$f.$optid.l -side left -anchor w -fill x
-textvariable ${f}_config_new(gui.$name) \ spinbox $w.$f.$optid.v \
-from 1 -to 99 -increment 1 \ -textvariable ${f}_config_new($name) \
-width 3 \ -from $min \
-to $max \
-increment 1 \
-width [expr {1 + [string length $max]}] \
-font font_ui -font font_ui
bind $w.$f.$name.v <FocusIn> {%W selection range 0 end} bind $w.$f.$optid.v <FocusIn> {%W selection range 0 end}
pack $w.$f.$name.v -side right -anchor e -padx 5 pack $w.$f.$optid.v -side right -anchor e -padx 5
pack $w.$f.$name -side top -anchor w -fill x pack $w.$f.$optid -side top -anchor w -fill x
} }
t { t {
frame $w.$f.$name frame $w.$f.$optid
label $w.$f.$name.l -text "$text:" -font font_ui label $w.$f.$optid.l -text "$text:" -font font_ui
entry $w.$f.$name.v \ entry $w.$f.$optid.v \
-borderwidth 1 \ -borderwidth 1 \
-relief sunken \ -relief sunken \
-width 20 \ -width 20 \
-textvariable ${f}_config_new(gui.$name) \ -textvariable ${f}_config_new($name) \
-font font_ui -font font_ui
pack $w.$f.$name.l -side left -anchor w pack $w.$f.$optid.l -side left -anchor w
pack $w.$f.$name.v -side left -anchor w \ pack $w.$f.$optid.v -side left -anchor w \
-fill x -expand 1 \ -fill x -expand 1 \
-padx 5 -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.trustmtime) false
set default_config(gui.pullsummary) true
set default_config(gui.diffcontext) 5 set default_config(gui.diffcontext) 5
set default_config(gui.newbranchtemplate) {} set default_config(gui.newbranchtemplate) {}
set default_config(gui.fontui) [font configure font_ui] set default_config(gui.fontui) [font configure font_ui]

Loading…
Cancel
Save