mirror of
https://github.com/git/git.git
synced 2025-01-23 16:03:32 +08:00
gitk: Improve cherry-pick error handling
This adds to the regexps that are used to work out what sort of error we encountered in trying to do a cherry-pick so that it recognizes some additional common error messages. It adds a confirmation dialog when the error is a merge conflict so the user can choose whether or not to run git citool. Finally, it arranges to update the display after a cherry-pick failed so that any local changes made by the cherry-pick become visible. Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
15e350552d
commit
887a791f11
25
gitk
25
gitk
@ -8133,18 +8133,25 @@ proc cherrypick {} {
|
||||
if {[catch {exec sh -c "git cherry-pick -r $rowmenuid 2>&1"} err]} {
|
||||
notbusy cherrypick
|
||||
if {[regexp -line \
|
||||
{Entry '(.*)' would be overwritten by merge} $err msg fname]} {
|
||||
error_popup [mc "Cherry-pick failed:
|
||||
file '%s' had local modifications.
|
||||
|
||||
Please commit, reset or stash your changes." $fname]
|
||||
} elseif {[regexp -line {^CONFLICT \(.*\):} $err msg]} {
|
||||
# Force citool to read MERGE_MSG
|
||||
file delete [file join [gitdir] "GITGUI_MSG"]
|
||||
exec_citool {} $rowmenuid
|
||||
{Entry '(.*)' (would be overwritten by merge|not uptodate)} \
|
||||
$err msg fname]} {
|
||||
error_popup [mc "Cherry-pick failed because of local changes\
|
||||
to file '%s'.\nPlease commit, reset or stash\
|
||||
your changes and try again." $fname]
|
||||
} elseif {[regexp -line \
|
||||
{^(CONFLICT \(.*\):|Automatic cherry-pick failed)} \
|
||||
$err]} {
|
||||
if {[confirm_popup [mc "Cherry-pick failed because of merge\
|
||||
conflict.\nDo you wish to run git citool to\
|
||||
resolve it?"]]} {
|
||||
# Force citool to read MERGE_MSG
|
||||
file delete [file join [gitdir] "GITGUI_MSG"]
|
||||
exec_citool {} $rowmenuid
|
||||
}
|
||||
} else {
|
||||
error_popup $err
|
||||
}
|
||||
run updatecommits
|
||||
return
|
||||
}
|
||||
set newhead [exec git rev-parse HEAD]
|
||||
|
Loading…
Reference in New Issue
Block a user