Я здесь немного на краю света. Я хочу установить gitolite3 smart http поверх apache. Я могу успешно тянуть, но не нажимаю (даже не выдает никаких ошибок или уведомлений, даже в каком-либо известном журнале). Я отключил selinux, пока не выяснил, в чем дело. Моя ОС - CentOS6.4. Я вставляю все свои соответствующие confs и logs, но все они кажутся нормальными ..
На какой следующий шаг мне нужно обратить внимание?
Может ли кто-нибудь сказать мне, отличаются ли их записи журнала gitolite3 для push-вызовов от моих ниже?
Обработать:
$ git clone http://flo@server/git/testing
$ cd testing/
$ echo "This is a test" > testing.txt
$ git add testing.txt
$ git status
$ git commit -am "Added test file"
$ git status
$ git push http://flo@server/git/testing
$ cd ..
$ rm -rf testing
$ git clone http://flo@server/git/testing
$ ll testing
total 0
/ и т.д. / httpd / журналы / журнал_доступа
10.42.43.1 - - [07/Aug/2013:11:43:09 +0100] "GET /git/testing/info/refs?service=git-upload-pack HTTP/1.1" 401 481 "-" "git/1.7.1"
10.42.43.1 - uncleflo [07/Aug/2013:11:43:09 +0100] "GET /git/testing/info/refs?service=git-upload-pack HTTP/1.1" 200 38 "-" "git/1.7.1"
10.42.43.1 - - [07/Aug/2013:11:44:01 +0100] "GET /git/testing/info/refs?service=git-receive-pack HTTP/1.1" 401 481 "-" "git/1.7.1"
10.42.43.1 - uncleflo [07/Aug/2013:11:44:01 +0100] "GET /git/testing/info/refs?service=git-receive-pack HTTP/1.1" 200 151 "-" "git/1.7.1"
10.42.43.1 - - [07/Aug/2013:11:54:54 +0100] "GET /git/testing/info/refs?service=git-upload-pack HTTP/1.1" 401 481 "-" "git/1.7.1"
10.42.43.1 - uncleflo [07/Aug/2013:11:54:54 +0100] "GET /git/testing/info/refs?service=git-upload-pack HTTP/1.1" 200 38 "-" "git/1.7.1"
/etc/httpd/logs/suexec.log
[2013-08-07 11:43:09]: uid: (650/gitolite3) gid: (650/gitolite3) cmd: gitolite-suexec-wrapper.sh
[2013-08-07 11:44:01]: uid: (650/gitolite3) gid: (650/gitolite3) cmd: gitolite-suexec-wrapper.sh
[2013-08-07 11:54:54]: uid: (650/gitolite3) gid: (650/gitolite3) cmd: gitolite-suexec-wrapper.sh
/var/lib/gitolite3/.gitolite/logs/gitolite-2013-08.log
2013-08-07.11:43:09 6104 access(testing, uncleflo, R, 'any'),-> refs/.*
2013-08-07.11:43:09 6104 trigger,Writable,access_1,ACCESS_1,testing,uncleflo,R,any,refs/.*
2013-08-07.11:43:09 6104 pre_git testing uncleflo R any -> refs/.*
2013-08-07.11:43:09 6104 system,git,http-backend
2013-08-07.11:43:09 6104 END
2013-08-07.11:44:01 6122 access(testing, uncleflo, W, 'any'),-> refs/.*
2013-08-07.11:44:01 6122 trigger,Writable,access_1,ACCESS_1,testing,uncleflo,W,any,refs/.*
2013-08-07.11:44:01 6122 pre_git testing uncleflo W any -> refs/.*
2013-08-07.11:44:01 6122 system,git,http-backend
2013-08-07.11:44:01 6122 END
2013-08-07.11:54:55 6226 access(testing, uncleflo, R, 'any'),-> refs/.*
2013-08-07.11:54:55 6226 trigger,Writable,access_1,ACCESS_1,testing,uncleflo,R,any,refs/.*
2013-08-07.11:54:55 6226 pre_git testing uncleflo R any -> refs/.*
2013-08-07.11:54:55 6226 system,git,http-backend
2013-08-07.11:54:55 6226 END
Для тестового репо: gitolite-admin / conf / gitolite.conf
repo testing
RW+ = @all
RW+ = daemon
/etc/httpd/conf.d/gitolite3.conf
<VirtualHost *:80>
# ServerName git.example.com
# ServerAlias git
# ServerAdmin you@example.com
DocumentRoot /var/www/git
<Directory /var/www/git>
Options None
AllowOverride none
Order allow,deny
Allow from all
</Directory>
SuexecUserGroup gitolite3 gitolite3
ScriptAlias /git/ /var/www/bin/gitolite-suexec-wrapper.sh/
ScriptAlias /gitmob/ /var/www/bin/gitolite-suexec-wrapper.sh/
<Location /git>
AuthType Basic
AuthName "Git Access"
Require valid-user
AuthUserFile /etc/httpd/git.passwd
</Location>
</VirtualHost>
/var/www/bin/gitolite-suexec-wrapper.sh
#!/bin/bash
#
# Suexec wrapper for gitolite-shell
#
export GIT_PROJECT_ROOT="/var/lib/gitolite3/repositories"
export GITOLITE_HTTP_HOME="/var/lib/gitolite3"
exec /usr/share/gitolite3/gitolite-shell
В пустом репо вы должны сначала создать ветку перед фиксацией:
git checkout -b master # creates the master branch
echo ... # creates the test file
git commit -am "first commit" # commit in the right branch
git push -u origin master # actually push something
Для следующего толчка потребуется только git push
.
Видеть "Почему мне нужно явно подталкивать новую ветку?", чтобы узнать больше об этом начальном этапе.
Если вы не создаете ветку, вы совершаете фиксацию в отделенная голова, который никогда не нажимается (отсюда и отсутствие видимых изменений на удаленной - гитолитовой - стороне)
У меня также возникла проблема при настройке умного http с помощью gitolite. После успешного выполнения я написал как сделать в своем блоге Почта.