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>
This commit is contained in:
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]
|
||||||
|
Reference in New Issue
Block a user