問題は、開発のフロント エンドとして Mercurial または git を使用できるようにしたいのですが、変更セットと更新を Subversion で、通常は統合ブランチまたはスクリプトによってのみ書き込まれる何かで行うことです。 Mercurial、または変更に気付いた場合の Hudson による。次に、SVN を使用している他の開発者が行った変更で Mercurial リポジトリが更新されます。変更をプルして統合し、新しい開発バージョンを提供する前に変更をテストします。
マージと分岐を使用する開発チームで次のシナリオが可能かどうかは誰にもわかりませんか? それとも、より良い方法があるとしたら...強力な武器を使用して 1 つのツールを使用する以外に?
次の戦略は、次のコンポーネントで構成されています。
- SVN
- Mercurial を使用した SVN の 1 対 1 のクローン
- Mercurial 開発リポジトリ
以下の構成では、通常、更新は SVN/trunk からクローン (hgsubversion) にプルされます。クローンは読み取り専用で、定期的に変更を取得するスクリプトを持っています。クローンは、読み書き可能な開発リポジトリにクローンされます (通常の Mercurial リポジトリです)。開発者がこの開発者リポジトリに変更をプッシュすると、統合ブランチにある要素が SVN/統合ブランチにプッシュされます。このブランチは、自動化されたスクリプトによってのみコミットされます。svn を使用している他の開発者が変更を SVN のトランクにプッシュするだけの場合、それらはクローンにプルされ、Mercurial の環境内でマージされます。欠点は、変更が行われた SVN レベルで可視性が失われることです。
[[[[ trunk [[[[[[[[[[[[[[[[[[[[[[[[ SVN ]]]]]]]]]]]] branch/integration ]]]]]]]]]]]]]]]]]]
| ^
| |
| |
v |
SVN - Mercurial Clone |
| |
| |
| |
v |
Mercurial - Development ---------------------------- Branch - Integration