Быстрее HTTP Push только с git - webDAV не требуется
Новая поддержка "smart-http" начиная с git 1.6.6. Новый метод позволяет передавать весь пакет сразу, а не как отдельные файлы.
Вы также можете использовать gitweb для предоставления просматриваемых URL-адресов в том же месте.
Примечание. Поскольку доступ контролируется Apache, вы можете добавить любые требования к аутентификации (htaccess или ldap и т. Д.) В настройку для каждого репозитория.
Этот ответ предполагает, что вы владеете удаленным сервером и хотите добавить / исправить поддержку http.
ПЕРВЫЙ: Проверьте журналы apache, вероятно, в разрешении отказано / невозможно найти ошибку, когда apache пытается выполнить сценарии cgi, поддерживаемые git-http.
Добавление поддержки HTTP в git
Просто создайте новый файл git_support.conf и включите его в apache (добавьте оператор include в httpd.conf)
# # 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/
Результатом является способность толкать / тянуть:
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
И вы можете просмотреть эти изменения в Интернете ..
Источник: http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README