33

多くの人が特定のアプリケーションに取り組んでいる企業環境にいる場合、公式の中央リポジトリを持つことは、分散バージョン管理システムの粒度に反しますか?

企業環境におけるGITなどの分散バージョン管理システムの概念を理解するのに苦労することがあります。中央リポジトリがなかったら、プルする最新の更新バージョンを誰が持っているか、誰もが取得する必要がある機能 x やバグ修正 y を誰が持っているかなどを把握するのは PITA ではないでしょうか。

誰もがプッシュ/プルする中央リポジトリを使用して、 SVNと同様の方法でGITを使用することは GITの目的を無効にしていますか? そうすることを考えるたびに、すべての要点を見失っているように感じます。

誰かが私を啓発できますか?

4

7 に答える 7

29

あなたはおそらくこの図の線に沿って考えています:

代替テキスト

これはおそらくCVCSから来る混乱のように見えるでしょう。「注文が必要です」とおっしゃっていますか?

中央リポジトリがない場合は、誰が最新の更新バージョンをプルするのか、誰が機能xまたはバグ修正yを持っているのか、誰もが取得する必要があるのか​​などを把握するのはPITAではないでしょうか。

はい。CVCSとは異なり、実際には「最新バージョン」はありません。中央の場所がない場合は、最新バージョンのスー、ジョー、イブのいずれを表示するかすぐにはわかりません。中央の場所は、最新の「安定した」リリースが何であるかを明確にするのに役立ちます。

もう少しこのようなもの:

代替テキスト

組織内の人々のグループの権限によっては、複数の認識された中央リポジトリが存在する可能性があることにも注意する価値があります。

複数の開発チームを管理するプロジェクトマネージャーを想像してみてください。各チームには、プッシュ先の「中央」リポジトリがあります。毎週、プロジェクトマネージャーは、各チームから自分の「中央」リポジトリに変更をプルし、それらをマージして、自分のチームの「中央」リポジトリにプッシュバックする場合があります。

これはおそらく良い例ではありませんが(私はまだこれについても頭を悩ませています)、それはただ1人のプロジェクトマネージャーです。さらにいくつかのプロジェクト/マネージャーとQAチームを投入すると、私がどこから来たのかがわかるかもしれません。

-

于 2009-01-20T10:43:30.100 に答える
29

あまり。DCVS では、中央リポジトリを使用せずに、開発者間のやり取りをより自由に行うことができます。公式リポジトリは、コンセンサスによってのみ公式です。Linux にも中央リポジトリがあり、そこから「公式」カーネル リリースが作成されますが、中央の「公式」リポジトリとクライアント リポジトリの間に物理的な違いはありません。

于 2009-01-20T08:55:16.310 に答える
8

分散型ソース管理では、ソース管理ツール アーキテクチャではなく、ポリシーによって中央の「公式」リポジトリが確立されます。

于 2009-01-20T08:58:27.037 に答える
6

Git の目的に反することは絶対にありません。

中央の公式リポジトリがある場合でも、Git やその他の DVCS を使用する利点は、ソース管理が分散化されていることです。つまり、リポジトリのコピーを取得してコードを作成し、必要に応じて数分ごとにローカル コミットを実行できます。コミットがビルドを壊す半分完成したコードにあることを心配する必要はありません。それはすべてローカルです。(そして非常に高速です。)

すべての作業が完了したら、履歴をクリーンアップし、完了した変更を均一でクリーンな状態で中央リポジトリにプッシュできます。

「プライベート」コミットと「パブリック」プッシュのアイデアを分離することの利点を過小評価することはできないと思います。このような小さな粒度の恩恵を受けるのはあなただけですが、変更を追跡できます。

于 2009-01-20T10:08:41.963 に答える
4

このGit のプレゼンテーション(スライド 475 以降) を確認すると、中央リポジトリ モデルは Git によって完全にサポートされています。

git push開発を希望する人は誰でも、最初git fetch + git mergeに作成してからプッシュするように強制できます。

これは Git の目的をまったく損なうものではなく、全員が互いに「同期」していることを保証します。

JesperEで言及されている Linus の「公式」リポジトリとの違いは、別のワークフロー、つまり「独裁者と中尉」モデルによって管理されていることです。このモデルでは、書き込みアクセス (プッシュ) は Linus にのみ許可され、読み取りは誰にでも許可されます。

今:「それはDVCのポイントを打ち負かしますか」?

いいえ、開発者ごとに 1 つずつ分散リポジトリがあり、開発者は独自の内部チーム ワークフローに従って、独自のリポジトリ間でフェッチ/マージできます。
ただし、中央レポジトリに貢献したい場合は、まずそのレポジトリの最新の履歴で最新の状態にする必要があります。

于 2009-01-20T08:55:38.850 に答える
1

DVCSの主な利点の1つは、「公式」リポジトリから最新バージョンを取得して、それを冒険できることです。ローカルで変更をコミットし、自由にロールバックできます。これは、中央リポジトリにアクセスしなくても作業でき、ソースコード管理のメリットを享受できることも意味します。

少しの規律で、モデルは非常にうまく機能すると思います。この記事では、採用できるさまざまなモデルについて詳しく説明します

于 2009-01-20T10:46:14.290 に答える
0

Git のような DVCS では、中央リポジトリを使用する必要はありません。もちろん、1 つのリポジトリを「中央」または「公式」などと宣言することは可能です。会社のコンテキストでは、中央リポジトリは何らかの意味があります。

于 2009-01-20T09:05:24.603 に答える