On Fri, 10 Oct 2014 00:37:17 -0700 (PDT)
j...@norricorp.f9.co.uk wrote:

[...]
> [vobadm@centos64 git_repos]$ ls -l
> total 20
> drwxrwxrwx. 7 vobadm users 4096 Oct  9 17:53 csg2.git
> drwxrwsr-x. 7 vobadm users 4096 Jan 30  2013 dev_maven.git
> -rw-r--r--. 1 vobadm users   47 Oct  9 13:42 groups
> drwxrwxrwx. 7 vobadm users 4096 Sep  9 09:39 norriquest.git
> -rw-r--r--. 1 vobadm users   43 Oct  9 13:41 passwords

Please note that normally having world-writable directories other than
/tmp and /var/tmp is a very bad idea.  Hope you've done this
intentionally for testing purposes only.

[...]
>  <Location /csg2.git>
>         AuthType Basic
[...]
> C:\GitWork>git clone *http://centos64/git/csg2.git*

You've set up authenticated access for the "/csg2.git" path component
of your Git URI and then used "/git/csg2.git" when cloning, so whatever
is defined by that <Location> section is never considered by the
web server because it does not match the URI.

You could type

  http://centos64/csg2.git

in your browser to see it asking you to authenticate.

[...]
> C:\GitWork\http_csg2\csg2>git push
> Counting objects: 6, done.
> Delta compression using up to 4 threads.
> Compressing objects: 100% (2/2), done.
> Writing objects: 100% (4/4), 325 bytes | 0 bytes/s, done.
> Total 4 (delta 1), reused 0 (delta 0)
> error: unpack failed: unpack-objects abnormal exit
> To *http://centos64/git/csg2.git* <http://centos64/git/csg2.git>
>  ! [remote rejected] master -> master (n/a (unpacker error))
> error: failed to push some refs to '*http://centos64/git/csg2.git* 
> <http://centos64/git/csg2.git>'

To me, it looks like the git-http-backend binary failing to unpack the
stream your local Git instance sent to it.  Unfortunately, since the
error report is really moot, I can't tell why exactly did it fail.

One thing to consider is that to unpack something, you have to *write*
whatever is unpacked somewhere.  I presume, the HTTP backend tries to
unpack those objects to the repostory's object storage, and fails.

What would I check:

1) /var/log/apache/error.log (or whatever serves this purpose on
   CentOS).
2) Verify that the user your Apache instance uses has the necessary
   permissions to write to those repositories.
   I see the directories of your repos have (normally nonsensical)
   access bits (everyone has write access) but the object storage of
   a Git repo is a hierarchy of directories, so if you only chmod'ded
   the top-level ones, it's not gonna work.

If the reason really is (2), make sure to properly setup the access
modes afterwards.

If you'll be unable to figure out why git-http-backend fails, one
approach could be to create a wrapper script (targeted by ScriptAlias)
around git-http-backend which would run that program under `strace -f`
and record its output somewhere.  Then after a failed attempt at
pushing you could inspect the generated trace to see which system call
failed, and with which error.

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to