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

我正在以下面的方式与Git仓库合作:

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

我即将从Git切换到Mercurial,我想知道我如何能够实现这样的事情。

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

 [paths] remote1 = http://path/to/remote1 remote2 = http://path/to/remote2 

然后,您可以使用像hg push remote1这样的命令将更改集发送到该回购站。 如果你想远程changegroup更新是工作目录,你需要在更新的远程位置放置一个changegroup挂钩。 这看起来像这样:

 [hooks] changegroup = hg update 2>&1 > /dev/null && path/to/script/restart-server.sh 

不是每个人都有远程回购自动更新他们的工作目录在推动,这当然不是默认的风扇。

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

gg-git的一般想法

增加了从Mercurial推送到Git服务器存储库的能力。
这意味着您可以从Mercurial协作基于Git的项目,或者使用Git服务器作为开发人员使用Git和Mercurial的团队的协作点。

注意:我没有使用最新版本的Mercurialtesting该工具。

如果你想添加默认path,你必须在你的~project/.hg/hgrc文件中使用default 。 如下:

 [paths] default = https://path/to/your/repo 

祝你好运。

如果你在Unix上,并且你安装了Git,那么你可以使用这个bash函数在没有文本编辑器的情况下添加一个到遥控器的path:

 add-hg-path() { git config -f $(hg root)/.hg/hgrc --add paths.$1 $2 awk '{$1=$1}1' $(hg root)/.hg/hgrc > /tmp/hgrc.tmp mv /tmp/hgrc.tmp $(hg root)/.hg/hgrc } 

然后用以下方法调用它:

 $ add-hg-path remote1 https://path.to/remote1 

如果有人想build立一个Powershell的等价物,我想也包括这一点。 其他潜在的改进包括对参数进行错误检查并将调用分解为$(hg root)

Interesting Posts