git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to setup a public reposistory?

From
Andreas Ericsson <ae@op5.se>
Date
Nov 22, 2008, 11:12 UTC
Message-ID
<4927E931.3080802@op5.se>
In-Reply-To
<354563.49837.qm@web37901.mail.mud.yahoo.com>
Gary Yang wrote:
Show 52 quoted lines
> I followed the steps outlined by the links below. But, I am still not able to setup the public repository. I got, fatal: unable to connect a socket (Connection refused). What I did wrong? Please help.
> 
> http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#setting-up-a-public-repository
> http://dtcsupport.gplhost.com/Git/Public-Repo-Howto
> 
> 0. Prepare your name and email address
> cat ~gyang/.gitconfig
> [user]
>         email = gyang@mycompany.com
>         name = Gary Yang
> 
> 
> 1. Create an archive to send to the server
> 
> /home/gyang% git clone http://git.gplhost.com/dtc-xen.git
> 
> /home/gyang% git clone --bare dtc-xen dtc-xen.git
> 
> /home/gyang% touch dtc-xen.git/git-daemon-export-ok
> 
> /home/gyang% tar -cvzf dtc-xen.git.tar.gz dtc-xen.git
> 
> 
> 2. Install the archive on the web server
> 
> /pub/git% tar -xvzf /home/gyang/dtc-xen.git.tar.gz
> 
> /pub/git/dtc-xen.git% git --bare update-server-info
> 
> /pub/git/dtc-xen.git% mv hooks/post-update.sample hooks/post-update
> 
> /pub/git/dtc-xen.git% chmod +x hooks/post-update
> 
> /pub/git/dtc-xen.git% cat 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
> 
> 
> 3. Configure and start git daemon at the web server
> 
> /pub/git/dtc-xen.git% grep 9418 /etc/services
> git             9418/tcp                        # Git Version Control System
> 
> 
> /pub/git/dtc-xen.git% sudo git daemon --verbose --inetd --export-all /pub/git &
> 
You shouldn't give "--inetd" when starting from command line. Do like this:
  sudo git daemon --detach --verbose --export-all --base-path=/pub/git
Then clone dtc-xen.git using the following command:
  git clone git://git.mycompany.com/dtc-xen.git test-git
Show 13 quoted lines
> 
> 4. At my local machine. I did
> 
> /home/gyang% git clone git://git.mycompany.com/pub/git/dtc-xen.git test-git
> 
> Initialized empty Git repository in //home/gyang/test-git/.git/
> git.mycompany.com[0: 10.66.4.168]: errno=Connection refused
> fatal: unable to connect a socket (Connection refused)
> 
> 
> ps -efww | grep git
> root      9626 22321  0 11:31 pts/1    00:00:00 git-daemon --verbose --inetd --export-all /pub/git
> 

Yes, it's waiting for input from stdin, which is what "--inetd" does to a process. Do what I told you above and it'll work just grand.

For further troubleshooting, here are some things to try before asking about git-daemon again:

ping git.mycompany.com
  # should show reasonable response times
nc git.mycompany.com 9418
  # should give "connection refused", or there's a bug somewhere
ip=$(host git.mycompany.com | sed -n 's/.*has address //p'); echo $ip
  # should list the proper ip address
ssh root@git.mycompany.com "ip addr show | grep 'inet $ip'"
  # should list one ip-address
ssh root@git.mycompany.com "ps -efww | grep git-daemon"
  # should list one process
ssh root@git.mycompany.com "netstat -tpan | grep 0.0.0.0:9418"
  # should list the git-daemon
ssh root@git.mycompany.com "grep git-daemon /var/log/messages"
  # might show error messages from git-daemon
-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Previous: Gary Yang
Message 6 of 6 in “Cannot git pull using http from my git.mycompany.com”
  1. Gary YangNov 21, 2008
  2. David SymondsNov 21, 2008
  3. Gary YangNov 21, 2008
  4. Andreas EricssonNov 21, 2008
  5. Gary YangNov 21, 2008
  6. Andreas EricssonNov 22, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.