使用HG Subversion推送到SVN时的工作流

使用HG Subversion推送到SVN时的工作流,svn,mercurial,hgsubversion,Svn,Mercurial,Hgsubversion,这个问题与前面提到的问题非常相似,但在解决方法之后,我遇到了一些问题 问题: 基本上我有一个subversion服务器和一个mercurial本地客户端。hg subversion扩展允许mercurial充当subversion客户端。这对我来说非常理想,因为我可以从subversion开发分支中创建无限的功能分支,并根据自己的选择将它们合并到一起 由于subversion的限制,我无法将分支合并提交到subversion存储库。事实上,我不需要提交每个分支合并,我只想将“默认”分支头提交给S

这个问题与前面提到的问题非常相似,但在解决方法之后,我遇到了一些问题

问题:

基本上我有一个subversion服务器和一个mercurial本地客户端。hg subversion扩展允许mercurial充当subversion客户端。这对我来说非常理想,因为我可以从subversion开发分支中创建无限的功能分支,并根据自己的选择将它们合并到一起

由于subversion的限制,我无法将分支合并提交到subversion存储库。事实上,我不需要提交每个分支合并,我只想将“默认”分支头提交给SVN

建议的解决方案:

Harvey建议的一个变通方法是修改我的工作流程,将hgsubversion克隆的hg-only克隆包含在开发中

引用哈维的话:

诀窍是学习修改后的hghgsubversionsvn工作流。一旦你“了解”了它的工作原理,你就不会有任何麻烦了。您只需再键入几个命令。实际上,我已经开始编写脚本,以使这个过程(重复)更容易。典型流程:[在“hg”回购中]提交一系列更改;把他们推向“颠覆”;[切换到“hgsubversion”]hg更新(hgsubversion需要此功能);hg push到“svn”(在本地推送和删除变更集后,它会自动重新拉取);[切换回“hg”]hg从“hgsubversion”中拉出;hg剥离旧的副本b/c“hg”不是hgsubversion的克隆,不知道如何自动剥离旧的变更集

我遇到的问题:

我在从hgsubversion到svn存储库运行HgPush时遇到了麻烦。我仍然收到错误消息,“中止:抱歉,找不到合并修订的svn父级。”

诚然,对于hgsubversion如何推动svn的修订,我并不是百分之百的了解。老实说,我希望看到本地副本所在的状态被推送到svn服务器


Halp?

我决定回答我自己的问题,以便存档(以及有相同问题的人)

我发现答案是简单的,你不能这么做。请参考上面的链接,并向上投票埃里克·卡尔的答案,如果这对你有帮助的话。他确实提供了一个恢复的方法。

使用HgSubversion知识 如果我理解正确,hgsubversion将只推到您当前的版本

e、 如果你做了10,11,12,然后从开发分支合并了13。你可以

hg up 12
hg push
由于它会做的方式,折扣等,你最终会推到12,然后被更新到13,但它的工作为我

新的hg功能 使用,并将不希望推送的修订标记为机密。当然,这也会阻止您推送到其他存储库

使用公司政策 我们工作中的另一个好情况是,所有代码提交都必须有一个审阅者和问题。如果有些东西不是为svn准备的(但在我们的团队/spike存储库中),那么我不会将这些信息放进去,任何事故都会因为预提交挂钩失败而停止