Mercurial 使用hgsubversion推拉,无需手动搁置步骤
我正在使用Ortoisehg和使用hgsubversion扩展的SVN存储库 我喜欢在拉时使用Mercurial 使用hgsubversion推拉,无需手动搁置步骤,mercurial,tortoisehg,hgsubversion,Mercurial,Tortoisehg,Hgsubversion,我正在使用Ortoisehg和使用hgsubversion扩展的SVN存储库 我喜欢在拉时使用hgpull--rebase,以反映SVN在SVN update上的操作。因为我使用的是hgsubversion,所以在推之前我需要重新设置基址,所以我可以一步完成 此外,hgpush将自动在内部执行重基,这是无法避免的 我的困难在于,如果我有任何未提交的更改,hg-rebase将拒绝工作。因此,要从SVN中推或拉,我总是需要先hg shelve,然后记得在之后执行hg unshelve。这真的很烦人,
hgpull--rebase
,以反映SVN在SVN update
上的操作。因为我使用的是hgsubversion,所以在推之前我需要重新设置基址,所以我可以一步完成
此外,hgpush
将自动在内部执行重基,这是无法避免的
我的困难在于,如果我有任何未提交的更改,hg-rebase
将拒绝工作。因此,要从SVN中推或拉,我总是需要先hg shelve
,然后记得在之后执行hg unshelve
。这真的很烦人,我总是忘记
理想情况下,我希望告诉Ortoisehg自动为我做这件事,但我愿意接受命令行别名。我试着用一个别名,比如svnpull=!hg shelve&&hg pull--rebase&&hg unshelve
在我的配置中,但我得到一个错误“user:abort:response expected”,而不是询问我的密码。如何避免每次与中央存储库交互时手动搁置/取消搁置步骤
我不能在本地提交我的更改,而只是避免推动本地更改,因为和。所以不幸的是,这些问题的答案都不适合我。无论如何,我需要手动步骤来安排我的“仅本地”更改集始终处于提示状态。不要手动输入密码,使用钥匙圈(在Windows上有问题)或使用中的
[auth]
部分自动输入密码
远程SVN后端的本地hg repo示例
[auth]
assembla.prefix = https://subversion.assembla.com
assembla.username = USER
assembla.password = PASSWORD
并且不再需要输入密码
另一个想法:你没有立即推送你的WIP,是吗?你只需要把它放在“其他”工作之上,对吗?在本例中,您可以使用相同的
tip
,提交、重新设置并继续工作,使用commit--amend修改它。解决方案是使用存储库挂钩。我在.hg/hgrc配置文件中添加了以下内容:
[hooks]
pre-pull = hg shelve
post-pull = hg unshelve
pre-push = hg shelve
post-push = hg unshelve
它是基于http的SVN存储库吗?是的,它是基于http的。我真的不想用纯文本保存密码,所以我不喜欢用这种方式使用[auth]部分。我主要想做一些永远不会提交的本地更改,比如为了调试的目的关闭makefile中的编译器优化。