Cloning mercurial repo to the remote host

拥有回忆 提交于 2019-12-12 07:45:24

问题


Mercurial supports push-style cloning of repositories to remote hosts, however newly cloned repositories don't contain working copies. Is there any 'hidden' option to make mercurial call update upon these cloned repos?

Here is an example:

1) hg init hello

2) hg clone hello ssh://somehost/hello

ssh://somehost/hello only contains .hg directory and I have to execute the following command in the shell in order to fill the working copy:

3) ssh somehost 'cd hello && hg update'

Is there any way to avoid step 3) ?


回答1:


You can create a hook on the receiving side. Add the following section to your repo/.hg/hgrc

[hooks]
changegroup = hg update

That should do it. Note that hooks are not cloned.




回答2:


There is no hidden option to force an update of a remote repository. Only one condition determines whether the update is performed (e.g., line 239 of hg.py in the Mercurial 1.0.1 source):

if dest_repo.local():

If you're going to do some work in the working copy, you're going to log in anyway, at which point running "hg update" is pretty easy, so there's not much motivation to relax the current constraint on remote clones.




回答3:


i have the same problem, and unfortunately there is no simple solution to avoid step 3. mercurial doesn't check out the working copy remotely as "git clone" does, so you will always have this extra step when deploying your html files for the first time, for example.



来源:https://stackoverflow.com/questions/831645/cloning-mercurial-repo-to-the-remote-host

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!