3

[2010/9/16 更新]

昨夜これを調べた後、最初の質問が実際には2つの別々のことを求めていることに気付きました。

1) gitosis によって作成されたすべてのリモート リポジトリに更新後のフックを設定することは可能ですか (つまり、gitosismv hooks/post-update.sample hooks/post-updateでリポジトリを作成した後に手動で実行する必要はありません)。git update-server-infopost update フック内から呼び出されるという事実)。

2) HTTP 経由でリポジトリにアクセスできるようになったら、gitosis.conf のオプションを使用してアクセスのオンとオフを切り替えることができますか (daemon = noまたはに似たものgitweb = yes)

--- 質問 1 の解答 ---

git initGit はテンプレートを使用して、コマンドで新しいリポジトリを作成することが判明しました。mv hooks/post-update.sample hooks/post-updateテンプレートディレクトリ内で実行することによりgit init、私のサーバーでの今後のすべての呼び出しで、更新後のフックが正しく構成されます。(OSXでは、テンプレートディレクトリは/opt/local/share/git-core/templates/気にする人のためのものです)

これが機能するためのもう 1 つの要件は、リポジトリの HTTP クローン URL が次のようになるように、Apache 書き換えルールを有効にすることです。http//git.example.com/repo.git

私の書き換えルールは次の/etc/apache2/extra/httpd-vhosts.confようになります。

# turning on mod rewrite
RewriteEngine on

# make the front page an internal rewrite to the gitweb script
RewriteRule ^/$ /cgi-bin/gitweb.cgi [L,PT]

# make access for "dumb clients" work
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]

--- 質問 2 の解決策をまだ探しています...ヘルプ! :) ---

HTTP クローンがすべてのリポジトリで機能するようになったので、gitosis を使用して HTTP アクセス制御を管理する方法があるかどうか疑問に思っています。リポジトリへの git-daemon およびgitwebアクセスを設定daemon = nogitweb = noてオフにしますが、Apache 書き換えルールがまだ有効であるため、リポジトリは. これを管理するために gitosis を使用する方法についてのアイデアはありますか?http://git.example.com/repo.git

【最初に投稿した質問】

gitosis を使用して git リポジトリへの http アクセスを管理することは可能ですか? たとえば、gitosis.conf では、次を使用して gitweb と git-demon のアクセスを管理できます。

# Allow gitweb to show this repository.
gitweb = yes

# Allow git-daemon to publish this repository.
daemon = no

現在、次のコマンドを発行してリポジトリのクローンを作成できます。

$ git clone git://git.example.com/repo.git

ただし、次のコマンドを発行すると:

$ git clone http://git.example.com/repo.git

次のエラー メッセージが表示されます。

fatal: http://git.example.com/repo.git/info/refs not found: did you run git update-server-info on the server?

ただし、サーバーにログインして repo.git 内から次を実行すると:

# From http://progit.org/book/ch4-5.html
$ cd project.git
$ mv hooks/post-update.sample hooks/post-update
$ chmod a+x hooks/post-update
$ git update-server-info

その後、http によるクローン作成は正常に機能します。

gitosis 内からリポジトリへの http アクセスを管理する方法はありますか?

4

1 に答える 1

1

gitweb はすでにセットアップされ、機能していましたか? gitwebで gitosis をセットアップする方法については、 このブログを参照してください。

ところで、Gitolite の主な機能は、非常に細かい権限を持つことができることです。すなわち。ブランチごとに権限を制御します。


更新: gitosis と gitweb の統合は、基本的にプロジェクト リストに表示されるかどうかだと思います。gitweb へのアクセス許可は制御しません。これは Web サーバー (Apache) 経由で行われます。

于 2010-09-16T00:22:26.123 に答える