Merge tag 'gitgui-0.21.0' of git://repo.or.cz/git-gui
git-gui 0.21.0 * tag 'gitgui-0.21.0' of git://repo.or.cz/git-gui: (22 commits) git-gui: set version 0.21 git-gui: Mark 'All' in remote.tcl for translation git-gui i18n: Updated Bulgarian translation (565,0f,0u) git-gui: avoid persisting modified author identity git-gui: handle the encoding of Git's output correctly git-gui: unicode file name support on windows git-gui: Update Russian translation git-gui: maintain backwards compatibility for merge syntax git-gui i18n: mark string in lib/error.tcl for translation git-gui: fix incorrect use of Tcl append command git-gui i18n: mark "usage:" strings for translation git-gui i18n: internationalize use of colon punctuation git-gui: ensure the file in the diff pane is in the list of selected files git-gui: support for $FILENAMES in tool definitions git-gui: fix initial git gui message encoding git-gui/po/glossary/txt-to-pot.sh: use the $( ... ) construct for command substitution git-gui (Windows): use git-gui.exe in `Create Desktop Shortcut` git-gui: fix detection of Cygwin Amend tab ordering and text widget border and highlighting. Allow keyboard control to work in the staging widgets. ...
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
# Copyright (C) 2006, 2007 Shawn Pearce
|
||||
|
||||
proc load_last_commit {} {
|
||||
global HEAD PARENT MERGE_HEAD commit_type ui_comm
|
||||
global HEAD PARENT MERGE_HEAD commit_type ui_comm commit_author
|
||||
global repo_config
|
||||
|
||||
if {[llength $PARENT] == 0} {
|
||||
@ -34,6 +34,8 @@ You are currently in the middle of a merge that has not been fully completed. Y
|
||||
lappend parents [string range $line 7 end]
|
||||
} elseif {[string match {encoding *} $line]} {
|
||||
set enc [string tolower [string range $line 9 end]]
|
||||
} elseif {[regexp "author (.*)\\s<(.*)>\\s(\\d.*$)" $line all name email time]} {
|
||||
set commit_author [list name $name email $email date $time]
|
||||
}
|
||||
}
|
||||
set msg [read $fd]
|
||||
@ -106,9 +108,10 @@ proc do_signoff {} {
|
||||
}
|
||||
|
||||
proc create_new_commit {} {
|
||||
global commit_type ui_comm
|
||||
global commit_type ui_comm commit_author
|
||||
|
||||
set commit_type normal
|
||||
unset -nocomplain commit_author
|
||||
$ui_comm delete 0.0 end
|
||||
$ui_comm edit reset
|
||||
$ui_comm edit modified false
|
||||
@ -322,11 +325,12 @@ proc commit_writetree {curHEAD msg_p} {
|
||||
}
|
||||
|
||||
proc commit_committree {fd_wt curHEAD msg_p} {
|
||||
global HEAD PARENT MERGE_HEAD commit_type
|
||||
global HEAD PARENT MERGE_HEAD commit_type commit_author
|
||||
global current_branch
|
||||
global ui_comm selected_commit_type
|
||||
global file_states selected_paths rescan_active
|
||||
global repo_config
|
||||
global env
|
||||
|
||||
gets $fd_wt tree_id
|
||||
if {[catch {close $fd_wt} err]} {
|
||||
@ -366,6 +370,9 @@ A rescan will be automatically started now.
|
||||
}
|
||||
}
|
||||
|
||||
if {[info exists commit_author]} {
|
||||
set old_author [commit_author_ident $commit_author]
|
||||
}
|
||||
# -- Create the commit.
|
||||
#
|
||||
set cmd [list commit-tree $tree_id]
|
||||
@ -381,8 +388,14 @@ A rescan will be automatically started now.
|
||||
error_popup [strcat [mc "commit-tree failed:"] "\n\n$err"]
|
||||
ui_status [mc "Commit failed."]
|
||||
unlock_index
|
||||
unset -nocomplain commit_author
|
||||
commit_author_reset $old_author
|
||||
return
|
||||
}
|
||||
if {[info exists commit_author]} {
|
||||
unset -nocomplain commit_author
|
||||
commit_author_reset $old_author
|
||||
}
|
||||
|
||||
# -- Update the HEAD ref.
|
||||
#
|
||||
@ -509,3 +522,20 @@ proc commit_postcommit_wait {fd_ph cmt_id} {
|
||||
}
|
||||
fconfigure $fd_ph -blocking 0
|
||||
}
|
||||
|
||||
proc commit_author_ident {details} {
|
||||
global env
|
||||
array set author $details
|
||||
set old [array get env GIT_AUTHOR_*]
|
||||
set env(GIT_AUTHOR_NAME) $author(name)
|
||||
set env(GIT_AUTHOR_EMAIL) $author(email)
|
||||
set env(GIT_AUTHOR_DATE) $author(date)
|
||||
return $old
|
||||
}
|
||||
proc commit_author_reset {details} {
|
||||
global env
|
||||
unset env(GIT_AUTHOR_NAME) env(GIT_AUTHOR_EMAIL) env(GIT_AUTHOR_DATE)
|
||||
if {$details ne {}} {
|
||||
array set env $details
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user