Skip to content

Commit

Permalink
gitk: Improve cherry-pick error handling
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Paul Mackerras committed Nov 8, 2008
1 parent 15e3505 commit 887a791
Showing 1 changed file with 16 additions and 9 deletions.
25 changes: 16 additions & 9 deletions gitk
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down

0 comments on commit 887a791

Please sign in to comment.