Svn 如何将修订从mercurial推回subversion?
您好,我已经将一个本地svn存储库转换为mercurial,在hg中提交了几次修订,现在希望将这些更改恢复到svn中。Svn 如何将修订从mercurial推回subversion?,svn,mercurial,synchronization,Svn,Mercurial,Synchronization,您好,我已经将一个本地svn存储库转换为mercurial,在hg中提交了几次修订,现在希望将这些更改恢复到svn中。 有人能建议怎么做吗 我发现了,但不幸的是,我没有按照那里描述的那样进行转换(只是在本地repo上进行了hg转换),也没有使用MQ 有没有可能将单个修订推回到subversion,或者我能做的就是在更改上与本地进行区分 我个人在工作中使用Mercurial来处理我们的subversion存储库。我强烈建议您使用hgsubversion进行克隆,因为在进行简单推送时,它能够提交回s
有人能建议怎么做吗 我发现了,但不幸的是,我没有按照那里描述的那样进行转换(只是在本地repo上进行了hg转换),也没有使用MQ
有没有可能将单个修订推回到subversion,或者我能做的就是在更改上与本地进行区分 我个人在工作中使用Mercurial来处理我们的subversion存储库。我强烈建议您使用hgsubversion进行克隆,因为在进行简单推送时,它能够提交回subversion存储库。唯一的问题是,您必须学习如何重新设置更改的基础,因为您无法使用mercurial的合并功能(subversion根本无法理解更改集可能有两个父级) 如果您想要删除subversion repo并用mercurial替换它,那么您已经转换的存储库是非常有用的。不幸的是,这是不可能回退的(除非你想开始玩diff)
但是,如果您使用hgsubversion克隆svn repo,您可能(假设没有合并)能够将您在当前转换的mercurial depot上所做的更改拉入其中。如果有合并,您必须在传输更改之前对其进行“线性化”。我个人在工作中使用Mercurial来处理我们的subversion存储库。我强烈建议您使用hgsubversion进行克隆,因为在进行简单推送时,它能够提交回subversion存储库。唯一的问题是,您必须学习如何重新设置更改的基础,因为您无法使用mercurial的合并功能(subversion根本无法理解更改集可能有两个父级) 如果您想要删除subversion repo并用mercurial替换它,那么您已经转换的存储库是非常有用的。不幸的是,这是不可能回退的(除非你想开始玩diff)
但是,如果您使用hgsubversion克隆svn repo,您可能(假设没有合并)能够将您在当前转换的mercurial depot上所做的更改拉入其中。如果存在合并,您必须在传输更改之前对其进行“线性化”。我认为您可以使用 我会尝试这样做:
- ,它使用
和导出
命令,或导入
扩展移植
- 也许您可以使用
从无关的存储库中提取变更集。(请参阅)但之后,您需要运行hgpull--force
,当您将更改推回到SVN时,这可能会出现错误。因此,您可以尝试使用merge
或rebase
扩展mq
- 也许您可以使用
扩展在旧存储库上生成一组补丁,将它们复制到新存储库,然后应用它们mq
- 如果所有其他操作都失败了,您可以通过重新执行以前所做的更改,一个接一个地“手动”应用每个更改集。(
命令将非常有用)hg diff-c rev_id
我想你也许可以用 我会尝试这样做:
- ,它使用
和导出
命令,或导入
扩展移植
- 也许您可以使用
从无关的存储库中提取变更集。(请参阅)但之后,您需要运行hgpull--force
,当您将更改推回到SVN时,这可能会出现错误。因此,您可以尝试使用merge
或rebase
扩展mq
- 也许您可以使用
扩展在旧存储库上生成一组补丁,将它们复制到新存储库,然后应用它们mq
- 如果所有其他操作都失败了,您可以通过重新执行以前所做的更改,一个接一个地“手动”应用每个更改集。(
命令将非常有用)hg diff-c rev_id
这并不像人们想象的那么难。从长远来看,我确实建议您像其他答案所建议的那样使用hgsubversion,但有一个非常简单的短期解决方案