8

SVN リポジトリを変換しようとしhgsvnていて、SVN プロパティが変更されたコミットがいくつかありますが、Mercurial はそれらを使用しないため、これを空のコミットと見なして中止します。hg commit何も変更しないコミットを強制的に受け入れる方法はありますか?

hgsvn空のコミットをスキップするためにハッキングするのに十分な内部構造に精通していません。

4

5 に答える 5

3

ローカルの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をインポートします。

ただし、これを試す前にバックアップを作成してください。

于 2010-08-25T06:21:39.023 に答える
3

Mercurial では空のコミットはできないと思います。ここに理由を説明するスレッドがあります

于 2010-08-25T02:01:40.497 に答える
1

以前に p4 と hg で空のコミットが必要だったとき、空のコミットを「する」ために取っておいたファイルを単純に使用しました。ある種のランダムな文字列(私は通常、時刻と日付を使用します)を使い捨てファイルにダンプするだけhg commitです....

于 2010-08-24T22:54:51.877 に答える
0

おそらく、以下はその状況であなたを助けることはありませんが、おそらく他の読者を助けます.

ほぼ空のパッチをインポートすることで、「空の」コミットを作成できます。パッチをエクスポートし、その中のすべての変更を削除して、3 行 (diff...、 ---... および +++ ...) だけを残して、次のようにインポートしました。hg import --bypass --message ...

于 2014-01-04T00:32:36.760 に答える