26

私たちのチーム(5〜10人の開発者)は、.NET(Visual Studio)プロジェクト/ソリューション(VisualSVNサーバー、TortoiseSVN / VisualSVN)にSubversionを採用することを計画しています。

新しいリポジトリツリーを整理するための最良の方法は何ですか?1つの大きなリポジトリを使用しても大丈夫ですか、それともソリ​​ューション/製品ラインなどごとに異なるリポジトリを作成する方が良いですか?

私たちのプロジェクトは次のように分類できます(例):

  • 主な製品ライン
    • メインWebアプリ
      • ライブラリ1
      • ライブラリ2
      • ..。
    • Windowsクライアント
    • 別のWindowsクライアント
    • Windowsサービス
  • ツール
    • ツールA
    • ツールB
  • 製品ライン2
    • ソフトウェア1
    • ソフトウェア2
  • 製品ライン3
    • アプリ1
    • アプリ2
4

8 に答える 8

12

一般に、異なるアクセス許可が必要な場合は、別のリポジトリを使用する必要があります(つまり、一部の開発者は1つのプロジェクトにコミットする必要がありますが、別のプロジェクトにはアクセスできません。または、あるプロジェクトには読み取り専用のパブリック匿名インターフェイスがありますが、別のプロジェクトにはありません。 t)。

そのレベルのアクセス制御が必要ない場合、特にプロジェクト間でファイルをコピーまたは移動できる必要がある場合(つまり、プロジェクトがコードを共有する場合)、すべてを1つのリポジトリにまとめる必要があります。

トランク/タグ/ブランチを、単一のパッケージとしてリリースする可能性のあるコードのチャンクに対応するレベルに分割します(つまり、タグを付ける場所を考えます)。これらは他のフォルダと内部的には変わらないため、最初は正しく理解することが重要ではありません。そのため、後で移動するだけで済みますが、もちろん、その問題が発生しないほうがよいでしょう。

于 2008-10-03T14:10:52.137 に答える
6
  • SVN管理の観点私は1つのリポジトリを好みます。
  • プログラマーの立場私は1つのリポジトリを好みます。
  • サーバー管理者私は1つの再投稿を好みます。
  • セキュリティの観点から、すべての卵を1つのバスケットに入れないことが望ましいです。

リポジトリの構造は、ビジネスとその製品にいくらか固有のものになります。私たちは1つのリポジトリに保管しています。私たちの構造はこのようなものです。

  • /
    • プロジェクト
      • プロジェクト名
        • トランク
        • タグ
    • ドキュメンテーション
      • プロジェクト1
    • 共有ライブラリ
      • スーパーストリングクラス
    • 小さなユーティリティ
      • vimエンハンスメントX
于 2008-10-03T14:08:20.440 に答える
4

1つの大きなリポジトリを使用し、すべてをサブフォルダ(/ project1、/ project2など)で構造化しただけで、問題なく機能しているようです。

Apacheプロジェクトには巨大なsvnリポジトリがあり、それで問題ないようです。:)

組織の面では、あなたが与えた構造はかなり合理的に見えます。それが合理的である限り、ほとんど何でもうまくいくと思います(つまり、すべてのツールをすべてのプロジェクトと混同することはおそらく悪い考えですなど)。だからあなたのために働くものを選んでください(ツール/、プロジェクト/など)。Subversionは、リポジトリ内での移動もかなりサポートしているため、必要に応じていつでも変更できます。

于 2008-10-03T14:01:40.033 に答える
3

そのように構成された単一のリポジトリがあります。数人以上の人が取り組んでいるものや活発に開発されているものはすべて、メインフォルダの下にtrunk / tags /branch/が設定されています。

おそらく、アクティブに開発されていないライブラリを1つか2つ除いて、リストしたすべてのサブフォルダーの下にこれらのtrunk-tags-branchフォルダーセットを配置します。

于 2008-10-03T14:01:48.877 に答える
1

プロジェクトごとに個別のリポジトリがあります。しかし、主な理由はアクセス上の理由です。また、お客様がソースのコピーを希望する場合は、手間をかけずに履歴付きで提供できます。conf の構成ファイルを見ると、すべてのプロジェクトで機能するユニバーサル構成ファイルを持つことはそれほど難しくありません。次のようにします。

[general]
anon-access = none
auth-access = write
password-db = ../../conf/passwd
authz-db = ../../conf/authz

認証:

[groups]
AOS = nathan,mark

[AOS:/]
@AOS = rw
frew = rw

そしてもちろん passwd:

[users]
frew = password
nathan = awesome
mark = station
于 2008-10-06T15:54:50.207 に答える
1

定期的にアクセスする素材 (コード、スクリプト) は、 「一度だけ書き込み、バックアップにコミットする」ものとは別に保管するようにしてください。数行のコードを変更するためだけに何千もの jpeg をチェックアウト/更新する必要があると、すぐに退屈になります。

于 2008-10-04T07:35:45.317 に答える
0

以下のように、1 つのリポジトリと多くのプロジェクトを使用しています。

Projects
   Project Name
      trunk
      branches
      tags

私の唯一の懸念は、バックアップと復元です。SVN バックアップはリポジトリ レベルで行われるため、復元では 1 つではなくすべてのプロジェクトが復元されます。

ジロン

于 2014-03-06T20:55:02.727 に答える