10

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

问题:

基本上我有一个颠覆服务器和一个善变的本地客户端。扩展 hg-subversion 允许 mercurial 充当 subversion 客户端。这对我来说是理想的,因为我可以从我的 subversion 开发分支中创建无限的功能分支,并在我选择合适的时候合并它们。

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

建议的解决方案:

用户 Harvey 推荐的解决方法是修改我的工作流程,以包含用于开发的 hgsubversion 克隆的仅 hg 克隆。

引用哈维的话:

诀窍是学习修改后的 hg<->hgsubversion<->svn 工作流程。一旦你“了解”了它的工作原理,你就不会有任何麻烦。您只需键入更多命令。我实际上已经开始编写脚本以使过程(这是重复的)更容易。典型流程: [in "hg" repo] 提交一堆更改;将它们推送到“hgsubversion”;[切换到“hgsubversion”] hg 更新(hgsubversion 需要这个);hg push 到“svn”(在本地推送和删除变更集后会自动重新拉取);[切换回“hg”] hg 从“hgsubversion”拉取;hg 剥离旧的重复 b/c “hg” 不是 hgsubversion 克隆,也不知道自动剥离旧的变更集。

我遇到的问题:

我被困在从 hgsubversion 运行 hg push 到 svn 存储库的地方。我仍然收到错误消息,“中止:抱歉,找不到合并修订的 svn 父级。”

诚然,我不是 100% 了解 hgsubversion 如何将修订推送到 svn。老实说,我希望看到我的本地副本处于推送到 svn 服务器的状态。

哈普?

4

2 回答 2

6

我决定为存档目的回答我自己的问题(以及那些有同样问题的人)。

我发现另一个类似的问题,答案很简单,你不能这样做。如果这对您有帮助,请参阅上面的链接并投票支持 Eric-Karl 的回答。他确实提供了一种解决方法来恢复。

于 2011-01-31T17:57:47.877 回答
-1

使用 HgSubversion 知识

如果我正确理解了这个问题,hgsubversion 只会推送到您当前的版本。

例如,如果您已经完成了 10、11、12,然后从开发分支合并了 13。你可以

hg up 12
hg push

由于它会做变基等的方式,你最终会推送到 12,然后更新到 13,但它对我有用。

新的汞功能

使用mercurial 阶段并将您不想推送的修订标记为机密。当然,这也会阻止您推送到其他存储库。

使用公司政策

我们工作中的另一个不错的情况是所有代码提交都必须有审阅者和问题。如果某些东西不是为 svn 设计的(但在我们的团队/spike 存储库中),那么我不会将该信息放入其中,并且任何事故都会因预提交挂钩失败而停止。

于 2012-05-15T23:59:41.723 回答