SVNSYNC&HGコンバートを使用してSVNを水銀に同期する - ミスSVN:外部?
-
27-09-2019 - |
質問
SVNリポジトリのMercurial Mirrorを作成しました(このチュートリアルを使用してください。 http://oreilly.com/opensource/excerpts/opensource-mercurial/migrating-to-mercurial.html)。同期はうまく機能しますが、メインのSVNリポジトリで参照されている外部リポジトリをピックアップしていないことに気付いています。
理想的には、すべてを単一のリポジトリとして(可能であれば、変更セットとともに)すべてのリポジトリとして引くことができることを望んでいます。
私が確信していないのは、欠落している外部はsvnsyncの制限ですか、それともHG変換の制限ですか?
外部を同じ水銀リポジトリに強制する方法はありますか?
私は、外部のために、同期プロセスを再び完全に設定することが良い解決策だと思います。現在のHGミラーのフォークを作成し、外部をHGミラーフォークに同期します。
それでのキャッチは、外部のトランクは最初のミラーのサブフォルダーに入ることを意図しているので、どうすればそれを変換で複製できますか?サブフォルダーへのインポートを変換することができるとは思わない...
解決
欠落している外部は、SVNSYNCの制限ですか、それともHG変換の制限ですか?
svnsync
SVNリポジトリのミラーを作成するために使用されます。これには任意が含まれます svn:externals
プロパティ。したがって、それは制限でなければなりません hg convert
.
あなたは本当にミラーを作成する必要がないことに注意してください svnsync
. 。この記事では、これを推奨しています。これは、ローカルコピーを持つことで変換プロセスをスピードアップする可能性があるためです。
外部を同じ水銀リポジトリに強制する方法はありますか?
SVNリポジトリは、それぞれが独自のブランチとタグを備えた複数の緩やかに関連するプロジェクトを含むことが一般的です。しかし、Mercurialはそのように機能しません。あなたが分岐するとき、あなたはリポジトリにあるすべてを分岐します。独自のトランク/ブランチ/タグを備えたSVNの各プロジェクトに、個別のMercurialリポジトリを作成する必要があります。この異なるアプローチがおそらくその理由です hg convert
同じSVNリポジトリにある場合でも、外部を無視します。
に相当します svn:externals
水銀; 「サブレポジトリー」と呼ばれています。 1つ以上を持つ代わりに svn:externals
プロパティ、シングルがあります .hgsub
プロジェクトのルートに同様のコンテンツを備えたファイル。最初に各SVNプロジェクトを別の水銀リポジトリに変換し、次にサブレポジトリーに接続する必要があります。を参照してください サブレポジトリー用の水銀ウィキページ 詳細については。