# HG changeset patch # User Radoslaw Szkodzinski # Date 1140558502 21600 # Node ID ac7b91bcbd8d3c3896f11c4091b29957afd2fc2a # Parent aae93c3bffb4e3a80363d5513c62e8bb4ddc1197 hgmerge: add meld support diff -r aae93c3bffb4 -r ac7b91bcbd8d hgmerge --- a/hgmerge Tue Feb 21 15:48:19 2006 -0600 +++ b/hgmerge Tue Feb 21 15:48:22 2006 -0600 @@ -34,10 +34,12 @@ FILEMERGE="/Developer/Applications/Utilities/FileMerge.app/Contents/MacOS/FileMerge" KDIFF3="kdiff3" TKDIFF="tkdiff" +MELD="meld" type "$FILEMERGE" >/dev/null 2>&1 || FILEMERGE= type "$KDIFF3" >/dev/null 2>&1 || KDIFF3= type "$TKDIFF" >/dev/null 2>&1 || TKDIFF= +type "$MELD" >/dev/null 2>&1 || MELD= # random part of names RAND="$RANDOM$RANDOM" @@ -124,6 +126,17 @@ $TKDIFF "$LOCAL" "$OTHER" -a "$BASE" -o "$LOCAL" || failure success fi + + if [ -n "$MELD" ]; then + cp "$BACKUP" "$CHGTEST" + # protect our feet - meld allows us to save to the left file + cp "$BACKUP" "$LOCAL.tmp.$RAND" + # Meld doesn't have automatic merging, so to reduce intervention + # use the file with conflicts + $MELD "$LOCAL.tmp.$RAND" "$LOCAL" "$OTHER" || failure + # Also it doesn't return good error code + test "$LOCAL" -nt "$CHGTEST" && success || ask_if_merged + fi fi # Attempt to do a merge with $EDITOR @@ -158,6 +171,6 @@ echo echo "hgmerge: unable to find any merge utility!" echo "supported programs:" -echo "merge, FileMerge, tkdiff, kdiff3, diff+patch" +echo "merge, FileMerge, tkdiff, kdiff3, meld, diff+patch" echo failure