Update hook in Cygwin

4 messages, 4 authors, 2016-06-15 · open the first message on its own page

Update hook in Cygwin

From: Niklas Höglund <hidden>
Date: 2016-06-15 22:42:21

Hi.

After creating a couple of repositories and pushing and cloning them,
I get the following:

$ git push --all origin
...
hooks/update: line 88: mail: command not found

This is in cygwin. I'm rather glad I don't have the mail command
installed, as I don't want mails going anywhere.

The update hook contains the following comment:

# To enable this hook:
# (1) change the recipient e-mail address
# (2) make this file executable by "chmod +x update".

But my impression after a cursory look at it is that it would always
call "mail" whenever it is run, and since all files are executable in
Windows (AFAIK), it would always be run.

Re: Update hook in Cygwin

From: Andreas Ericsson <hidden>
Date: 2016-06-15 22:42:21

Niklas Höglund wrote:
Hi.

After creating a couple of repositories and pushing and cloning them,
I get the following:

$ git push --all origin
...
hooks/update: line 88: mail: command not found

This is in cygwin. I'm rather glad I don't have the mail command
installed, as I don't want mails going anywhere.

The update hook contains the following comment:

# To enable this hook:
# (1) change the recipient e-mail address
# (2) make this file executable by "chmod +x update".

But my impression after a cursory look at it is that it would always
call "mail" whenever it is run, and since all files are executable in
Windows (AFAIK), it would always be run.

I was under the impression that the cygwin abstraction layer had some 
unixy permission thing on top of NTFS. Perhaps that's wrong. If you 
remove the hook it won't be called.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Re: Update hook in Cygwin

From: Shawn Pearce <hidden>
Date: 2016-06-15 22:42:21

Andreas Ericsson [off-list ref] wrote:
Niklas Höglund wrote:
quoted
Hi.

After creating a couple of repositories and pushing and cloning them,
I get the following:

$ git push --all origin
...
hooks/update: line 88: mail: command not found

This is in cygwin. I'm rather glad I don't have the mail command
installed, as I don't want mails going anywhere.

The update hook contains the following comment:

# To enable this hook:
# (1) change the recipient e-mail address
# (2) make this file executable by "chmod +x update".

But my impression after a cursory look at it is that it would always
call "mail" whenever it is run, and since all files are executable in
Windows (AFAIK), it would always be run.

I was under the impression that the cygwin abstraction layer had some 
unixy permission thing on top of NTFS. Perhaps that's wrong. If you 
remove the hook it won't be called.
I've seen the same thing with the hooks on Cywin.  I would consider
it to be a bug in either GIT or Cygwin but I haven't decided
which yet.

If you look at the share/git-core/templates directory on a real
UNIX system would see that the hooks are not marked executable by
default when installed.  They are copied non-executable into each
new repository by git-init-db. Since they aren't executable they
don't get run.


But on Cygwin the hooks appear to be getting installed and are marked
executable in share/git-core/templates.  So when git-init-db copies
them over to the new repository they are by default enabled.

Removing the execute bit from the files in share/git-core/templates
doesn't help; for some reason git-init-db is still copying them with
the execute bit enabled.  I haven't spent the time to figure out why
yet; so I just run rm .git/hooks/* on every repository I come across.

BTW: chmod a-x .git/hooks/* also works as the Cygwin unixy permission
layer will remember the change.

-- 
Shawn.

Re: Update hook in Cygwin

From: Christopher Faylor <hidden>
Date: 2016-06-15 22:42:21

On Wed, Mar 08, 2006 at 09:44:13AM -0500, Shawn Pearce wrote:
BTW: chmod a-x .git/hooks/* also works as the Cygwin unixy permission
layer will remember the change.
Using "chmod a-x" should work like linux as long as you're using an NTFS
filesystem and have not specifically turned off Cygwin's handling of this
kind of thing with the CYGWIN=nontsec environment variable.

i.e., it should work in most cases on W2K+

cgf
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help