Mercurialを少しいじってみたいので、既存のリポジトリの1つを変換しようとしています。Macで次のコマンドを実行します。
hg convert myrepos myrepos-hg
このコマンドはすべてのコミットを正常にインポートしますが、Gitリポジトリでマークされた8個ほどのタグを持ち込みません(その点ではブランチもありません)。タグをMercurialにもインポートするために設定する必要のある特別なパラメータはありますか?
Mercurialを少しいじってみたいので、既存のリポジトリの1つを変換しようとしています。Macで次のコマンドを実行します。
hg convert myrepos myrepos-hg
このコマンドはすべてのコミットを正常にインポートしますが、Gitリポジトリでマークされた8個ほどのタグを持ち込みません(その点ではブランチもありません)。タグをMercurialにもインポートするために設定する必要のある特別なパラメータはありますか?
あなたのタグは軽量の git タグですか、それとも注釈付きタグでいっぱいですか? hg convert
注釈付きタグのみを変換しますが、git はデフォルトで軽量タグを作成します。最近、リポジトリの 1 つを変換したときに、この問題が発生しました。次のようにして、それらが何であるかを確認できます。
git ls-remote --tags .
実行すると、注釈付きのhg convert
で終わるタグのみが変換されます。^{}
次の 2 つの選択肢があります。
小さなシェル スクリプトと git-tag の --force オプションを使用すると、すべてのタグに注釈を付けることができます。
これはやや既知の問題です。これを変更することで、次のファイル/usr/lib/python2.6/site-packages/hgext/convert/hg.py(またはそれが配置されている場所)にパッチを適用してみることができます。
extra = {'branch': self.tagsbranch}
に:
extra = {'branch': 'default'}
そしてそれを再び変換します。
編集:物事の状態をより深く見ると、あなたが望むことをするのは難しいかもしれません-不可能ではないかもしれません-。それを正しく行うためにさらにそうです。
タグは8つしかないため、.hgtagsファイルを手作業で作成して手間を省くことを検討してください。後で「hgconvert」がどうなっているのかを理解することができます(私も目を離さないようにします)。
ラック。
私が過去に見た 1 つの提案は、中間ステップとして svn を使用することです。git と hg はどちらも優れた双方向 svn 変換を備えています。
hg-gitプラグインをチェックしてください。