From: David Aguilar <davvid@gmail.com>
To: Thomas Rast <trast@student.ethz.ch>
Cc: "Junio C Hamano" <gitster@pobox.com>,
git@vger.kernel.org, "Magnus Bäck" <magnus.back@sonyericsson.com>,
"Charles Bailey" <charles@hashpling.org>,
"Avery Pennarun" <apenwarr@gmail.com>
Subject: Re: [PATCH] mergetool: Skip autoresolved paths
Date: Thu, 19 Aug 2010 20:52:46 -0700 [thread overview]
Message-ID: <20100820035236.GA18267@gmail.com> (raw)
In-Reply-To: <201008191202.36508.trast@student.ethz.ch>
On Thu, Aug 19, 2010 at 12:02:36PM +0200, Thomas Rast wrote:
> 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?
It must be the tty.
> 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 ..
> [...]
> /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
git-mergetool lines 295-307:
files_to_merge |
while IFS= read i
do
if test $last_status -ne 0; then
prompt_after_failed_merge < /dev/tty || exit 1
fi
printf "\n"
merge_file "$i" < /dev/tty > /dev/tty
last_status=$?
if test $last_status -ne 0; then
rollup_status=1
fi
done
The reason the test fails without a tty is that we've never
exercised this code in the past.
This commit did not introduce the "< /dev/tty > /dev/tty"
idiom. It was introduced in b0169d84 by Charles Bailey.
What this commit did do was add test coverage to it,
which is good because it uncovered this problem :-)
Charles, is there another way we can write this?
Is there a reason why we need the tty redirection?
Can we drop it or is there a portability concern?
FWIW, the merge_file call in the else clause that follows
this section does not use tty redirection.
--
David
next prev parent reply other threads:[~2010-08-20 3:52 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-12 21:28 Status of conflicted files resolved with rerere Magnus Bäck
2010-08-12 21:36 ` Avery Pennarun
2010-08-13 17:19 ` Jay Soffian
2010-08-15 2:24 ` David Aguilar
2010-08-15 6:59 ` Junio C Hamano
2010-08-15 16:00 ` Magnus Bäck
2010-08-17 9:22 ` [PATCH] mergetool: Skip autoresolved paths David Aguilar
2010-08-19 10:02 ` Thomas Rast
2010-08-20 3:52 ` David Aguilar [this message]
2010-08-20 9:57 ` Charles Bailey
2010-08-20 10:09 ` Jonathan Nieder
2010-08-20 11:17 ` [PATCH] mergetool: Remove explicit references to /dev/tty Charles Bailey
2010-08-20 12:27 ` Jonathan Nieder
2010-08-20 13:50 ` Charles Bailey
2010-08-20 14:19 ` Jonathan Nieder
2010-08-20 15:25 ` [PATCH v2] " Charles Bailey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100820035236.GA18267@gmail.com \
--to=davvid@gmail.com \
--cc=apenwarr@gmail.com \
--cc=charles@hashpling.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=magnus.back@sonyericsson.com \
--cc=trast@student.ethz.ch \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).