# HG changeset patch # User Sascha Wilde # Date 1187191671 -7200 # Node ID f53d97d651f472925de64a3f1a796a940472ff60 # Parent de7c772751b456c4e6f42ab20f113ff06e9a0ef4 Use smerge minor mode in emacs to resolve conflicts. The condition-case is used to suppress errors with emacs versions before 21. diff --git a/hgmerge b/hgmerge --- a/hgmerge +++ b/hgmerge @@ -169,7 +169,14 @@ fi if [ -n "$MERGE" -o -n "$DIFF3" ]; then echo "conflicts detected in $LOCAL" cp "$BACKUP" "$CHGTEST" - $EDITOR "$LOCAL" || failure + case "$EDITOR" in + "emacs") + $EDITOR "$LOCAL" --eval '(condition-case nil (smerge-mode 1) (error nil))' || failure + ;; + *) + $EDITOR "$LOCAL" || failure + ;; + esac # Some editors do not return meaningful error codes # Do not take any chances $TEST "$LOCAL" -nt "$CHGTEST" && conflicts_or_success || ask_if_merged