使用 hgsubversion 推拉,无需手动搁置步骤
Pushing and pulling with hgsubversion without manual shelve step
我在使用 hgsubversion 扩展的 SVN 存储库中使用 TortoiseHg。
我喜欢在拉取时使用 hg pull --rebase
,以反映 SVN 在 svn update
上所做的事情。因为我使用的是 hgsubversion,所以在推送之前我无论如何都需要变基,所以我最好一步完成。
此外,hg push
将自动 在内部进行变基,没有办法解决。
我的困难是如果我有任何未提交的更改,hg rebase
将拒绝工作。因此,要从 SVN 推送或拉取,我总是需要先 hg shelve
,然后记得做 hg unshelve
。这真的很烦人,我总是忘记。
理想情况下,我想告诉 TortoiseHg 自动为我执行此操作,但我会接受命令行别名。我尝试在我的配置 as suggested here 中放置一个像 svnpull = !hg shelve && hg pull --rebase && hg unshelve
这样的别名,但我得到了一个错误 "user: abort: response expected" 而不是被要求输入我的密码。每次与中央存储库交互时,如何避免手动执行 shelve/unshelve 个步骤?
我不能实际在本地提交我的更改并且只是避免推送本地更改,因为hgsubversion doesn't respect the secret phase and hgsubversion doesn't support designating a revision to push. So unfortunately none of the answers to this similar question对我有用。无论如何,我需要手动步骤来安排我的 "local only" 变更集始终处于顶端。
不要手动输入密码,使用密钥环自动输入(Windows 有疑问)或使用 project's .hgrc
中的 [auth]
部分
来自我本地 hg-repo 的示例,用于远程 SVN-backend
[auth]
assembla.prefix = https://subversion.assembla.com
assembla.username = USER
assembla.password = PASSWORD
不再需要输入密码
另一个想法:你没有立即推出你的 WIP,是吗?您只需将它放在 "other" 工作之上,对吗?在这种情况下,您 可以 提交、变基并继续使用相同的 tip
,用 commit --amend
修改它
解决方案是使用存储库挂钩。我将其添加到我的 .hg/hgrc 配置文件中:
[hooks]
pre-pull = hg shelve
post-pull = hg unshelve
pre-push = hg shelve
post-push = hg unshelve
我在使用 hgsubversion 扩展的 SVN 存储库中使用 TortoiseHg。
我喜欢在拉取时使用 hg pull --rebase
,以反映 SVN 在 svn update
上所做的事情。因为我使用的是 hgsubversion,所以在推送之前我无论如何都需要变基,所以我最好一步完成。
此外,hg push
将自动 在内部进行变基,没有办法解决。
我的困难是如果我有任何未提交的更改,hg rebase
将拒绝工作。因此,要从 SVN 推送或拉取,我总是需要先 hg shelve
,然后记得做 hg unshelve
。这真的很烦人,我总是忘记。
理想情况下,我想告诉 TortoiseHg 自动为我执行此操作,但我会接受命令行别名。我尝试在我的配置 as suggested here 中放置一个像 svnpull = !hg shelve && hg pull --rebase && hg unshelve
这样的别名,但我得到了一个错误 "user: abort: response expected" 而不是被要求输入我的密码。每次与中央存储库交互时,如何避免手动执行 shelve/unshelve 个步骤?
我不能实际在本地提交我的更改并且只是避免推送本地更改,因为hgsubversion doesn't respect the secret phase and hgsubversion doesn't support designating a revision to push. So unfortunately none of the answers to this similar question对我有用。无论如何,我需要手动步骤来安排我的 "local only" 变更集始终处于顶端。
不要手动输入密码,使用密钥环自动输入(Windows 有疑问)或使用 project's .hgrc
中的[auth]
部分
来自我本地 hg-repo 的示例,用于远程 SVN-backend
[auth]
assembla.prefix = https://subversion.assembla.com
assembla.username = USER
assembla.password = PASSWORD
不再需要输入密码
另一个想法:你没有立即推出你的 WIP,是吗?您只需将它放在 "other" 工作之上,对吗?在这种情况下,您 可以 提交、变基并继续使用相同的 tip
,用 commit --amend
解决方案是使用存储库挂钩。我将其添加到我的 .hg/hgrc 配置文件中:
[hooks]
pre-pull = hg shelve
post-pull = hg unshelve
pre-push = hg shelve
post-push = hg unshelve