2

はい、私は知っています。分散バージョン管理システムには中央リポジトリがありません。これは集中型の VCS ではないため、誰でも任意のリポジトリのバージョンを取得できます。しかし、オフィスでの実際の生活では、多くの場合、上司はすべてのマスターになりたがっているので、誰か私の場合に良いアプローチを持っているかどうかを確認するためにここに来ました.

私のオフィスでは、GIT の使用を開始しました。次のようなものがあります。

<SERVER>
---->../apache/htdcos/All_Proyects [Bare repository]
-------->/Proyect_A [Repository]~~~ Developer 1 [Git Repo], Developer 2 [Git Repo]
-------->/Proyect_B [Repository]~~~ Developer 3 [Git Repo], Developer 4 [Git Repo]
-------->/Proyect_123 [Repository]~~~ Developer 5 [Git Repo], Developer 6 [Git Repo]

すべてのプロジェクトには独自の GIT リポジトリがあり、All_Projects フォルダーにベア リポジトリ、次に「メイン リポジトリ」があるため、すべてのプロジェクトがそこにプッシュされるという考えです。そのベア リポジトリは、マスター リポジトリのマスターのようなものになります (これは本当にそもそも良いアプローチ???)

このアプローチでは、いくつかの疑問があります...

ユーザー/リポジトリの階層を作成するにはどうすればよいですか?? つまり、たとえば、開発者 5 は Proyect_A との間でプッシュ/プル/コミットすることはできませんが、自分の Proyect_123 に対しては実行できますか??

このような階層システムを作成できますか?: 開発者は Boss リポジトリにプッシュし、Boss はプロジェクト リポジトリにプッシュし、サーバーはすべてのプロジェクト リポジトリからベア マスター オブ マスター リポジトリに自動的に (cron で) プルします。(開発者が裸のリポジトリに直接プッシュできない場合)。

どうすればそのようなことができますか?ありがとう!

4

1 に答える 1

1

親リポジトリによって参照されるリポジトリは、まさにサブモジュールが対象となる理由です。

また、メインのGitリポジトリサーバーGitoliteに追加した場合は、ユーザーおよびプロジェクトによる保護が可能です(インストールページを参照)。
これは、Gitコマンドをインターセプトし、どのユーザーがどのリポジトリで何を実行できるかを指定する構成ファイルに対してそのコマンドを検証するPerlスクリプトの小さなコレクションです。

于 2012-09-22T08:20:55.047 に答える