2012-04-11 12 views
1

興味深いソース管理ワークフローの問題があります。MercurialとSVNのワークフローの問題

私の会社は現在SVNを使用しているサードパーティの請負業者と協力して、現在開発中の製品を追跡しています。今後数ヶ月以内にこのリポジトリを引き継いでいきますが、プロジェクト内の他の機能の作業を開始したいと考えています。明白な理由から、請負業者は私たちのアクセスを拒否しましたが、SVNリポジトリへのアクセスを読み取ることに同意しました。

私たちのWindows開発マシンでは、水銀のリポジトリを使用しています。 私は何とか新しいHGリポジトリにSVNリポジトリをコピーし、定期的にSVNにコミットされた変更をHGにマージしたいと思います。つまり、我々は2つの異なるリポジトリに横並びに取り組んでいきます。

誰もこのようなことをしましたか?アプローチに関する提案はありますか?

ありがとうございました。

+0

http://mercurial.selenic.com/wiki/HgSubversion –

+0

ありがとうございました。私は実際に手動でマージすることにしました。私はHGで新しいリポジトリを作成し、定期的に手動でsvnからファイルをコピーします。彼らに提案があれば他の誰かから聞きたいと思う。 – feathj

答えて

2

私は、水銀増加の変化が最悪になり、水銀の変化と合併することのないSVNの変化からさらに遠ざかると思います。しかし、私は水銀がどのようにその複雑さと公正にマージするかを知りたいと思うだろう。私はそれをこのようにアプローチします:

1)あなたのHGレポを作成するために、SVNからエクスポートは、作業コピーにあなたの会社からのすべての新機能が行くことをこの /SvnExportCleanHG クローン呼び出すことができます

/WorkingHG

2) SVNから新しい変更を取り込む場合は、/SvnExportCleanHGからsvnの更新を行い、これをクリーンなリポジトリにコミットします。これには2つのリビジョンがあります。オリジナルと最新のsvnです。 /WorkingHGの中からhg pull /SvnExportCleanHGを実行し、すべての不可避の変更をマージします。次に、それをWorkingHGレポにコミットします。

あなたの能力を最大限引き出すために水銀を使用しようとしましたが、まだ矛盾なくSVNから次の変更を引き出すことができるクリーン/SvnExportCleanHGがあります。

いつでもsvnから更新したい場合は、手順2を実行します。svnからの更新とクリーンレポでのコミットは、svnのみを反映するので決して競合しませんが、作業コピーから引き出し、 HGは同じものに基づいているからです。

変更のレベルと、水銀結合によって多くのものを購入する場合のSVNからの変更によって異なります。あなたがコードの異なるベースラインにとどまっているなら、これは素晴らしいワークフローであり、多くの手間を省きます。重複している場合は、これでも動作しますが、多くのマージ問題を解決するのではなく、ワークフローを容易にします。

私が実際に試してみると、これがどのように機能するか本当に興味があります。

+0

これは非常に意味があります。最初に問題に遭遇したときにこのアプローチを考えたと思います!それはもはや私の問題ではありませんが、私はあなたが後世と私の正気のためにこれに答えたことをうれしく思います。 – feathj

0

SVN + Mercurialは、マージを開始するまで有効です。しかし、マージを使わないと水銀が必要なのはなぜですか?私たちはほとんどそのような状況に陥った。私たちはhgsubversion拡張を使用してsvnを水銀にコピーしました。すべてのアクティブな開発は今は水銀で行われています。私たちは水銀の作業ディレクトリを履歴とすべてのブランチのないsvnにコピーします。

関連する問題