Re: Challenge of setting up git server (repository). Please help!
- From
Deskin Miller <deskinm@umich.edu>
- Date
- Nov 20, 2008, 22:13 UTC
- Message-ID
- <20081120221321.GA6349@euler>
- In-Reply-To
- <829533.97868.qm@web37906.mail.mud.yahoo.com>
On Thu, Nov 20, 2008 at 01:39:12PM -0800, Gary Yang wrote:
Show 66 quoted lines
>
> I am working on setting up a git server so that people can clone, pull and push their code at git.mycompany.com/pub/git+project path.
> However, I am having challenges. For people who setup their git servers, please share your experneces with me and tell me what I did wrong.
> I greatly appreciate it.
>
> After I made configurations, I ran the command, git update-server-info at the public repository machine. But, I got the error.
>
> git pull http://git.mycompany.com/pub/git/u-boot.git HEAD
> fatal: http://git.mycompany.com/pub/git/u-boot.git/info/refs not found: did you run git update-server-info on the server?
>
> The file /pub/git/u-boot.git/info/refs dose exist.
>
> cat /pub/git/u-boot.git/info/refs
> 87ee4576c4c31b7046fe2bbbdf309eaba5c3f346 refs/heads/master
>
> My question:
>
> Is the contet of /pub/git/u-boot.git/hooks/post-update correct? Should I change "exec git-update-server-info" to "exec git update-server-info"?
>
> cat /pub/git/u-boot.git/hooks/post-update
> #!/bin/sh
> #
> # An example hook script to prepare a packed repository for use over
> # dumb transports.
> #
> # To enable this hook, rename this file to "post-update".
> exec git-update-server-info
>
> I tried and changed "exec git-update-server-info" to "exec git update-server-info" in /pub/git/u-boot.git/hooks/post-update. But, I still got same error.
> git pull http://git.mycompany.com/pub/git/u-boot.git HEAD
> fatal: http://git.mycompany.com/pub/git/u-boot.git/info/refs not found: did you run git update-server-info on the server?
>
> Which one is correct? "exec git-update-server-info" or "exec git update-server-info"? Eventhogh none of them working.
>
> Below are my settings:
>
> grep 9418 /etc/services
> git 9418/tcp # Git Version Control System
>
>
> grep git /etc/inetd.conf
> git stream tcp nowait nobody /usr/local/libexec/git-core/git-daemon git-daemon --inetd --export-all /pub/git
>
>
> cat /etc/xinetd.d/git-daemon
> # default: off
> # description: The git server offers access to git repositories
> service git
> {
> disable = no
> type = UNLISTED
> port = 9418
> socket_type = stream
> wait = no
> user = nobody
> server = /usr/local/libexec/git-core/git-daemon
> server_args = --inetd --export-all --base-path=/pub/git
> log_on_failure += USERID
> }
>
>
> I am running git at Linux box:
> uname -a
> Linux svdclw004 2.6.9-67.ELsmp #1 SMP Wed Nov 7 13:56:44 EST 2007 x86_64 GNU/Linux
>
> Are there anything wrong? Please let me know.You tried to fetch from a http url, but your settings make no mention of running a web server. git-update-server-info is only relevant in the context of using a web server to serve git repositories via the same http protocol as is used by web servers everywhere. git-daemon, on the other hand, which is what you show configured here, is used to serve git repositories via a git:// url. Its configuration has no effect on whether using http to fetch a git repository will work or not.
Either use a git:// url to fetch the project, or set up a web server which serves stuff under /pub/git.
I'll also mention that you appear to have configuration for both inetd and xinetd, which are two generally mutually-exclusive 'super-servers'; and furthermore, your configurations are inconsistent in the arguments they pass to git-daemon: it looks like, were you to replace http:// with git://, the inetd config would work as listed, while xinetd would not.
Hope that helps, Deskin Miller