Назад | Перейти на главную страницу

Gitolite3 не пишет

Я здесь немного на краю света. Я хочу установить 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. После успешного выполнения я написал как сделать в своем блоге Почта.