3

SVNリポジトリのMercurialミラーを作成しました(このチュートリアルを使用:http://oreilly.com/opensource/excerpts/opensource-mercurial/migrating-to-mercurial.html)。同期はうまく機能しますが、メインのSVNリポジトリで参照されている外部リポジトリを取得していないことに気づきました...

理想的には、すべてを単一のリポジトリとしてMercurialに(可能であればチェンジセットとともに)プルできるようにしたいと思います。

私が確信していないのは、外部の欠落がsvnsyncの制限なのか、それともhgconvertの制限なのかということです。

外部も同じMercurialリポジトリに同期させる方法はありますか?


良い解決策は、外部用に同期プロセスを最初からやり直すことだと思います。現在のhgミラーのフォークを作成し、外部をhgミラーフォークに同期します。

つまり、外部のトランクは最初のミラーのサブフォルダーに入ることが意図されているので、convertを使用してそれを複製するにはどうすればよいですか?サブフォルダーにインポートするように変換するように指示できるとは思えません...

4

1 に答える 1

3

欠落している外部はsvnsyncの制限ですか、それともhg convertの制限ですか?

svnsyncSVNリポジトリのミラーを作成するために使用されます。これにはすべてのsvn:externalsプロパティが含まれます。したがって、の制限である必要がありますhg convert

でミラーを作成する必要はないことに注意してくださいsvnsync。この記事では、ローカルコピーを使用すると変換プロセスが高速化される可能性があるため、これを推奨しています。

外部も同じMercurialリポジトリに同期させる方法はありますか?

SVNリポジトリには、それぞれが独自のブランチとタグを持つ、ゆるやかに関連する複数のプロジェクトが含まれているのが一般的です。しかし、Mercurialはそのようには機能しません。ブランチするときは、リポジトリにあるすべてのものをブランチします。独自のトランク/ブランチ/タグを持つSVNのプロジェクトごとに個別のMercurialリポジトリを作成する必要があります。hg convertこの異なるアプローチは、同じSVNリポジトリにある場合でも、外部を無視する理由である可能性が最も高いです。

svn:externalsMercurialに相当するものがあります。これは「サブリポジトリ」と呼ばれます。1つ以上のプロパティを使用する代わりに、プロジェクトのルートに同様のコンテンツをsvn:externals含む単一のファイルがあります。.hgsub最初に各SVNプロジェクトを個別のMercurialリポジトリに変換してから、それらをサブリポジトリに接続する必要があります。詳細については、サブリポジトリのMercurialWikiページを参照してください。

于 2010-11-23T17:13:13.467 に答える