2013-04-12 8 views
6

Ich möchte zu einem Git-Repository auf Host http://localhost:8000/tehCode.git unter Verwendung der python -m "SimpleHTTPServer" Befehl geschoben werden.Pushing zu einem Git-Repository gehostet lokal über HTTP

Ich erhalte einen Fehler

error: Cannot access URL http://localhost:8000/tehCode.git/, return code 22 
fatal: git-http-push failed 

ich das Repository nur gut klonen kann, aber ich kann es nicht schieben. Wie kann ich dies unter der Annahme tun, dass ich immer noch den Python SimpleHTTPServer verwenden möchte?

Ich habe schon bei

sah
  1. Cannot push Git to remote repository with http/https
  2. https://superuser.com/questions/473177/git-push-fatal-failed

Aber sie scheinen mit Apache zu arbeiten und die meisten Lösungen sind von Apache-Konfigurationsdatei bearbeiten.

+0

Nur aus Neugier, warum hosten Sie ein Repo auf einem lokalen Server? – MMM

+0

Der Versuch, eine kontinuierliche Integrationstestplattform einzurichten. – ffledgling

+0

Ich habe keine Ahnung, welche HTTP-Methode git push verwenden würde, aber das ist nicht wichtig. Wichtig ist, dass * du * eine Idee hast und dann * zeig uns * was du versucht hast, dafür zu implementieren. Implementiert Ihr Server den richtigen Methodenhandler überhaupt? –

Antwort

4

Wenn Sie einen SimpleHTTPServer verwenden, verwenden Sie das sogenannte dumme HTTP-Protokoll. Es heißt dumm, weil es überhaupt kein Wissen über Git hat. Aus diesem Grund funktioniert das Drücken auf einen solchen Server nicht, da der HTTP-Server keine Ahnung hat, was mit der Anfrage zu tun ist, die git macht.

Git verfügt über ein CGI-Skript namens git-http-backend, mit dem das http-Protokoll über das http-Protokoll übertragen werden kann.

Ich habe keine Erfahrung damit, aber Sie könnten Pythons CGIHTTPServer betrachten, die Sie auf git-http-Backend verweisen konnten.

Aber der einfachste Weg ist apache zu verwenden.

-1

Warum HTTP verwenden, wenn es lokal ist? Könnte nur git push where/the/repo/lives tun.