git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Add compat/fopen.c which returns NULL on attempt to open directory

From
H.Merijn Brand <h.m.brand@xs4all.nl>
Date
Feb 12, 2008, 15:27 UTC
Message-ID
<20080212162722.1d98e05d@pc09.procura.nl>
In-Reply-To
<7v8x1r6n62.fsf@gitster.siamese.dyndns.org>
On Mon, 11 Feb 2008 16:20:05 -0800, Junio C Hamano <gitster@pobox.com> wrote:
Show 22 quoted lines
> "H.Merijn Brand" <h.m.brand@xs4all.nl> writes:
> 
> > No, it is not. Some shell weirdness. This fixes it. Don't know off-hand
> > if it is portable enough
> >
> > diff -pur a/t/t5701-clone-local.sh b/t/t5701-clone-local.sh
> > --- a/t/t5701-clone-local.sh  2008-02-02 05:09:01 +0100
> > +++ b/t/t5701-clone-local.sh  2008-02-11 11:13:26 +0100
> > @@ -37,8 +37,8 @@ test_expect_success 'local clone from x'
> >
> >  test_expect_success 'local clone from x.git that does not exist' '
> >         cd "$D" &&
> > -       if git clone -l -s x.git z
> > -       then
> > +       git clone -l -s x.git z
> > +       if $? ; then
> >                 echo "Oops, should have failed"
> >                 false
> >         else
> 
> I think your "git clone" is broken and I strongly suspect it is
> not your shell (at least the "if" construct in the test).

of course it should have been 'if test $?' and as $? is erroneously equal to 0 in this case, this snippet doesn't matter

'git clone' is calling 'cit-clone' which is a shell script, that does
exit 1 in the function die:
--8<---
die() {
	echo >&2 "$@"
	exit 1
}
-->8---
but somehow that exit code gets lost
Show 20 quoted lines
> What's 
> 
> 	if $?; then
> 
> In sane shells, I think this tries to execute 0 or perhaps 124
> or whatever the error code from clone as if it was the name of a
> command, which would most likely fail and would not take "then"
> part (which reports the error).  It did not fix, but just made
> it ignore the error from "git clone".
> 
> If it were
> 
> 	if test $? != 0
>         then
> 
> it would have made a bit more sense.
> 
> And if (this is a big "if" as I doubt any shell is so broken)
> these two are equivalent to your shell, then I do not think it
> is portable at all.
-- 
H.Merijn Brand         Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using & porting perl 5.6.2, 5.8.x, 5.10.x  on HP-UX 10.20, 11.00, 11.11,
& 11.23, SuSE 10.1 & 10.2, AIX 5.2, and Cygwin.       http://qa.perl.org
http://mirrors.develooper.com/hpux/            http://www.test-smoke.org
                        http://www.goldmark.org/jeff/stupid-disclaimers/
Previous: Junio C Hamano
Message 27 of 27 in “opening files in remote.c should ensure it is opening a file”
  1. opening files in remote.c should ensure it is opening a fileH.Merijn Brand, Feb 8, 2008
  2. Mike RalphsonFeb 8, 2008
  3. H.Merijn BrandFeb 8, 2008
  4. H.Merijn BrandFeb 18, 2008
  5. Junio C HamanoFeb 18, 2008
  6. H.Merijn BrandFeb 18, 2008
  7. Daniel BarkalowFeb 8, 2008
  8. Johannes SchindelinFeb 8, 2008
  9. Junio C HamanoFeb 9, 2008
  10. Daniel BarkalowFeb 9, 2008
  11. Junio C HamanoFeb 8, 2008
  12. Johannes SchindelinFeb 8, 2008
  13. H.Merijn BrandFeb 9, 2008
  14. Morten WelinderFeb 8, 2008
  15. Junio C HamanoFeb 8, 2008
  16. Johannes SchindelinFeb 8, 2008
  17. Junio C HamanoFeb 8, 2008
  18. Johannes SchindelinFeb 8, 2008
  19. Brandon CaseyFeb 8, 2008
  20. Brandon CaseyFeb 8, 2008
  21. Junio C HamanoFeb 9, 2008
  22. Brandon CaseyFeb 9, 2008
  23. Add compat/fopen.c which returns NULL on attempt to open directoryBrandon Casey, Feb 9, 2008
  24. H.Merijn BrandFeb 11, 2008
  25. H.Merijn BrandFeb 11, 2008
  26. Junio C HamanoFeb 12, 2008
  27. H.Merijn BrandFeb 12, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.