1

MercurialからSVNに移行することを考えています。これは、保守が簡単で、Mercurialクライアントよりも多くの人がSVNクライアントを使用しているためです。ただし、ファイル構造について質問があります-

私は、典型的な適切なSVN構造が次のようになることを理解しています。

/trunk..../
現在のバージョンのファイルはこちら

/ branch
....
/ bugfix
.... / newfeature .... / branch3
.... / branchN

/tag..../
バージョン1.0
..../バージョン2.0
..../バージョンnn

私の質問は、これが複数のOSにどのように影響するかということです。Mercurialのディレクトリをチェックアウトすることしかできないため、現在、私のソフトウェアには、OSごとにソフトウェアのGUI/CLIバージョン用に個別のMercurialリポジトリがあります。ただし、SVNでできることは理解しています。構造は次のようになりますか?

/ Windows(またはLinuxなど)

/ trunk
....
/CLI...../現在のバージョンファイルはこちら
..../GUI
...../現在のバージョンファイルはこちら

/ branch
.... / CLI
.....
/ bugfix
..... / newfeature ..... / branch3
..... / branchN
.... / GUI
..... /bugfix
。 .... / newfeature
..... / branch3
..... / branchN

/ tag
.... / CLI
..... / version 1.0
..... / version 2.0
..... / version nn
.... / GUI
..... / version1.0
...。 ./バージョン2.0
...../バージョンnn

それとも私はこれをあまりにも複雑にしているのでしょうか?GUIバージョンを別のリポジトリに保存することをお勧めしますか?また、これらの典型的なディレクトリのどれにプリコンパイルされた実行可能ファイルが保存されていますか?

私はこれらの質問が初心者に見えるかもしれないことを理解していますが、真実は私がSVNに完全に慣れていないということです。ご協力ありがとうございました!

4

1 に答える 1

1

私は SVN を約 3、4 年しか使用していませんが、あなたが持っているものは私にはかなり良さそうに見えます。GUI バージョンを別のレポに保存するつもりはありません。私の仕事では、すべてのプロジェクトを 1 つのレポの下に置いています。異なるフォルダーだけです。これは、あなたが述べたように、必要なフォルダーをチェックアウトできるためです。

また、バイナリ データ (プリコンパイル済みの実行可能ファイルなど) を SVN リポジトリに格納するべきではないと主張する人もいます。単純に、テキストのように以前のバージョンと差分を取ることができないため、リポジトリが肥大化するからです。これは、多かれ少なかれ私の職場での暗黙のポリシーです。私の個人的な SVN の自宅では、重要な実行可能ファイルまたはライブラリ ファイルをチェックインしますが、これらは定期的に変更されることはなく、必要なときにそこにあるようにします。私は肥大化を心配していません.exeの他のバージョンに戻ることができるのは、進行状況を確認するのにちょっとクールです.

ブランチとタグに関する限り、私はそれらを使用したことがありません。おそらくそうすべきであることはわかっていますが、私のプロジェクトのほとんどはとにかく「概念実証」であるため、私のメイントランクは実際に私が構築するすべてです。私は基本的に、非常に優れたバックアップおよびタイムライン ツールとして SVN を使用しています。しかし、タグとブランチの使用を開始する必要があります。

于 2011-05-23T04:13:55.607 に答える