現在SubversionとTeamCityを使用していますが、Mercurial(特にFogBugzユーザーのKiln)の使用に移行します。
明らかにこれにより、開発パターンに変更(できれば改善)がもたらされます(2人全員!)が、私が悩んでいる1つの問題は、継続的な統合/ CIサーバーのメリットを享受できるように物事を構造化する方法です(利益が存在し、今後も存在することは当然のことであり、その議論はこの質問の範囲外です。
SVNを使用すると、限られた数の中央リポジトリにコミットします-事実上プロジェクトごとに1つ(多かれ少なかれ1つのVisual Studioソリューション)なので、ビルドをトリガーし、すべてのファイルがコミットされていないという安心感を得るのが簡単です依存関係などの漂流など。しかし、mercurialを適切に進める場合は、リポジトリインスタンスを増やしたいと思うでしょう。変更点は、一般に決定的な「ライブ」レポジトリに向かって流れると予想されます。私が苦労している問題は、ライブリポジトリが私にとってCIビルドをトリガーするには遅すぎるように見えることです。開発者ごとにプロジェクトごとに1つのCIビルドが多すぎると思われます(そして他の問題を引き起こします)。
私は少し釣りをしていますが、それは、中央のSubversionリポジトリが提供するものの1つ(私はセットアップで!)が、何をいつ構築するかについて非常に明確だからです。
nb Mercurialを継続的インテグレーションで使用するメカニズムについては質問していません。個人的なプロジェクトの御and走、そのパターンと構造、そして頭を動かそうとしている作業プラクティス/ワークフローを持っています。