Subject: Re: weird fatal on push when post-receive hook exists but is empty

From: Michael J Gruber <[email-masked]>
Date: Wed, 21 Apr 2010 10:46:08 +0200

Sitaram Chamarty venit, vidit, dixit 20.04.2010 18:21:
> 21:47:05 sita-lt:t $ rm -rf a b c
>     21:47:10 sita-lt:t $ git init --bare b
>     Initialized empty Git repository in /home/sitaram/t/b/
>     21:47:23 sita-lt:t $ git clone b a
>     Initialized empty Git repository in /home/sitaram/t/a/.git/
>     warning: You appear to have cloned an empty repository.
>     21:47:29 sita-lt:t $ cat > b/hooks/post-receive
>     #!/bin/bash
>     # dummy
>     21:47:55 sita-lt:t $ chmod +x b/hooks/post-receive
>     21:48:00 sita-lt:t $ cd a
>     21:48:02 sita-lt:a (master) $ date > foo;git add foo; git commit
> -m foo; git push origin master
>     [master (root-commit) f55bd25] foo
>      1 files changed, 1 insertions(+), 0 deletions(-)
>      create mode 100644 foo
>     Counting objects: 3, done.
>     Writing objects: 100% (3/3), 232 bytes, done.
>     Total 3 (delta 0), reused 0 (delta 0)
>     Unpacking objects: 100% (3/3), done.
>     fatal: The remote end hung up unexpectedly
>     error: error in sideband demultiplexer
>     error: .git/objects/f5/5bd251325ad1647a29869e75a8080fee1a5d97 died
> of signal 13
>     To /home/sitaram/t/b
>      * [new branch]      master -> master
>     error: failed to push some refs to '/home/sitaram/t/b'
>     (rc=1)21:48:23 sita-lt:a $

With git version 1.7.1.rc1.248.gcefbb and this script:

#!/bin/bash
rm -rf a b c
git init --bare b
git clone b a
cat > b/hooks/post-receive <<EOF
#!/bin/bash
# dummy
EOF
chmod +x b/hooks/post-receive
cd a
date > foo;git add foo; git commit -m foo; git push origin master

I get this output:
Initialized empty Git repository in /tmp/t/b/
Initialized empty Git repository in /tmp/t/a/.git/
warning: You appear to have cloned an empty repository.
[master (root-commit) 020a1fb] foo
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 foo
Counting objects: 3, done.
Writing objects: 100% (3/3), 241 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
To /tmp/t/b
 * [new branch]      master -> master

What are we doing differently?

Michael