チームを CVS から遠ざけるためのさまざまなオプションを検討しています。Subversion を使用する別のサイトに別の大規模なチームがあり、一部の開発者は Subversion サーバーで作業しています。したがって、Subversion は私たちのチームにとって当然の選択です。でも:
- Subversion サーバーが関与する操作は、コーヒーブレイクのように遅くなる可能性があります (ただし、サイト間の接続は良好です)。
- 私たちの多くは、分散バージョン管理のアイデアを支持し、Mercurial や git を広く使用しています (そして、マージして CVS にコミットし、変更を取得します)。
git-svnは面白そうに見えますが、私が知りたいのは、Subversion に一握りの集中ブランチがあると、git などの DVCS のパワーがどれだけ失われるかということです。特に、次のような Mercurial でのワークフローを維持できるようにしたいと考えています。
- Subversion のメインの安定したトランクに移動する前に、他のチーム メンバーのリポジトリをプルしてマージし、フィーチャー ブランチで共同作業することはできますか?
- git で可能な豊富な策略が一般的に機能することを期待できますか、それとも git-svn を混乱させないように注意する必要がありますか?
- git を使用して Subversion からのチェックアウトを高速化するには、接続を介して他のサイトから 1 回プルしてから、個々のリポジトリに 1 回プルする必要があります。
- 誰かが Subversion にコミットした場合、git-svn を介して他の git ユーザーが完全な開発履歴を見ることができるように手配できますか?
- 半世界のレイテンシがあるにもかかわらず、Subversion サーバーでインタラクティブな操作を待つ必要を基本的に回避できますか?
私たちの多くは、誰もがプッシュできる単純な線形履歴を持つ、かなり安定した主要な共有ブランチのアイデアに慣れているため、定期的に先端にマージします。このワークフローを git (または Mercurial や Bazaar) でうまくサポートする方法がよくわかりません。