Subject: Re: [PATCH] mergetool: Skip autoresolved paths

From: Thomas Rast <[email-masked]>
Date: Thu, 19 Aug 2010 12:02:36 +0200

David Aguilar wrote:
> When mergetool is run without path limiters it loops
> over each entry in 'git ls-files -u'.  This includes
> autoresolved paths.
[...]
> +test_expect_success 'mergetool merges all from subdir' '
> +    cd subdir && (
> +    git config rerere.enabled false &&
> +    test_must_fail git merge master &&
> +    git mergetool --no-prompt &&
> +    test "$(cat ../file1)" = "master updated" &&
> +    test "$(cat ../file2)" = "master new" &&
> +    test "$(cat file3)" = "master new sub" &&
> +    git add ../file1 ../file2 file3 &&
> +    git commit -m "branch2 resolved by mergetool from subdir") &&
> +    cd ..
> +'

This test never worked in my automatic testing (it fails and bisects
to this commit).

It might be because the cronjob doesn't have a tty, as I'm seeing the
output below (note the error at the end).  Any insights?

expecting success: 
    cd subdir && (
    git config rerere.enabled false &&
    test_must_fail git merge master &&
    git mergetool --no-prompt &&
    test "$(cat ../file1)" = "master updated" &&
    test "$(cat ../file2)" = "master new" &&
    test "$(cat file3)" = "master new sub" &&
    git add ../file1 ../file2 file3 &&
    git commit -m "branch2 resolved by mergetool from subdir") &&
    cd ..

Merging:
a8bf666 branch1 changes
virtual master
found 1 common ancestor(s):
775c381 added file1
Auto-merging file1
CONFLICT (content): Merge conflict in file1
Auto-merging file2
CONFLICT (add/add): Merge conflict in file2
Auto-merging subdir/file3
CONFLICT (content): Merge conflict in subdir/file3
Automatic merge failed; fix conflicts and then commit the result.
Merging:
file1
file2
subdir/file3

/local/home/trast/git/t/valgrind/bin/git-mergetool: line 302: /dev/tty: No such device
 or address
/local/home/trast/git/t/valgrind/bin/git-mergetool: line 299: /dev/tty: No such device
 or address

-- 
Thomas Rast
trast@{inf,student}.ethz.ch