我正在尝试使用hgsvn
转换SVN repo并且我有一些提交,其中SVN属性被修改,但由于Mercurial不使用它们,它将此视为空提交并中止。有没有办法强制这个hg commit
接受一个不改变任何东西的提交?
我对hgsvn
的内部不太熟悉,不能破解它以跳过空提交。
答案 0 :(得分:3)
我认为你不能在mercurial做空提交。这是a thread explaining why。
答案 1 :(得分: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导入。
但请在尝试之前进行备份。
答案 2 :(得分:1)
当我之前需要在p4和hg中进行空提交时,我只是使用了一个被设置为“是”空提交的文件。只需将一些随机字符串(我通常使用时间和日期)转储到一次性文件中,然后hg commit
转走....
答案 3 :(得分:1)
根据@ vorrtex对原始问题的评论,在Mercurial中强制空提交的最简单方法如下:
Dummy.txt
)并提交。hg forget Dummy.txt
hg commit --amend
这将从先前的提交中删除Dummy.txt
,将其留空。 (您可以使用例如TortoiseHg执行第1步,但您需要使用命令行工具执行第2步和第3步。)
我将此添加为新答案,因为最初扫描此主题时我错过了评论,而现有答案并未创建真正的空提交。
答案 4 :(得分:0)
或许,以下情况对您不会有所帮助,但会影响其他读者。
您可以通过导入几乎空的补丁进行“空”提交。我导出了一个补丁,删除了其中的所有更改,只留下了3行(diff ...,--- ...和+++ ...),并导入了hg import --bypass --message ...