1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-10-29 21:37:53 +01:00

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:
Shawn O. Pearce 2006-11-24 17:30:12 -05:00
parent 9342e26d3a
commit 700a65ce38

61
git-gui
View file

@ -1605,6 +1605,44 @@ proc write_checkout_index {fd pathList totalCnt batch msg after} {
[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
@ -2878,6 +2916,9 @@ apply_config
menu .mbar -tearoff 0
.mbar add cascade -label Repository -menu .mbar.repository
.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
if {!$single_commit} {
.mbar add cascade -label Fetch -menu .mbar.fetch
@ -2963,6 +3004,24 @@ menu .mbar.edit
-accelerator $M1T-A \
-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
#
menu .mbar.commit
@ -3583,6 +3642,8 @@ user.email settings into your personal
if {!$single_commit} {
load_all_remotes
load_all_branches
populate_branch_menu .mbar.branch
populate_fetch_menu .mbar.fetch
populate_pull_menu .mbar.pull
populate_push_menu .mbar.push