Merge commit 'git-gui/master'
* commit 'git-gui/master': (36 commits) git-gui: Change prior tree SHA-1 verification to use git_read git-gui: Include a space in Cygwin shortcut command lines git-gui: Use sh.exe in Cygwin shortcuts git-gui: Paper bag fix for Cygwin shortcut creation git-gui: Improve the Windows and Mac OS X shortcut creators git-gui: Teach console widget to use git_read git-gui: Perform our own magic shbang detection on Windows git-gui: Treat `git version` as `git --version` git-gui: Assume unfound commands are known by git wrapper git-gui: Correct gitk installation location git-gui: Always use absolute path to all git executables git-gui: Show a progress meter for checking out files git-gui: Change the main window progress bar to use status_bar git-gui: Extract blame viewer status bar into mega-widget git-gui: Allow double-click in checkout dialog to start checkout git-gui: Default selection to first matching ref git-gui: Unabbreviate commit SHA-1s prior to display git-gui: Refactor branch switch to support detached head git-gui: Refactor our ui_status_value update technique git-gui: Better handling of detached HEAD ...
This commit is contained in:
@ -25,7 +25,7 @@ You are currently in the middle of a merge that has not been fully completed. Y
|
||||
set msg {}
|
||||
set parents [list]
|
||||
if {[catch {
|
||||
set fd [open "| git cat-file commit $curHEAD" r]
|
||||
set fd [git_read cat-file commit $curHEAD]
|
||||
fconfigure $fd -encoding binary -translation lf
|
||||
if {[catch {set enc $repo_config(i18n.commitencoding)}]} {
|
||||
set enc utf-8
|
||||
@ -58,7 +58,7 @@ You are currently in the middle of a merge that has not been fully completed. Y
|
||||
$ui_comm insert end $msg
|
||||
$ui_comm edit reset
|
||||
$ui_comm edit modified false
|
||||
rescan {set ui_status_value {Ready.}}
|
||||
rescan ui_ready
|
||||
}
|
||||
|
||||
set GIT_COMMITTER_IDENT {}
|
||||
@ -108,12 +108,12 @@ proc create_new_commit {} {
|
||||
$ui_comm delete 0.0 end
|
||||
$ui_comm edit reset
|
||||
$ui_comm edit modified false
|
||||
rescan {set ui_status_value {Ready.}}
|
||||
rescan ui_ready
|
||||
}
|
||||
|
||||
proc commit_tree {} {
|
||||
global HEAD commit_type file_states ui_comm repo_config
|
||||
global ui_status_value pch_error
|
||||
global pch_error
|
||||
|
||||
if {[committer_ident] eq {}} return
|
||||
if {![lock_index update]} return
|
||||
@ -132,7 +132,7 @@ Another Git program has modified this repository since the last scan. A rescan
|
||||
The rescan will be automatically started now.
|
||||
}
|
||||
unlock_index
|
||||
rescan {set ui_status_value {Ready.}}
|
||||
rescan ui_ready
|
||||
return
|
||||
}
|
||||
|
||||
@ -206,7 +206,7 @@ A good commit message has the following format:
|
||||
return
|
||||
}
|
||||
|
||||
set ui_status_value {Calling pre-commit hook...}
|
||||
ui_status {Calling pre-commit hook...}
|
||||
set pch_error {}
|
||||
set fd_ph [open "| $pchook" r]
|
||||
fconfigure $fd_ph -blocking 0 -translation binary
|
||||
@ -215,13 +215,13 @@ A good commit message has the following format:
|
||||
}
|
||||
|
||||
proc commit_prehook_wait {fd_ph curHEAD msg} {
|
||||
global pch_error ui_status_value
|
||||
global pch_error
|
||||
|
||||
append pch_error [read $fd_ph]
|
||||
fconfigure $fd_ph -blocking 1
|
||||
if {[eof $fd_ph]} {
|
||||
if {[catch {close $fd_ph}]} {
|
||||
set ui_status_value {Commit declined by pre-commit hook.}
|
||||
ui_status {Commit declined by pre-commit hook.}
|
||||
hook_failed_popup pre-commit $pch_error
|
||||
unlock_index
|
||||
} else {
|
||||
@ -234,25 +234,23 @@ proc commit_prehook_wait {fd_ph curHEAD msg} {
|
||||
}
|
||||
|
||||
proc commit_writetree {curHEAD msg} {
|
||||
global ui_status_value
|
||||
|
||||
set ui_status_value {Committing changes...}
|
||||
set fd_wt [open "| git write-tree" r]
|
||||
ui_status {Committing changes...}
|
||||
set fd_wt [git_read write-tree]
|
||||
fileevent $fd_wt readable \
|
||||
[list commit_committree $fd_wt $curHEAD $msg]
|
||||
}
|
||||
|
||||
proc commit_committree {fd_wt curHEAD msg} {
|
||||
global HEAD PARENT MERGE_HEAD commit_type
|
||||
global all_heads current_branch
|
||||
global ui_status_value ui_comm selected_commit_type
|
||||
global current_branch
|
||||
global ui_comm selected_commit_type
|
||||
global file_states selected_paths rescan_active
|
||||
global repo_config
|
||||
|
||||
gets $fd_wt tree_id
|
||||
if {$tree_id eq {} || [catch {close $fd_wt} err]} {
|
||||
error_popup "write-tree failed:\n\n$err"
|
||||
set ui_status_value {Commit failed.}
|
||||
ui_status {Commit failed.}
|
||||
unlock_index
|
||||
return
|
||||
}
|
||||
@ -260,7 +258,18 @@ proc commit_committree {fd_wt curHEAD msg} {
|
||||
# -- Verify this wasn't an empty change.
|
||||
#
|
||||
if {$commit_type eq {normal}} {
|
||||
set old_tree [git rev-parse "$PARENT^{tree}"]
|
||||
set fd_ot [git_read cat-file commit $PARENT]
|
||||
fconfigure $fd_ot -encoding binary -translation lf
|
||||
set old_tree [gets $fd_ot]
|
||||
close $fd_ot
|
||||
|
||||
if {[string equal -length 5 {tree } $old_tree]
|
||||
&& [string length $old_tree] == 45} {
|
||||
set old_tree [string range $old_tree 5 end]
|
||||
} else {
|
||||
error "Commit $PARENT appears to be corrupt"
|
||||
}
|
||||
|
||||
if {$tree_id eq $old_tree} {
|
||||
info_popup {No changes to commit.
|
||||
|
||||
@ -269,7 +278,7 @@ No files were modified by this commit and it was not a merge commit.
|
||||
A rescan will be automatically started now.
|
||||
}
|
||||
unlock_index
|
||||
rescan {set ui_status_value {No changes to commit.}}
|
||||
rescan {ui_status {No changes to commit.}}
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -294,7 +303,7 @@ A rescan will be automatically started now.
|
||||
lappend cmd <$msg_p
|
||||
if {[catch {set cmt_id [eval git $cmd]} err]} {
|
||||
error_popup "commit-tree failed:\n\n$err"
|
||||
set ui_status_value {Commit failed.}
|
||||
ui_status {Commit failed.}
|
||||
unlock_index
|
||||
return
|
||||
}
|
||||
@ -316,7 +325,7 @@ A rescan will be automatically started now.
|
||||
git update-ref -m $reflogm HEAD $cmt_id $curHEAD
|
||||
} err]} {
|
||||
error_popup "update-ref failed:\n\n$err"
|
||||
set ui_status_value {Commit failed.}
|
||||
ui_status {Commit failed.}
|
||||
unlock_index
|
||||
return
|
||||
}
|
||||
@ -331,7 +340,12 @@ A rescan will be automatically started now.
|
||||
|
||||
# -- Let rerere do its thing.
|
||||
#
|
||||
if {[file isdirectory [gitdir rr-cache]]} {
|
||||
if {[get_config rerere.enabled] eq {}} {
|
||||
set rerere [file isdirectory [gitdir rr-cache]]
|
||||
} else {
|
||||
set rerere [is_config_true rerere.enabled]
|
||||
}
|
||||
if {$rerere} {
|
||||
catch {git rerere}
|
||||
}
|
||||
|
||||
@ -356,14 +370,6 @@ A rescan will be automatically started now.
|
||||
|
||||
if {[is_enabled singlecommit]} do_quit
|
||||
|
||||
# -- Make sure our current branch exists.
|
||||
#
|
||||
if {$commit_type eq {initial}} {
|
||||
lappend all_heads $current_branch
|
||||
set all_heads [lsort -unique $all_heads]
|
||||
populate_branch_menu
|
||||
}
|
||||
|
||||
# -- Update in memory status
|
||||
#
|
||||
set selected_commit_type new
|
||||
@ -405,6 +411,5 @@ A rescan will be automatically started now.
|
||||
display_all_files
|
||||
unlock_index
|
||||
reshow_diff
|
||||
set ui_status_value \
|
||||
"Created commit [string range $cmt_id 0 7]: $subject"
|
||||
ui_status "Created commit [string range $cmt_id 0 7]: $subject"
|
||||
}
|
||||
|
Reference in New Issue
Block a user