]> asedeno.scripts.mit.edu Git - git.git/blobdiff - git-gui.sh
git-gui: Support merge.summary, merge.verbosity.
[git.git] / git-gui.sh
index ae883f90bd0a755b7cdec98d847491bc001470b0..1ba7f5a29306e817ebb1eb70877c128ad36ae6b8 100755 (executable)
@@ -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
 
@@ -2129,16 +2140,19 @@ proc do_delete_branch {} {
                -font font_ui
        listbox $w.list.l \
                -height 10 \
-               -width 50 \
+               -width 70 \
                -selectmode extended \
+               -yscrollcommand [list $w.list.sby set] \
                -font font_ui
        foreach h $all_heads {
                if {$h ne $current_branch} {
                        $w.list.l insert end $h
                }
        }
-       pack $w.list.l -fill both -pady 5 -padx 5
-       pack $w.list -fill both -pady 5 -padx 5
+       scrollbar $w.list.sby -command [list $w.list.l yview]
+       pack $w.list.sby -side right -fill y
+       pack $w.list.l -side left -fill both -expand 1
+       pack $w.list -fill both -expand 1 -pady 5 -padx 5
 
        labelframe $w.validate \
                -text {Delete Only If} \
@@ -2510,8 +2524,9 @@ proc do_push_anywhere {} {
                -font font_ui
        listbox $w.source.l \
                -height 10 \
-               -width 50 \
+               -width 70 \
                -selectmode extended \
+               -yscrollcommand [list $w.source.sby set] \
                -font font_ui
        foreach h $all_heads {
                $w.source.l insert end $h
@@ -2519,8 +2534,10 @@ proc do_push_anywhere {} {
                        $w.source.l select set end
                }
        }
-       pack $w.source.l -fill both -pady 5 -padx 5
-       pack $w.source -fill both -pady 5 -padx 5
+       scrollbar $w.source.sby -command [list $w.source.l yview]
+       pack $w.source.sby -side right -fill y
+       pack $w.source.l -side left -fill both -expand 1
+       pack $w.source -fill both -expand 1 -pady 5 -padx 5
 
        labelframe $w.dest \
                -text {Destination Repository} \
@@ -2676,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] {
@@ -2782,7 +2803,7 @@ proc do_local_merge {} {
                -font font_ui
        listbox $w.source.l \
                -height 10 \
-               -width 25 \
+               -width 70 \
                -selectmode extended \
                -yscrollcommand [list $w.source.sby set] \
                -font font_ui
@@ -3749,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 <FocusIn> {%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 <FocusIn> {%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
                        }
                        }
                }
@@ -4125,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]