Schnellerer HTTP-Push mit nur git - webDAV ist nicht erforderlich
Die neue "smart-http" Unterstützung seit git 1.6.6. Die neue Methode ermöglicht die Übertragung des gesamten Pakets auf einmal und nicht als einzelne Dateien.
Sie können gitweb auch verwenden, um browable URLs am selben Ort bereitzustellen.
Hinweis: Da der Zugriff über Apache gesteuert wird, können Sie dem Setup für jedes Repository beliebige Auth-Anforderungen (htaccess oder ldap usw.) hinzufügen.
Diese Antwort setzt voraus, dass Sie den Remoteserver besitzen und die http-Unterstützung hinzufügen / korrigieren möchten.
FIRST: Überprüfen Sie die Apache-Protokolle. Wahrscheinlich wurde eine Berechtigung verweigert bzw. kann kein Fehler gefunden werden, wenn Apache versucht, die git-http-gestützten CGI-Skripts auszuführen.
Hinzufügen von HTTP-Unterstützung zu git
Erstellen Sie einfach eine neue Datei git_support.conf und fügen Sie sie in Apache ein (fügen Sie die Include-Anweisung in httpd.conf ein).
# # Basic setup for git-http-backend # SetEnv GIT_PROJECT_ROOT /opt/git_repos SetEnv GIT_HTTP_EXPORT_ALL SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER #IMportant !!! This could be your problem if missing <Directory /opt/git> # both http_backend and gitweb should be somewhere under here AllowOverride None Options +ExecCGI -Includes #Important! Lets apache execute the script! Order allow,deny Allow from all </Directory> # This pattern matches git operations and passes them to http-backend ScriptAliasMatch \ "(?x)^/git/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ [0-9a-f]/[0-9a-f] | \ pack/pack-[0-9a-f]\.(pack|idx)) | \ git-(upload|receive)-pack))$" \ /opt/git/libexec/git-core/git-http-backend/$1 # Anything not matched above goes to displayable gitweb interface ScriptAlias /git /opt/git/cgi-bin/gitweb.cgi/
Das Ergebnis ist die Fähigkeit zum Drücken / Ziehen:
me@machine /tmp/eddies $ git pull Already up-to-date. me@machine /tmp/eddies $ touch changedFile me@machine /tmp/eddies $ git add . me@machine /tmp/eddies $ git commit -am"commiting change" [master ca7f6ed] commiting change 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 changedFile me@machine /tmp/eddies $ git push origin master Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 239 bytes, done. Total 2 (delta 1), reused 0 (delta 0) To http://mysecretdomain.com/git/eddies 0f626a9..ca7f6ed master -> master
Und Sie können diese Änderungen online durchsuchen.
Quelle: http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README