git-gui: Created Branch menu.
This is an early start at branch management from within git-gui. The branch menu has create/delete command entries to create and delete branches as well as a list of radiobutton entries for each branch found in the repository through for-each-ref. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
9342e26d3a
commit
700a65ce38
61
git-gui
61
git-gui
@ -1605,6 +1605,44 @@ proc write_checkout_index {fd pathList totalCnt batch msg after} {
|
|||||||
[expr {100.0 * $update_index_cp / $totalCnt}]]
|
[expr {100.0 * $update_index_cp / $totalCnt}]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
######################################################################
|
||||||
|
##
|
||||||
|
## branch management
|
||||||
|
|
||||||
|
proc load_all_branches {} {
|
||||||
|
global all_branches
|
||||||
|
|
||||||
|
set all_branches [list]
|
||||||
|
set cmd [list git for-each-ref]
|
||||||
|
lappend cmd --format=%(refname)
|
||||||
|
lappend cmd refs/heads
|
||||||
|
set fd [open "| $cmd" r]
|
||||||
|
while {[gets $fd line] > 0} {
|
||||||
|
if {[regsub ^refs/heads/ $line {} line]} {
|
||||||
|
lappend all_branches $line
|
||||||
|
}
|
||||||
|
}
|
||||||
|
close $fd
|
||||||
|
|
||||||
|
set all_branches [lsort $all_branches]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc populate_branch_menu {m} {
|
||||||
|
global all_branches disable_on_lock
|
||||||
|
|
||||||
|
$m add separator
|
||||||
|
foreach b $all_branches {
|
||||||
|
$m add radiobutton \
|
||||||
|
-label $b \
|
||||||
|
-command [list do_switch_branch $b] \
|
||||||
|
-variable current_branch \
|
||||||
|
-value $b \
|
||||||
|
-font font_ui
|
||||||
|
lappend disable_on_lock \
|
||||||
|
[list $m entryconf [$m index last] -state]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
##
|
##
|
||||||
## remote management
|
## remote management
|
||||||
@ -2878,6 +2916,9 @@ apply_config
|
|||||||
menu .mbar -tearoff 0
|
menu .mbar -tearoff 0
|
||||||
.mbar add cascade -label Repository -menu .mbar.repository
|
.mbar add cascade -label Repository -menu .mbar.repository
|
||||||
.mbar add cascade -label Edit -menu .mbar.edit
|
.mbar add cascade -label Edit -menu .mbar.edit
|
||||||
|
if {!$single_commit} {
|
||||||
|
.mbar add cascade -label Branch -menu .mbar.branch
|
||||||
|
}
|
||||||
.mbar add cascade -label Commit -menu .mbar.commit
|
.mbar add cascade -label Commit -menu .mbar.commit
|
||||||
if {!$single_commit} {
|
if {!$single_commit} {
|
||||||
.mbar add cascade -label Fetch -menu .mbar.fetch
|
.mbar add cascade -label Fetch -menu .mbar.fetch
|
||||||
@ -2963,6 +3004,24 @@ menu .mbar.edit
|
|||||||
-accelerator $M1T-A \
|
-accelerator $M1T-A \
|
||||||
-font font_ui
|
-font font_ui
|
||||||
|
|
||||||
|
if {!$single_commit} {
|
||||||
|
# -- Branch Menu
|
||||||
|
#
|
||||||
|
menu .mbar.branch
|
||||||
|
|
||||||
|
.mbar.branch add command -label {Create...} \
|
||||||
|
-command do_create_branch \
|
||||||
|
-font font_ui
|
||||||
|
lappend disable_on_lock [list .mbar.branch entryconf \
|
||||||
|
[.mbar.branch index last] -state]
|
||||||
|
|
||||||
|
.mbar.branch add command -label {Delete...} \
|
||||||
|
-command do_delete_branch \
|
||||||
|
-font font_ui
|
||||||
|
lappend disable_on_lock [list .mbar.branch entryconf \
|
||||||
|
[.mbar.branch index last] -state]
|
||||||
|
}
|
||||||
|
|
||||||
# -- Commit Menu
|
# -- Commit Menu
|
||||||
#
|
#
|
||||||
menu .mbar.commit
|
menu .mbar.commit
|
||||||
@ -3583,6 +3642,8 @@ user.email settings into your personal
|
|||||||
|
|
||||||
if {!$single_commit} {
|
if {!$single_commit} {
|
||||||
load_all_remotes
|
load_all_remotes
|
||||||
|
load_all_branches
|
||||||
|
populate_branch_menu .mbar.branch
|
||||||
populate_fetch_menu .mbar.fetch
|
populate_fetch_menu .mbar.fetch
|
||||||
populate_pull_menu .mbar.pull
|
populate_pull_menu .mbar.pull
|
||||||
populate_push_menu .mbar.push
|
populate_push_menu .mbar.push
|
||||||
|
Loading…
Reference in New Issue
Block a user