Svn 如何强制mercurial接受空提交
我试图用Svn 如何强制mercurial接受空提交,svn,mercurial,hgsvn,Svn,Mercurial,Hgsvn,我试图用hgsvn转换一个SVN repo,我有一些提交,其中修改了SVN属性,但由于Mercurial不使用这些属性,它将其视为空提交并中止。有没有办法强迫这个hgcommit接受一个不会改变任何东西的提交 我对hgsvn的内部结构不太熟悉,无法对其进行黑客攻击以跳过空提交。当我以前在p4和hg中需要空提交时,我只是使用了一个文件,该文件被放在一边作为空提交。只需将某种类型的随机字符串(我通常使用时间和日期)转储到一次性文件中,然后hgcommitaway….我认为不能在mercurial中执
hgsvn
转换一个SVN repo,我有一些提交,其中修改了SVN属性,但由于Mercurial不使用这些属性,它将其视为空提交并中止。有没有办法强迫这个hgcommit
接受一个不会改变任何东西的提交
我对
hgsvn
的内部结构不太熟悉,无法对其进行黑客攻击以跳过空提交。当我以前在p4和hg中需要空提交时,我只是使用了一个文件,该文件被放在一边作为空提交。只需将某种类型的随机字符串(我通常使用时间和日期)转储到一次性文件中,然后hgcommit
away….我认为不能在mercurial中执行空提交。以下是。如果将本地svn.$REVNUM标记添加到头部修订(=现在也有svn($REVNUM-1)标记的修订),则可以跳过此提交。然后您可以继续使用hgpullsvn
假设您的导入处于此状态(上次导入的版本为15800,仅属性的版本为15801):
继续进口
但在尝试此操作之前,请先做一个备份。也许,以下内容在这种情况下对您没有帮助,但可能对其他读者有所帮助
您可以通过导入几乎为空的补丁来进行“空”提交。我导出了一个补丁,删除了其中的所有更改,只留下了3行(diff…,--…和+++…),并使用
hg import--bypass--message…
导入了它。根据@vortex对原始问题的评论,在Mercurial中强制执行空提交的最简单方法如下:
Dummy.txt
)并提交hg忘记Dummy.txt
hg提交——修改
Dummy.txt
,使其为空。(您可以在步骤1中使用OrtoiseHG,但在步骤2和3中需要使用命令行工具。)
我将此添加为新答案,因为最初扫描此线程时,我错过了注释,而现有答案不会创建真正的空提交。谢谢,这让我通过了提交。有一个黑客:创建1个文件,提交,然后删除该文件并使用amend。
$ 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)
$ hg tag -l -r 123456789abc svn.15801