##// END OF EJS Templates
rust-nodemap: building blocks for nodetree structures...
rust-nodemap: building blocks for nodetree structures This is similar to `nodetreenode` in `revlog.c`. We give it a higher level feeling for ease of handling in Rust context and provide tools for tests and debugging. The encoding choice is dictated by our ultimate goal in this series, that is to make an append-only persistent version of `nodetree`: the 0th Block must be adressed from other Blocks. Differential Revision: https://phab.mercurial-scm.org/D7787

File last commit:

r26804:61250290 default
r44600:63db6657 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