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: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
85ab313ed3
commit
84e0bf1de4
51
git-gui
51
git-gui
@ -1643,10 +1643,59 @@ proc populate_branch_menu {m} {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
proc switch_branch {b} {
|
proc do_create_branch {} {
|
||||||
error "NOT IMPLEMENTED"
|
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
|
## remote management
|
||||||
|
Loading…
Reference in New Issue
Block a user