Я использую CentOS 5.5 и мне нужно установить git server.
Установил git и установил домашний каталог:
yum install git
mkdir -p /home/git
cd /home/git/
chmod 777 -R . # yeah I know this is evil, but I want to make it work first...
Создано репо:
repoName=test-repo
cd /home/git/
mkdir $repoName.git
cd $repoName.git
git --bare init
git update-server-info
chmod 777 -R .
Установлен gitweb:
yum install gitweb
cp -R /usr/share/gitweb/* /home/git/
(для меня gitweb.cgi был в usr/share/gitweb после установки)
Изменена конфигурация gitweb: /etc/gitweb.conf: our $ projectroot = "/home /git";
И наконец добавил эту конфигурацию в Apache:
<VirtualHost *:80>
ServerAlias git.domian.com
DocumentRoot /home/git
SetEnv GITWEB_CONFIG /etc/gitweb.conf
<Directory /home/git>
Order Allow,Deny
Allow from all
Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
Итак, GitWeb работает. Клон работает (URL-адрес http://git.domain.com/test-repo.git). Но толчок дает:
git.exe push --progress "origin" master:master
fatal: repository 'http://git.domain.com/test-repo.git/' not found
git did not exit cleanly (exit code 128) (62 ms @ 2015-02-09 17:31:29)
Я попытался добавить конфигурацию для Smart HTTP в конфигурации VirtualHost следующим образом:
SetEnv GIT_PROJECT_ROOT /home/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAliasMatch \
"(?x)^/(.*/(HEAD | \
info/refs | \
objects/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$" \
/usr/libexec/git-core/git-http-backend/$1
Но это только изменило сообщение на:
fatal: unable to access 'http://git.domain.com/test-repo.git/': The requested URL returned error: 403
Я еще не добавил аутентификацию, так в чем проблема?
Пожалуйста помоги. Мне нужно отказаться от мерзавца и вернуться к SVN, если это не сработает ...