2008-09-15 19 views
2

一般的に推奨されているもの(タグとブランチと呼ばれる並列ディレクトリ)よりも、タグやブランチを管理する優れた技術を思いついた人はいますか?Subversionのタグとブランチ

+0

このテクニックの問題は何ですか? – hop

+0

タグやブランチの何が問題ですか? ありがとうございます、 – Sklivvz

答えて

0

分岐を持つときに並列ディレクトリを持つ以外に、唯一可能なのは、SVNスイッチを2つのブランチ間で実行することです。おそらく、あなたはこのシステムについて "より良い"ものにしたいものを明確にし、人々は提案をすることができます。

3

ブランチ/タグ/などの情報を伝えるためにリポジトリの名前空間を使用することは、基本的にSVNモデルです。あなたが望むものが別のモデルであれば、おそらく本当にSVN以外のものがほしいと思うでしょう。

SVNのCVSスタイルのラベルのようなメタデータが欠けていることは、意図的な設計上の決定です。ツリー内でどのブランチ/タグ/プロジェクトの配置を選んでいても、それぞれの目的に合わせて並列ディレクトリのセットを減らすことになります。残っているのは、ブランチとタグの命名戦略を適切に選択するだけです。

私が気に入っているのは、フルヘビー級ブランチと軽量の "小枝"の分離です。私が働くグループのコンベンションでは、長期にわたる開発がブランチに入り、リリースエンジニアは各ブランチについて知っていて部分的に責任を負う必要がありますが、エンジニアは短期間の나뭇가지を作成してスクラッチスペースとして使用することができます1つのチェックインに収まるには大きすぎますが、リリースエンジニアリングのサポートを必要とするほど大量ではない問題については、ここの小枝はブランチに似た別々の並列 '小枝'ディレクトリにあり、命名規則には、小枝が扱うことが意図されている問題の作成者のユーザーIDとバグID番号が含まれていることがよくあります。

3

「トランク、タグ、分岐およびストリーム」戦略を使用します。

「トランク」とは、本番環境に出ているものの最新バージョンが置かれる場所です。

「タグ」は、ストリームが完了したときに「コピー先」になり、アーカイブの目的でストリームのステータスを保存する必要があります。また、特定のポイントからの開発を継続することもできます。

"支店"とは、主流開発とはまったく異なるものが発生する場合です。通常、ブランチは非常にまれです。

"ストリーム"は私たちが最もよく使うものです。開発のストリームは、特定の修正や開発のためのストリーム(変更要求の完了など)のようなタスクベースのフォーカスです。ストリームは互いにマージできますが、異なるストリームはsvn戦略に基づいてランク付けされます。たとえば、crのリリース用に1つのストリームがあり、アプリサポートリリースをプッシュするためのもう1つのストリームがありました。 CRストリームは、独自の変更に加えてアプリサポートの修正を組み込む必要があったため、上位にランクされました。上位にランク付けされたストリームは、必要に応じてより低いストリームがマージされます。最後に、ストリームがプロダクション可能になります。それはタグ付けされ、トランクに「コピー」され、その後、(通常は、タグが使用されることもありますが)さらなるストリームのベースとして使用されます。

ただし、ストリームを最大限に活用するには、完了までに2週間以下の短いタスクが必要です。これらのストリームは、複数の上位ランクのストリームにすばやくマージされ、後で他の上位ランクのストリームにマージされます。たとえば、アプリのサポートがcrよりも低かったため、すべてのアプリサポートクイックフィックスをストリームにコピーしてから作業し、アプリケーションサポートにマージしてからcrストリームにマージすることができました。

関連する問題