view tests/test-merge-prompt @ 6004:5af5f0f9d724

merge: allow smarter tool configuration Add [merge-tool] hgrc section with: <tool>.executable = name or path (<tool>) <tool>.args = args with $local/base/other/output ($local $base $other) <tool>.priority = priority (default 0) <tool>.binary = handles binary (False) <tool>.symlink = handles symlinks (False) <tool>.checkconflict = check for conflict markers (False) <tool>.premerge = try internal simplemerge (True if not binary or symlink) Four built-in tools: internal:{merge,local,other,fail} Add [merge-patterns] section of the form: <pattern> = <tool> Priority of settings is: HGMERGE merge-patterns ui:merge merge-tools by priority hgmerge, if it can be found Changes: unsuccessful merges leave .orig files
author Matt Mackall <mpm@selenic.com>
date Sun, 03 Feb 2008 19:29:05 -0600
parents 8a65ea986755
children
line wrap: on
line source

#!/bin/sh
#
# Test for b5605d88dc27
#  Make ui.prompt repeat on "unrecognized response" again (issue897)
# and for 840e2b315c1f
#  Fix misleading error and prompts during update/merge (issue556)

status() {
    [ $? -ne 0 ] && echo "failed."
    echo "status:"
    hg st -A file1 file2
    for file in file1 file2; do
        if [ -f $file ]; then
            echo "$file:"
            cat $file
        else
            echo "$file does not exist"
        fi
    done
}

hg init repo
cd repo
echo 1 > file1
echo 2 > file2
hg ci -Am 'added file1 and file2' # rev 0

hg rm file1
echo changed >> file2
hg ci -m 'removed file1, changed file2' # rev 1

hg co 0
echo changed >> file1
hg rm file2
hg ci -m 'changed file1, removed file2' # rev 2

echo
echo "# non-interactive merge"
hg merge -y || echo "failed"
status

echo
echo "# interactive merge"
hg co -C
hg merge --config ui.interactive=true <<EOF || echo "failed"
c
d
EOF
status

echo
echo "# interactive merge with bad input"
hg co -C
hg merge --config ui.interactive=true <<EOF || echo "failed"
foo
bar
d
baz
c
EOF
status

echo
echo "# interactive merge with not enough input"
hg co -C
hg merge --config ui.interactive=true <<EOF || echo "failed"
d
EOF
status