如何在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插件 :
增加了从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)
。