##// END OF EJS Templates
simplemerge: use 3-way markers if mode=='merge3', ignoring number of labels...
simplemerge: use 3-way markers if mode=='merge3', ignoring number of labels Before this patch, we use a combination of `mode` and `labels` to decide which marker style to use. That's mostly my own fault because I was the one who added the `mergediff` as a "mode" instead of adding a separate argument for marker style. Still, let's make these arguments more orthogonal by ignoring the number of labels when deciding which marker style to use. This refactoring makes it a little clearer in the simplemerge *extension* that passing more than 2 `--label` arguments changes the marker style. Differential Revision: https://phab.mercurial-scm.org/D11972

File last commit:

r26804:61250290 default
r49404:c9141848 default
Show More
editmerge
58 lines | 1.4 KiB | text/plain | TextLexer
Olle Lundberg
contrib: don't hardcode path to bash interpreter...
r20831 #!/usr/bin/env bash
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 # A simple script for opening merge conflicts in the editor.
# Use the following Mercurial settings to enable it.
#
# [ui]
# merge = editmerge
#
# [merge-tools]
# editmerge.args=$output
# editmerge.check=changed
# editmerge.premerge=keep
Ryan McElroy
editmerge: properly quote variables...
r26771 FILE="$1"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010
getlines() {
Ryan McElroy
editmerge: properly quote variables...
r26771 grep -n "^<<<<<<" "$FILE" | cut -f1 -d:
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 }
Matt Mackall
urls: bulk-change primary website URLs
r26421 # editor preference loosely based on https://mercurial-scm.org/wiki/editor
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 # hg showconfig is at the bottom though, since it's slow to run (0.15 seconds)
Ryan McElroy
editmerge: properly quote variables...
r26771 ED="$HGEDITOR"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 if [ "$ED" = "" ] ; then
Ryan McElroy
editmerge: properly quote variables...
r26771 ED="$VISUAL"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 fi
if [ "$ED" = "" ] ; then
Ryan McElroy
editmerge: properly quote variables...
r26771 ED="$EDITOR"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 fi
if [ "$ED" = "" ] ; then
Ryan McElroy
editmerge: properly quote variables...
r26771 ED="$(hg showconfig ui.editor)"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 fi
if [ "$ED" = "" ] ; then
echo "merge failed - unable to find editor"
exit 1
fi
if [ "$ED" = "emacs" ] || [ "$ED" = "nano" ] || [ "$ED" = "vim" ] ; then
Ryan McElroy
editmerge: properly quote variables...
r26771 FIRSTLINE="$(getlines | head -n 1)"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 PREVIOUSLINE=""
# open the editor to the first conflict until there are no more
# or the user stops editing the file
while [ ! "$FIRSTLINE" = "" ] && [ ! "$FIRSTLINE" = "$PREVIOUSLINE" ] ; do
Ryan McElroy
editmerge: dequote other use of $ED...
r26804 $ED "+$FIRSTLINE" "$FILE"
Ryan McElroy
editmerge: properly quote variables...
r26771 PREVIOUSLINE="$FIRSTLINE"
FIRSTLINE="$(getlines | head -n 1)"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 done
else
Ryan McElroy
editmerge: properly quote variables...
r26771 $ED "$FILE"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 fi
# get the line numbers of the remaining conflicts
Ryan McElroy
editmerge: properly quote variables...
r26771 CONFLICTS="$(getlines | sed ':a;N;$!ba;s/\n/, /g')"
Durham Goode
contrib: add editmerge script for editor conflict prompts...
r20010 if [ ! "$CONFLICTS" = "" ] ; then
echo "merge failed - resolve the conflicts (line $CONFLICTS) then use 'hg resolve --mark'"
exit 1
fi
exit 0