1

Intent

I intend to establish a version control service in a windows local network.

Test Environment

I have a /root folder where there are 2 repos /foo and /bar

Attempts

I was advised to use a git-daemon service (http://git-scm.com/docs/git-daemon) but it's been more complicated to implement (and works differently) from advertised.

The first guide i found was http://railsware.com/blog/2013/09/19/taming-the-git-daemon-to-quickly-share-git-repository/. I used their git daemon options in the '/root' folder that would serve all repos contained therein:

$ git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose

I was succesful in cloning an empty repo but when I added some content this the message i got:

$ git clone git://root-ip-addr/bar

Cloning into 'bar'...

remote: Counting objects: 3, done.

remote: Total 3 (delta 0), reused 0 (delta 0)

fatal: read error: Invalid argument

Receiving objects: 100% (3/3), done.

fatal: error in sideband demultiplexer

Next i found http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ where they don't even mention the daemon but instead went for a local-folder-as-remote aproach. I still think I need a daemon so what I tried was making my repos bare while adding the -enable:receive-pack option on the daemon.

They advise to use branches on the client machines to commit so I did. I also committed to the master branch to see what happens. In both cases GIT seems to stall.

Here is a screenshot of the client machine attempting to push to the central hub. You can see that it stalls at that point.

when attempting to push from a client

Here is a screenshot of the central hub running the daemon.

daemon response

I can only key in ctrl+c to stop the git daemon altogether after that.

The only way that I've actually gotten it to work was calling the daemon from inside the repo, but that would entail having to do that for every repo (i intend to establish this for hundreds of repos)

I understand that I should dedicate a couple of weeks to thoroughly understanding Git, something that I've postponed for the past 6 months, since I've been able to get by with basic clones, adds and commits.

Having said that, i think there should be more visually constructive guides when attempting to explain the git workflow metaphor.

Thank you for your time.

ebichuhamster
  • 228
  • 1
  • 12

1 Answers1

3

It seems that it is related to bug #101 (issue 457 on google code) in msysgit and a fix was introduced in Git-1.9.4-preview20140611.

Setting the sendpack.sideband config option and than push again works.

git config --global sendpack.sideband false
git push origin ...

I tried it with this git daemon command

git daemon --base-path=. --export-all --reuseaddr --informative-errors \
    --verbose --enable=receive-pack
René Link
  • 48,224
  • 13
  • 108
  • 140