2009-06-05 15 views
6

私たちのチームは、適度なサイズのアプリケーションを管理するためにSVNを使用してきましたが、SVNリポジトリの基本的な標準レイアウトに従った複雑な階層のブランチとタグが構築されました。より多くの入れ子になっている:複雑なSVNブランチ階層をMercurialに移行

 
    |-trunk 
    |-branches 
    | |-releases 
    | | |-releaseA 
    | | `-releaseB 
    | `-features 
    |  |-featureX 
    |  `-featureY 
    |-tags 
    |-releaseA 
    | |-beta 
    | `-RTP 
    `-releaseB 
     |-beta 
     `-RTP  

(機能ブランチは明らかに一時的な枝ですが、我々は近い将来に一度それらのすべてを閉じるすることは可能ではないだろうとして考慮されるそれらを取らなければならない)

いくつかの理由がありますが、主に合併が増加する痛みになっているため、私たちは考慮していますMercurialに切り替える。

私たちが現在直面している主な問題は、歴史を失うことなく既存のコードベースを移行することです。私はいくつかの移行ツール(例えばyasvn2hghg convertsvn2hg)を試しましたが、yasvn2hgが最も有望でしたが、ネストされた階層を扱うことはできないようですが、ブランチとタグは1つのフラットディレクトリそれぞれ、

という名前の枝の間の選択のいずれかのソリューションが高く評価されるように、古いSVNの枝の変換対象としてが、この場合の制限要因ではないかクローン。私たちは現在、両方のオプションと、現在のプロセスにどのように適合するかを実験していますが、まだ決定していません。私は明らかに、その問題に関する同様の設定での推奨や経験にも興味があります。

だから、このような入れ子SVN分岐階層をMercurialに変換する最良の方法は何ですか?

一度に1つのブランチを別々のリポジトリに変換するのは非常に迷惑で、ツールが歴史的なマージをどのように処理し、認識する必要があるかによって最初の適切なアプローチであるかどうかはわかりません他のすべての支店?

+0

ちょっとちょうど今まさに同じ質問を投稿しました。質問をしてから解決策に落ち着いたら聞くのが大好きです。コメントの中で以下に述べるように、私のケースでは、ネストされたブランチごとに "クローン"を持つことは実際には解決策ではありません。ブランチをHGにインポートする方法を見つけることを願っています。多くのレポ。 –

答えて

2

私が読んだ優秀な記事です。 http://ww2.samhart.com/node/50

+0

このリンクには、svn repoを複数のhg reposに分割する根拠が記載されています –

2

mercurial mailing listで本当にそのような質問をする必要があります。これは、Mercurialの開発者が抱いているところで、時間の経過とともに多くのSubversion移行に関する質問がありました。

言われていること

recent changeはあなたを助けるかもしれない - それはあなたを聞かせていると主張

[...]も、最もひどくmismanagedのリポジトリを修正し、うまく構造化Mercurialのリポジトリにそれらを回します。

私は自分自身で試してみませんでしたので、あなたの正確なケースでどれほど効果的かについてはコメントできません。

+0

ありがとうございます。私があなたが言及した修正を見つけて試してもらえるかどうかを確認します。メーリングリストに関しては、それは私が間違いなく探求するオプションです。Mercurialの移行に関して私が見つけたほとんどのGoogleヒットは、ブログのエントリまたはSOを指していたので、 –

+0

の質問に便利な最初の場所と思われた。 wiki、メーリングリスト、そして今のstackoverflowの両方に答えを広めることは残念だと思うので、私はそれを提案しました。また、メーリングリストには、コードのこの特定の部分に取り組んだ多くの人がいます。 IRCが好きなら、irc.freenode.netの#mercurialチャンネルで多くの人が助けを受けているのを見たことがあります。 –

関連する問題