Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mercurial 使用hgsubversion推拉,无需手动搁置步骤_Mercurial_Tortoisehg_Hgsubversion - Fatal编程技术网

Mercurial 使用hgsubversion推拉,无需手动搁置步骤

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。这真的很烦人,

我正在使用Ortoisehg和使用hgsubversion扩展的SVN存储库

我喜欢在拉时使用
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中的编译器优化。