mirror of
https://github.com/git/git.git
synced 2024-10-29 21:37:53 +01:00
git-gui: Option to default new branches to match tracking branches
In some workflows users will want to almost always just create a new local branch that matches a remote branch. In this type of workflow it is handy to have the new branch dialog default to "Match Tracking Branch" and "Starting Revision"-Tracking Branch", with the focus in the branch filter field. This can save users working on this type of workflow at least two mouse clicks every time they create a new local branch or switch to one with a fast-forward. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
560eddc00c
commit
7cf0442667
4 changed files with 27 additions and 6 deletions
|
@ -1339,6 +1339,7 @@ set default_config(merge.verbosity) 2
|
|||
set default_config(user.name) {}
|
||||
set default_config(user.email) {}
|
||||
|
||||
set default_config(gui.matchtrackingbranch) false
|
||||
set default_config(gui.pruneduringfetch) false
|
||||
set default_config(gui.trustmtime) false
|
||||
set default_config(gui.diffcontext) 5
|
||||
|
|
|
@ -93,13 +93,14 @@ constructor dialog {} {
|
|||
pack $w.options.checkout -anchor nw
|
||||
pack $w.options -anchor nw -fill x -pady 5 -padx 5
|
||||
|
||||
set name $repo_config(gui.newbranchtemplate)
|
||||
trace add variable @name_type write [cb _select]
|
||||
|
||||
bind $w <Visibility> "
|
||||
grab $w
|
||||
$w_name icursor end
|
||||
focus $w_name
|
||||
"
|
||||
set name $repo_config(gui.newbranchtemplate)
|
||||
if {[is_config_true gui.matchtrackingbranch]} {
|
||||
set name_type match
|
||||
}
|
||||
|
||||
bind $w <Visibility> [cb _visible]
|
||||
bind $w <Key-Escape> [list destroy $w]
|
||||
bind $w <Key-Return> [cb _create]\;break
|
||||
tkwait window $w
|
||||
|
@ -361,4 +362,18 @@ method _validate {d S} {
|
|||
return 1
|
||||
}
|
||||
|
||||
method _select {args} {
|
||||
if {$name_type eq {match}} {
|
||||
$w_rev pick_tracking_branch
|
||||
}
|
||||
}
|
||||
|
||||
method _visible {} {
|
||||
grab $w
|
||||
if {$name_type eq {user}} {
|
||||
$w_name icursor end
|
||||
focus $w_name
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -159,6 +159,10 @@ method get {} {
|
|||
}
|
||||
}
|
||||
|
||||
method pick_tracking_branch {} {
|
||||
set revtype trck
|
||||
}
|
||||
|
||||
method get_tracking_branch {} {
|
||||
set i [$w_list curselection]
|
||||
if {$i eq {} || $revtype ne {trck}} {
|
||||
|
|
|
@ -191,6 +191,7 @@ proc do_options {} {
|
|||
|
||||
{b gui.trustmtime {Trust File Modification Timestamps}}
|
||||
{b gui.pruneduringfetch {Prune Tracking Branches During Fetch}}
|
||||
{b gui.matchtrackingbranch {Match Tracking Branches}}
|
||||
{i-0..99 gui.diffcontext {Number of Diff Context Lines}}
|
||||
{t gui.newbranchtemplate {New Branch Name Template}}
|
||||
} {
|
||||
|
|
Loading…
Reference in a new issue