到目前为止,我还没有找到一个清晰的答案,尽管可能的答案是“改变你的工作流程”。
我刚刚开始使用Mercurial的补丁队列,并发现它具有一些强大的功能。看起来非常棒。在我的测试中,我发现如果你在repo1中有一个补丁队列,并从repo2中拉取,你可以做一些坏事情。例如:
有办法做到这一点吗?
我刚刚开始使用Mercurial的补丁队列,并发现它具有一些强大的功能。看起来非常棒。在我的测试中,我发现如果你在repo1中有一个补丁队列,并从repo2中拉取,你可以做一些坏事情。例如:
- 创建仓库1并克隆它。
- 在repo1上启用队列
- 在repo1上进行一些提交和一些补丁
- 将更改拉到repo2
- 在repo1上取消应用所有补丁
- 将更改拉到repo2
有办法做到这一点吗?
qpush
),它们就是您存储库历史记录的一部分。检查日志。qpop
会从存储库历史记录中删除补丁。再次qpush
会创建一个新的、类似的变更集,并带有一个新的 ID。所以,mq
改变了历史记录。在拉取或推送到其他存储库之前,要么使用qpop -all
,要么尝试使用phases
方法。 - Ned Deily