SVN リポジトリを変換しようとしhgsvn
ていて、SVN プロパティが変更されたコミットがいくつかありますが、Mercurial はそれらを使用しないため、これを空のコミットと見なして中止します。hg commit
何も変更しないコミットを強制的に受け入れる方法はありますか?
hgsvn
空のコミットをスキップするためにハッキングするのに十分な内部構造に精通していません。
ローカルのsvn。$REVNUMタグをヘッドリビジョン(=現在svn。($ REVNUM-1)タグも持っているリビジョン)に追加すると、このコミットをスキップできます。次に、hgpullsvnを続行できます。
インポートがこの状態であるとします(最後にインポートされたリビジョンは15800、プロパティのみのリビジョンは15801):
$ hg log -l1
changeset: 1234:123456789abc
branch: trunk
tag: tip
tag: svn.15800
parent: 1233:cba987654321
user: Rudi <rudi@example.com>
date: Tue Aug 24 11:42:23 2010 +0200
summary: Foobar
$ svn info
Path: .
URL: svn+ssh://example.com/foobar/trunk
Repository Root: svn+ssh://example.com/foobar
Repository UUID: 26c7c274-8ed1-4e7f-bdc1-5c767a948b10
Revision: 15801
Node Kind: directory
Schedule: normal
Last Changed Author: rudi
Last Changed Rev: 15801
Last Changed Date: 2010-08-24 14:00:29 +0200 (Di, 24 Aug 2010)
次に、svn.15801タグを追加するだけです。
$ hg tag -l -r 123456789abc svn.15801
とcontunieをインポートします。
ただし、これを試す前にバックアップを作成してください。
Mercurial では空のコミットはできないと思います。ここに理由を説明するスレッドがあります。
以前に p4 と hg で空のコミットが必要だったとき、空のコミットを「する」ために取っておいたファイルを単純に使用しました。ある種のランダムな文字列(私は通常、時刻と日付を使用します)を使い捨てファイルにダンプするだけhg commit
です....
おそらく、以下はその状況であなたを助けることはありませんが、おそらく他の読者を助けます.
ほぼ空のパッチをインポートすることで、「空の」コミットを作成できます。パッチをエクスポートし、その中のすべての変更を削除して、3 行 (diff...、 ---... および +++ ...) だけを残して、次のようにインポートしました。hg import --bypass --message ...