13

gitwebをgitoliteで動作させようとしています...しかし、これまでのところ成功していません。
私はRedHatLinuxマシンで作業しています。と呼ばれるユーザーがgit存在します。

gitoliteは次の場所にインストールされます:/home/git
リポジトリの場所:/home/git/repositories

gitwebはプレーンバニラgitで正常に動作していたことに注意してください。今、私はそれをギトライトで動作させようとしています。

私のファイルは次のようになります。

  • /etc/gitweb.conf

    $projectroot = "/home/git/repositories";
    @git_base_url_list = qw(ssh://[MyHostName]/home/git/projects.list);
    $projects_list = "/home/git/projects.list"
    
  • /home/git/projects.list

    myrepo1.git
    myrepo2.git 
    
  • /home/git/.gitolite.rc

    $PROJECTS_LIST = $ENV{HOME} . "/projects.list";
    $GL_GITCONFIG_KEYS = "gitweb.url receive.denyNonFastforwards receive.denyDeletes";
    

どのような構成を見逃しましたか?Apacheに変更を加えていません。

Web URL:http://MyHostName/git
これにより404エラーが発生します-リポジトリが見つかりません

4

3 に答える 3

13

最近、gitolite と gitweb をセットアップしたところ、構成がほとんど必要ないことがわかりまし/etc/gitweb.confた。あなたが持っているものは私には正しいように見えます. の権限はどのようなものですか? 制限が厳しすぎると感じるかもしれません。これを試してください:/home/git/repositories

$ chmod -R 775 /home/git/repositories

それが私の問題を解決したものです(ただし、権限を設定するためのより安全な方法があると思います)。それが機能する場合は、Apache(またはgitwebが実行されているユーザーアカウント)にリポジトリディレクトリに対するよりきめ細かい権限を与えることを検討することをお勧めします.

私もこれを持っています.gitolite.rc

GIT_CONFIG_KEYS => 'gitweb\.(owner|description|category)',

で次のように動作するようにします<gitolite-admin>/conf/gitolite.conf

config gitweb.owner         =   owner name
config gitweb.description   =   some description
config gitweb.category      =   some category
于 2012-05-30T05:16:35.487 に答える
0

の最後にジトライトcontrib/gitweb.confを追加する必要があり/etc/gitweb_config.perlます。
つまり、perl ファイルから Gitolite 関数を呼び出す必要がありgitweb.confます。そうしないと、GitWeb と Gitolite の統合が機能しません。

# check for (at least) "R" permission
    my ($perm, $creator) = &repo_rights($repo);
    return ($perm =~ /R/);

(これはgitolite.pmrepo_rightsのメソッドです)

「 gitwebの支援」セクションを確認してください。

最後に追加する必要がある最後の行は次のgitweb_config.perlとおりです。

use lib (".");
require "gitweb.conf.pl";

そうすれば、" 500 - Internal Server Error syntax error at /etc/gitweb.conf" エラー メッセージを回避できます。

gitweb_config.perlを宣言するがなくgitweb.conf.pl、直接 " " の場合は、そのファイルの最初の行としてgitweb.conf.pl" " を追加します。use lib (".");

于 2011-08-27T18:54:35.803 に答える
0

1/ インストールgitoliteしてセットアップします。/home/git/.gitolite.rc次に、次のようなコメントされていない部分が含まれていることを確認するだけで十分です。

%RC = (
    ...
    UMASK                           =>  0027,
    ...
    ENABLE => [
        ...
        'gitweb',
        ...
     ]
);

$projectroot2/の$projects_listディレクティブを正しく設定します (ファイルとディレクトリ/etc/gitweb.confの場所を一致させるため)。お気に入り:projects.listrepositories

$projectroot = "/home/git/repositories";
...
$projects_list = "/home/git/projects.list";

3/ 現在のリポジトリ ファイルが Web サーバー ユーザーからも読み取り可能であることを確認します。これらの例は Debian ベースのシステムのもので、YMMV:

sudo adduser www-data git                   # append `www-data` user to a `git` group
sudo chmod g+r /home/git/projects.list      # make sure group members can read the `project.list`
sudo chmod -R g+rx /home/git/repositories   # recursively set less restrictive access mode for group members
sudo /etc/init.d/apache2 restart            # restart web server to apply these changes

4/ 最後に、クライアント マシンのリポジトリのファイルgitweb内でユーザーのアクセスを構成し、それらをコミットしてプッシュすることで適用します (標準的な方法)。表示および管理するリポジトリには、次のようにアクセス権を設定する必要があります。/conf/gitolite.confgitolite-admingitweb

repo testing                                                                    
    RW+     = @all                                                              
    R       = gitweb  # add this line to make the repo browsable using `gitweb`

注:...は、ファイル内に他の構成ディレクティブがあることを示唆するだけです。それらをそこに置かないでください!

リポジトリをgitlab視覚化するために他の変更は必要ありません。gitolite

(少なくとも) gitolite3.6.6 およびgitweb2.1.4に適用されます

于 2017-12-19T12:23:02.780 に答える