Mercurial > hg
view contrib/editmerge @ 20305:e5a2177d97f0
tests: stop tracking tests/gpg/random_seed
test-gpg.t left the random_seed file as modified. That was slightly confusing
... and it was accidentally changed in ea4996754d91.
The seed is created on demand and there is no reason to track it. There is also
no reason to leak state between test runs so we let the test clean up after
running.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Mon, 20 Jan 2014 01:29:54 +0100 |
parents | 34d720b3b33e |
children | 864c56cb8945 |
line wrap: on
line source
#!/bin/bash # 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 FILE=$1 getlines() { grep -n "<<<<<<" $FILE | cut -f1 -d: } # editor preference loosely based on http://mercurial.selenic.com/wiki/editor # hg showconfig is at the bottom though, since it's slow to run (0.15 seconds) ED=$HGEDITOR if [ "$ED" = "" ] ; then ED=$VISUAL fi if [ "$ED" = "" ] ; then ED=$EDITOR fi if [ "$ED" = "" ] ; then ED=$(hg showconfig ui.editor) fi if [ "$ED" = "" ] ; then echo "merge failed - unable to find editor" exit 1 fi if [ "$ED" = "emacs" ] || [ "$ED" = "nano" ] || [ "$ED" = "vim" ] ; then FIRSTLINE=$(getlines | head -n 1) 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 $ED +$FIRSTLINE $FILE PREVIOUSLINE=$FIRSTLINE FIRSTLINE=$(getlines | head -n 1) done else $ED $FILE fi # get the line numbers of the remaining conflicts CONFLICTS=$(getlines | sed ':a;N;$!ba;s/\n/, /g') if [ ! "$CONFLICTS" = "" ] ; then echo "merge failed - resolve the conflicts (line $CONFLICTS) then use 'hg resolve --mark'" exit 1 fi exit 0