我使用的是带有SVN存储库的TortoiseHg,使用hgsubversion扩展。
我喜欢在拉动时使用hg pull --rebase,以反映SVN在svn update上所做的事情。因为我使用的是hgsubversion,所以在推送之前,我需要重新定位,所以我最好还是一步一步完成。
此外,hg push将自动在内部重新建立一个基础,这是无法避免的。
我的困难是,如果我有任何未提交的更改,hg rebase将拒绝工作。因此,要想从SVN中推拉,我总是需要先做hg shelve,然后记得在之后做hg unshelve。这真的很烦人,我总是忘了。
理想情况下,我想让TortoiseHg自动为我做这件事,但我需要一个命令行别名。我尝试在我的配置svnpull = !hg shelve && hg pull --rebase && hg unshelve中放置一个别名,但是我得到了一个错误"user: abort: response“,而不是被问到我的密码。每当我与中央存储库交互时,我能做些什么来避免手动搁置/取消搁置步骤?
实际上,我不能在本地提交更改,只需要避免推动本地更改,因为相态和hgsubversion不支持指定一个修订版来推动。因此,不幸的是,这个类似的问题的任何一个答案都不会对我有用。无论如何,我需要手动的步骤来安排我的“本地唯一”的变更集总是在提示上。
发布于 2016-01-25 18:18:58
解决方案是使用存储库挂钩。我将它添加到我的. .hg/hgrc配置文件中:
[hooks]
pre-pull = hg shelve
post-pull = hg unshelve
pre-push = hg shelve
post-push = hg unshelve发布于 2016-01-21 13:02:00
不要手动输入密码,使用密匙环(在Windows上有问题)或使用[auth]节in 项目的.hgrc自动输入密码
来自本地hg-repo的远程SVN后端示例
[auth]
assembla.prefix = https://subversion.assembla.com
assembla.username = USER
assembla.password = PASSWORD输入密码不再需要
另一个想法:你没有立即推进你的WIP,对吗?你只要把它放在“其他”工作上就行了,对吧?在本例中,您可以提交、重基并继续使用相同的tip,用commit --amend修改它。
https://stackoverflow.com/questions/34907008
复制相似问题