0

Subversion を使用した経験はありますが、最初にリポジトリを正しく構成するためのアドバイスが必要です。

私は複数の小さな無関係なプロジェクトを持っていますが、これらの小さなプロジェクトの多くが依存しているグローバル プロジェクトもいくつか持っています。グローバル プロジェクトには、他のプロジェクトに共通する再利用可能なライブラリなどが含まれています。

リポジトリは 1 つだけですが、各プロジェクトにプロジェクト ルート (トランク) がありますか (つまり、グローバルなものを含む各プロジェクトに 1 つ)?

すべてのプロジェクトを同じルートに配置したくはありません。グローバル プロジェクト以外はほとんど関係がないからです。

現時点では、すべての小さなプロジェクトのソリューションには具体的にグローバル プロジェクトが含まれています。これは、ソース コードを更新できることを意味しますが、何かがグローバルにコミットされた場合、すべてのプロジェクトが影響を受けることを意味します。これをもっと分離して、プロジェクトにグローバル dll のみを含める方が良いですか? そうすれば、そのプロジェクトにグローバルのそのバージョンのみが使用されていることを確認できますか?

アドバイスありがとう!

4

2 に答える 2

1

2つのかなり実用的なオプションがあります。

big_project
  trunk
  branches
  tags
little_project_1
  trunk
  branches
  tags
little_project_2
  trunk
  branches
  tags

または

trunk
  big_project
  little_project_1
  little_project_2
branches
  branch_x
    big_project
    little_project_1
    little_project_2
  branch_y

等。

いくつかの一般的なユーティリティライブラリなどを共有する以外に、プロジェクトが互いにほとんど関係がない場合は、オプション1を使用します。これにより、プロジェクトがより適切に分離されます。それらが密接に結びついている場合、オプション2には、1回のチェックアウトですべてをチェックアウトできるという利点があります。

どちらにしても、それほど重要ではないと思います。オプション2では、すべてのプロジェクトを一緒に更新する必要はありません。トランクの下で1つのプロジェクトのみをコミットできます。

それらが共有する唯一のものがいくつかのユーティリティライブラリである場合、これらのライブラリを独自のプロジェクトに分割することを検討します。したがって、3つの関数を取得するためだけにbig_project全体を吸い込む必要はありません。

于 2013-01-07T14:22:29.397 に答える
0

小さなプロジェクトで外部ディレクティブを使用して、大きなプロジェクトからライブラリを取り込むことをお勧めします。

SVN External ディレクティブには、外部 (大きなプロジェクト) が同じリポジトリにある場合に最適に機能する機能がいくつかあるため、別のリポジトリを使用することはお勧めしません。プロジェクトごとに個別の最上位フォルダーを使用します。Jay のオプション 1 のように。

大きなプロジェクトへの変更が小さなプロジェクトに影響を与えないように、大きなプロジェクトの特定のリビジョンへの外部ディレクティブ リンクを使用する場合。小さなプロジェクトが大きなプロジェクトの変更を利用する準備ができたら、外部ディレクティブを変更して新しいリビジョンにリンクできます。

于 2013-01-07T15:38:33.877 に答える