# cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."

6 messages from 2005-10-14 to 2005-10-17. Participants: Alex Riesen, Junio C Hamano, H. Peter Anvin.
Thread: https://gitlist.dev/t/2105

## Alex Riesen, 2005-10-14 12:46

Subject: cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."
Message-ID: <81b0412b0510140546ya10bc8fg3dd5eaab429eba6f@mail.gmail.com>
URL: https://gitlist.dev/e/81b0412b0510140546ya10bc8fg3dd5eaab429eba6f%40mail.gmail.com

```
Now, how broken is that:

The message comes from one of the hooks, which are executed even
though they never meant to, because cygwin apparently uses file
content or name to detect executability (on FAT).

I just remove the hooks from repositories atm.

```

## Junio C Hamano, 2005-10-14 16:09

Subject: Re: cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."
Message-ID: <7vpsq8rsgv.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vpsq8rsgv.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <81b0412b0510140546ya10bc8fg3dd5eaab429eba6f@mail.gmail.com>

```
Alex Riesen <raa.lkml@gmail.com> writes:

> Now, how broken is that:
>
> The message comes from one of the hooks, which are executed even
> though they never meant to, because cygwin apparently uses file
> content or name to detect executability (on FAT).
>
> I just remove the hooks from repositories atm.

Ah, that indeed is broken.

We probably should fix it at two levels.

Unless a test is trying to make sure the hook mechanism works, I
think we should not have them in the t/trash/ test repository.
The initial git-init-db done at the end of t/test-lib.sh should
be changed to run with an explicit --template= parameter to not
copy templates from random places.  If somebody is going to do
this and supply a tested patch to me, it will also be nice to
add tests to specifically check the hook mechanism while she is
at it.

I think the original idea of using executable bit to control
whether the hook is enabled or not is still sound, but it may be
safer to have hooks in templates to have a suffix such as
.sample in their names *and* be executable --- the set of hooks
copied from default templates are still disabled, but now
instead of asking users to "chmod +x foo-hook", we ask them to
"mv foo-hook.sample foo-hook" if she wants to enable it.

```

## H. Peter Anvin, 2005-10-14 17:57

Subject: Re: cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."
Message-ID: <434FF189.3080806@zytor.com>
URL: https://gitlist.dev/e/434FF189.3080806%40zytor.com
In-Reply-To: <81b0412b0510140546ya10bc8fg3dd5eaab429eba6f@mail.gmail.com>

```
Alex Riesen wrote:
> Now, how broken is that:
> 
> The message comes from one of the hooks, which are executed even
> though they never meant to, because cygwin apparently uses file
> content or name to detect executability (on FAT).
> 
> I just remove the hooks from repositories atm.

I think the bottom line is "don't use FAT".

	-hpa

```

## Alex Riesen, 2005-10-15 21:18

Subject: Re: cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."
Message-ID: <20051015211808.GA3497@steel.home>
URL: https://gitlist.dev/e/20051015211808.GA3497%40steel.home
In-Reply-To: <434FF189.3080806@zytor.com>

```
H. Peter Anvin, Fri, Oct 14, 2005 19:57:29 +0200:
> >Now, how broken is that:
> >
> >The message comes from one of the hooks, which are executed even
> >though they never meant to, because cygwin apparently uses file
> >content or name to detect executability (on FAT).
> >
> >I just remove the hooks from repositories atm.
> 
> I think the bottom line is "don't use FAT".
> 

I'm afraid I have to. NTFS isn't much better (newly created files
still have no correct attribute) and is slower (sometimes much
slower). Not that I have a choice, anyway: it's a typical corporate
workstation locked as down as possible.

```

## Junio C Hamano, 2005-10-16 07:46

Subject: Re: cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."
Message-ID: <7vbr1peweu.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vbr1peweu.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20051015211808.GA3497@steel.home>

```
Alex Riesen <raa.lkml@gmail.com> writes:

>> >The message comes from one of the hooks, which are executed even
>> >though they never meant to, because cygwin apparently uses file
>> >content or name to detect executability (on FAT).

Is this one of the hooks we ship as examples?  If so, that
means worse brokenness than just test failing.  It means that
the hook is not usable in your environment.

I presume it is this line in pre-commit sample hook:

    open $fh, "-|", qw(git-diff-index -p -M --cached HEAD);

Is Perl on Cygwin incapable of handle this in general, or is it
just what is on your machine being behind?

In the meantime, I've changed two things:

 - Earlier, tests run in a trash/ repository that was
   initialized with user's random templates.  This was *wrong*.
   It now uses freshly built templates that came from the
   source.

 - Further, hooks are disabled in the trash/ repository used for
   tests.  When we later add tests for hooks (HINTS, anybody
   ;-)), they can add their own anyway.

```

## Alex Riesen, 2005-10-17 08:40

Subject: Re: cygwin: t3200-branch.sh fails with "List form of pipe open not implemented at -e line 22."
Message-ID: <81b0412b0510170140r6d5c5f23g87d01ff6cbd0d02e@mail.gmail.com>
URL: https://gitlist.dev/e/81b0412b0510170140r6d5c5f23g87d01ff6cbd0d02e%40mail.gmail.com
In-Reply-To: <7vbr1peweu.fsf@assigned-by-dhcp.cox.net>

```
On 10/16/05, Junio C Hamano <junkio@cox.net> wrote:
> Alex Riesen <raa.lkml@gmail.com> writes:
>
> >> >The message comes from one of the hooks, which are executed even
> >> >though they never meant to, because cygwin apparently uses file
> >> >content or name to detect executability (on FAT).
>
> Is this one of the hooks we ship as examples?  If so, that
> means worse brokenness than just test failing.  It means that
> the hook is not usable in your environment.
>
> I presume it is this line in pre-commit sample hook:
>
>     open $fh, "-|", qw(git-diff-index -p -M --cached HEAD);
>
> Is Perl on Cygwin incapable of handle this in general, or is it
> just what is on your machine being behind?

ActiveState's Windows port of Perl 5.8.6.

$ perl -e 'open $fh, "-|", qw(git-diff-index -p -M --cached HEAD)'
List form of pipe open not implemented at -e line 1.

I think it is not implemented because of Win32 lacking fork(2).

```
