mirror of
https://github.com/git/git.git
synced 2026-03-13 02:13:24 +01:00
Merge commit 'git-gui/master' into devel
This commit is contained in:
@@ -769,9 +769,9 @@ if {![regsub {^git version } $_git_version {} _git_version]} {
|
||||
set _real_git_version $_git_version
|
||||
regsub -- {[\-\.]dirty$} $_git_version {} _git_version
|
||||
regsub {\.[0-9]+\.g[0-9a-f]+$} $_git_version {} _git_version
|
||||
regsub {\.rc[0-9]+$} $_git_version {} _git_version
|
||||
regsub {\.[a-zA-Z]+\.?[0-9]+$} $_git_version {} _git_version
|
||||
regsub {\.GIT$} $_git_version {} _git_version
|
||||
regsub {\.[a-zA-Z]+\.[0-9]+$} $_git_version {} _git_version
|
||||
regsub {\.[a-zA-Z]+\.?[0-9]+$} $_git_version {} _git_version
|
||||
|
||||
if {![regexp {^[1-9]+(\.[0-9]+)+$} $_git_version]} {
|
||||
catch {wm withdraw .}
|
||||
|
||||
@@ -115,6 +115,23 @@ proc create_new_commit {} {
|
||||
rescan ui_ready
|
||||
}
|
||||
|
||||
proc setup_commit_encoding {msg_wt {quiet 0}} {
|
||||
global repo_config
|
||||
|
||||
if {[catch {set enc $repo_config(i18n.commitencoding)}]} {
|
||||
set enc utf-8
|
||||
}
|
||||
set use_enc [tcl_encoding $enc]
|
||||
if {$use_enc ne {}} {
|
||||
fconfigure $msg_wt -encoding $use_enc
|
||||
} else {
|
||||
if {!$quiet} {
|
||||
error_popup [mc "warning: Tcl does not support encoding '%s'." $enc]
|
||||
}
|
||||
fconfigure $msg_wt -encoding utf-8
|
||||
}
|
||||
}
|
||||
|
||||
proc commit_tree {} {
|
||||
global HEAD commit_type file_states ui_comm repo_config
|
||||
global pch_error
|
||||
@@ -200,16 +217,7 @@ A good commit message has the following format:
|
||||
set msg_p [gitdir GITGUI_EDITMSG]
|
||||
set msg_wt [open $msg_p w]
|
||||
fconfigure $msg_wt -translation lf
|
||||
if {[catch {set enc $repo_config(i18n.commitencoding)}]} {
|
||||
set enc utf-8
|
||||
}
|
||||
set use_enc [tcl_encoding $enc]
|
||||
if {$use_enc ne {}} {
|
||||
fconfigure $msg_wt -encoding $use_enc
|
||||
} else {
|
||||
error_popup [mc "warning: Tcl does not support encoding '%s'." $enc]
|
||||
fconfigure $msg_wt -encoding utf-8
|
||||
}
|
||||
setup_commit_encoding $msg_wt
|
||||
puts $msg_wt $msg
|
||||
close $msg_wt
|
||||
|
||||
@@ -362,6 +370,7 @@ A rescan will be automatically started now.
|
||||
append reflogm " ($commit_type)"
|
||||
}
|
||||
set msg_fd [open $msg_p r]
|
||||
setup_commit_encoding $msg_fd 1
|
||||
gets $msg_fd subject
|
||||
close $msg_fd
|
||||
append reflogm {: } $subject
|
||||
|
||||
@@ -51,11 +51,16 @@ proc force_diff_encoding {enc} {
|
||||
|
||||
proc handle_empty_diff {} {
|
||||
global current_diff_path file_states file_lists
|
||||
global diff_empty_count
|
||||
|
||||
set path $current_diff_path
|
||||
set s $file_states($path)
|
||||
if {[lindex $s 0] ne {_M}} return
|
||||
|
||||
# Prevent infinite rescan loops
|
||||
incr diff_empty_count
|
||||
if {$diff_empty_count > 1} return
|
||||
|
||||
info_popup [mc "No differences detected.
|
||||
|
||||
%s has no changes.
|
||||
@@ -310,6 +315,7 @@ proc read_diff {fd cont_info} {
|
||||
global ui_diff diff_active
|
||||
global is_3way_diff is_conflict_diff current_diff_header
|
||||
global current_diff_queue
|
||||
global diff_empty_count
|
||||
|
||||
$ui_diff conf -state normal
|
||||
while {[gets $fd line] >= 0} {
|
||||
@@ -415,7 +421,10 @@ proc read_diff {fd cont_info} {
|
||||
|
||||
if {[$ui_diff index end] eq {2.0}} {
|
||||
handle_empty_diff
|
||||
} else {
|
||||
set diff_empty_count 0
|
||||
}
|
||||
|
||||
set callback [lindex $cont_info 1]
|
||||
if {$callback ne {}} {
|
||||
eval $callback
|
||||
|
||||
Reference in New Issue
Block a user