提交 84e0bf1d 编写于 作者: S Shawn O. Pearce

git-gui: Started implementation of switch_branch.

This implementation of switch_branch is not yet finished, and thus
it throws a "NOT FINISHED" error rather than completing the switch.
But its a rough sketch of the procedure required.
Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
上级 85ab313e
......@@ -1643,10 +1643,59 @@ proc populate_branch_menu {m} {
}
}
proc switch_branch {b} {
proc do_create_branch {} {
error "NOT IMPLEMENTED"
}
proc do_delete_branch {} {
error "NOT IMPLEMENTED"
}
proc switch_branch {b} {
global HEAD commit_type file_states current_branch
global selected_commit_type ui_comm
if {![lock_index switch]} return
# -- Backup the selected branch (repository_state resets it)
#
set new_branch $current_branch
# -- Our in memory state should match the repository.
#
repository_state curType curHEAD curMERGE_HEAD
if {[string match amend* $commit_type]
&& $curType eq {normal}
&& $curHEAD eq $HEAD} {
} elseif {$commit_type ne $curType || $HEAD ne $curHEAD} {
info_popup {Last scanned state does not match repository state.
Another Git program has modified this repository
since the last scan. A rescan must be performed
before the current branch can be changed.
The rescan will be automatically started now.
}
unlock_index
rescan {set ui_status_value {Ready.}}
return
}
# -- Toss the message buffer if we are in amend mode.
#
if {[string match amend* $curType]} {
$ui_comm delete 0.0 end
$ui_comm edit reset
$ui_comm edit modified false
}
set selected_commit_type new
set current_branch $new_branch
unlock_index
error "NOT FINISHED"
}
######################################################################
##
## remote management
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册