如何在Mercurial中添加远程存储库?

top*_*ess 97 mercurial repository hg-paths

我正在以下列方式使用Git存储库:

  • 我在不同的生产机器上有主存储库和几个遥控器.
  • 我正在将生产代码推送到远程控制器并重新启动服务以使更改生效.

我即将从Git切换到Mercurial,我想提前知道如何实现这样的目标.

Ry4*_*ase 127

您将条目添加到[paths]本地克隆.hg/hgrc文件的部分.以下是.hg/hgrc文件中的一个部分示例:

[paths]
remote1 = http://path/to/remote1
remote2 = http://path/to/remote2
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用命令hg push remote1来将更改集发送到该存储库.如果您希望更新的远程仓库是工作目录,则需要changegroup在执行更新的远程位置放置一个挂钩.这看起来像是这样的:

[hooks]
changegroup = hg update 2>&1 > /dev/null && path/to/script/restart-server.sh
Run Code Online (Sandbox Code Playgroud)

并不是每个人都喜欢让远程repos在push上自动更新他们的工作目录,而且肯定不是默认的.

  • 对于任何想要看到遥控器的人都使用`hg paths`,这相当于`git remote -v`. (22认同)
  • @Christian`default-push`只有在您的常用推送目标与通常的拉动源不同时才是必要/有用的.如果它们是相同的(或者你永远不会拉),那么`default`就足够了. (3认同)
  • default-push(而不是例如remote1)允许只输入"hg push".然后使用default-push存储库.很有帮助. (2认同)
  • 再补充一点:如果你的配置文件中有 `default-push` 和 `default`,那么第一个将用于推送,后者用于拉取。如果您想从同一个远程存储库中推送和拉取(如果您以类似集中式的方式使用 Mercurial,您可能会这样做),那么只需将 `default` 放在文件中。如果他们在第一次推送时添加一个小的命令行选项就太酷了......(或者我可能是一个 CVS 人太多;-)) (2认同)

Aka*_*ash 6

如果要添加默认路径,则必须default~project/.hg/hgrc文件中使用.如下:

[paths]
default = https://path/to/your/repo
Run Code Online (Sandbox Code Playgroud)

祝好运.


Von*_*onC 5

你可以看看hg-git GitHub插件:

hg-git一般的想法

添加从Mercurial推送和从Git服务器存储库中提取的功能.
这意味着您可以在Mercurial上基于Git的项目进行协作,或者使用Git服务器作为开发人员同时使用Git和Mercurial的团队的协作点.

注意:我没有使用最新版本的Mercurial测试该工具.

  • ^ Chris:您的问题是:我如何将Git回购转换为Mercurial?"或"如何声明/设置远程Hg回购?"(如http://superuser.com/questions/43686/setting-up -a-remote-mercurial-repository),或"在Hg中声明远程的位置?"(http://crazythinking.wordpress.com/2009/03/07/starting-a-mercurial-hg-remote-repository/ ) (2认同)