13

何が良いですか?

A:

server:1080/repo/projectA/trunk/...
                          branches/branch1
                          branches/branch2
                          branches/branch3
                          tags/tag1/...
                          tags/tag2/...
server:1080/repo/projectB/trunk/...
                          branches/branch1
                          branches/branch2
                          branches/branch3
                          tags/tag1/...
                          tags/tag2/...

B:

server:1080/repo/trunk/projectA/...
                 branches/projectA/branch1
                 branches/projectA/branch2
                 branches/projectA/branch3
                 tags/projectA/tag1/...
                 tags/projectA/tag2/...
server:1080/repo/trunk/projectB/trunk/...
                 branches/projectB/branch1
                 branches/projectB/branch2
                 branches/projectB/branch3
                 tags/projectB/tag1/...
                 tags/projectB/tag2/...

使用するリポジトリ構造とその理由は?

4

6 に答える 6

19

もう一方は意味をなさなかったので、A を使用します。SVN に関する「プロジェクト」は、必ずしも単一のプロジェクトではなく、一緒に属する複数のプロジェクト (つまり、Visual Studio のソリューションに入れるもの) である可能性があることに注意してください。このようにして、関連するものはすべてグループ化されます。特定のプロジェクトのすべてのブランチ、タグ、およびトランク。私には完全に理にかなっています。

代わりにブランチ/タグでグループ化することは意味がありません。異なるプロジェクトのブランチには、すべてのブランチであることを除いて共通点がないためです。

しかし、最終的には、人々は両方の方法を使用します。好きなことをしてください。

さらに、お客様ごとに別々のリポジトリがあります。つまり、お客様のすべてのプロジェクトは同じリポジトリにあります。このようにして、たとえば、一度に 1 人の顧客のバックアップを作成したり、顧客が所有するあらゆるもののソース コードを SVN と戦うことなく提供したりできます。

于 2008-09-30T09:16:04.167 に答える
17

SVN ブックリポジトリ管理の章には、さまざまな戦略とその意味、特にブランチとマージに関するリポジトリ レイアウトの意味を概説するリポジトリ編成の計画に関するセクションが含まれています。

于 2008-09-30T09:20:38.210 に答える
8

オプションCをお勧めします:

server:1080/projectA/trunk/...
                     branches/branch1
                     branches/branch2
                     branches/branch3
                     tags/tag1/...
                     tags/tag2/...
server:1080/projectB/trunk/...
                     branches/branch1
                     branches/branch2
                     branches/branch3
                     tags/tag1/...
                     tags/tag2/...

別々のプロジェクトを別々のリポジトリに保持することを好みます。svn:externalsを使用すると、2 つ以上のアプリケーション プロジェクト間で共有されるコード ライブラリ プロジェクトを簡単に管理できます。

于 2008-09-30T09:17:39.217 に答える
1

設定 B を使用します。一度に複数のプロジェクトをチェックアウト/タグ付けする方が簡単だからです。svn 1.5 ではスパース チェックアウトで可能ですが、ワンクリック操作ではできません。一部のプロジェクトに隠れた依存関係がある場合は、設定 B を使用します。

于 2008-09-30T09:20:03.843 に答える
0

個人的には、次のリポジトリ構造を使用しています。

/project
    /trunk
    /tags
        /builds
            /PA
            /A
            /B
        /releases
            /AR
            /BR
            /RC
            /ST
    /branches
        /experimental
        /maintenance
            /versions
            /platforms
        /releases

これらのディレクトリがどのように使用されるかを示す図もあります。また、私が使用する特定のバージョン番号付けアプローチがあります。リポジトリの構造化において重要な役割を果たします。最近、ソフトウェア構成管理専用のトレーニングを開発しました。ここでは、バージョン番号付けのアプローチと、このリポジトリ構造が最適である理由について説明します。こちらがプレゼンテーションスライドです。

「複数のSVNリポジトリと単一の会社のリポジトリ」に関する質問に対する私の回答もあります。質問でリポジトリ構造化のこの側面に対処する限り、役立つ場合があります。

于 2011-12-31T14:50:40.933 に答える
0

を使用しております

/repos/projectA/component1/trunk - branches - tags
/repos/projectA/component2/trunk - branches - tags
/repos/projectB/component3/trunk - branches - tags
/repos/projectB/component4/trunk - branches - tags

私は後悔し始めています。それはより平らであるべきです。これは良いでしょう。

/repos/projectA/trunk - branches - tags
/repos/projectB/trunk - branches - tags
/repos/component1/trunk - branches - tags
/repos/component2/trunk - branches - tags
/repos/component3/trunk - branches - tags
/repos/component4/trunk - branches - tags

なんで?製品 (コンポーネント、完成したソフトウェア) は永久に存続します。プロジェクトは行ったり来たりします。昨年、製品 QUIX を作成したプロジェクト チームは 1 つだけでした。翌年、そのチームは分散し、1 人か 2 人が QUIX を維持します。来年は、2 つの大きな QUIX 拡張プロジェクトが予定されています。

そのタイムラインを考えると、QUUX は 3 つのプロジェクト リポジトリに表示されますか? いいえ、QUUX は特定のプロジェクトから独立しています。プロジェクトには、作業の一部である作業成果物 (ドキュメント、バックログなど) がありますが、作業の実際の目標ではないことは事実です。したがって、その素材の「projectX」リポジトリ-プロジェクトが完了した後は誰も気にしないもの。

私は 3 つのチームで 1 つの製品に取り組みました。各プロジェクトが独自にリポジトリを管理していたため、作業の調整に大きな問題がありました。チーム間のリリースとチーム間の調整がありました。その日の終わりには、それは 1 つのソフトウェアになるはずでした。ただし、ご想像のとおり、奇妙な重複と冗長性を備えた 3 つのソフトウェアでした。

于 2008-09-30T10:03:36.937 に答える