我将 TortoiseHg 与使用 hgsubversion 扩展的 SVN 存储库一起使用。
我喜欢hg pull --rebase
在拉动时使用,以反映 SVN 在svn update
. 因为我使用的是 hgsubversion,所以无论如何我都需要在推送之前进行 rebase,所以我不妨一步完成。
此外,hg push
将自动在内部进行变基,这是没有办法的。
我的困难是,hg rebase
如果我有任何未提交的更改,它将拒绝工作。因此,要从 SVN 推送或拉取,我总是需要hg shelve
先做,然后再记得做hg unshelve
。这真的很烦人,我总是忘记。
理想情况下,我想告诉 TortoiseHg 自动为我执行此操作,但我会接受命令行别名。我尝试按照此处的建议svnpull = !hg shelve && hg pull --rebase && hg unshelve
在我的配置中放置一个别名,但我得到一个错误“用户:中止:预期响应”,而不是被要求输入我的密码。每次与中央存储库交互时,我可以做些什么来避免手动搁置/取消搁置步骤?
我实际上不能在本地提交我的更改而只是避免推送本地更改,因为hgsubversion 不尊重秘密阶段并且hgsubversion 不支持指定要推送的修订。所以不幸的是,这个类似问题的答案都不适合我。无论如何,我需要手动步骤来安排我的“仅限本地”变更集始终处于提示状态。