Answers:
您将条目添加到[paths]
本地克隆.hg/hgrc
文件的部分。这是.hg/hgrc
文件中要包含的部分的示例:
[paths]
remote1 = http://path/to/remote1
remote2 = http://path/to/remote2
然后,您可以使用类似hg push remote1
将变更集发送到该存储库的命令。如果要使远程仓库更新为工作目录,则需要changegroup
在执行更新的远程位置放置一个钩子。看起来像:
[hooks]
changegroup = hg update 2>&1 > /dev/null && path/to/script/restart-server.sh
并不是每个人都喜欢远程仓库在推送时自动更新其工作目录,因此当然不是默认设置。
default-push
仅在您通常的推入目标与您通常的拉取源不同时才是必要/有用的。如果它们相同(或者您从不拉扯),就default
足够了。
default-push
和default
,则第一个将用于推送,而第二个将用于推送。如果要从同一个远程存储库中进行推送和拉取(如果您以类似集中式的方式使用Mercurial,则可能要这样做),则只需放入default
文件中。如果他们添加了一个小的命令行选项就可以在第一次按下按钮时就做到了,那真是太酷了……(或者我对CVS太多了;
.hg/hgrc
(文件名之前没有DOT)。
您可以看看hg-git GitHub插件:
增加了从Mercurial推入和拉出Git服务器存储库的功能。
这意味着您可以在Mercurial的基于Git的项目上进行协作,或者将Git服务器用作与使用Git和Mercurial的开发人员的团队的协作点。
注意:我尚未使用最新版本的Mercurial测试该工具。
如果您在Unix上并且已安装Git,则可以使用此bash函数轻松地向远程添加路径,而无需使用文本编辑器:
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
如果有人想构建一个等效的Powershell,我也想将其包括在内。其他可能的改进包括对参数的错误检查以及对的调用$(hg root)
。
hg paths
情况的人git remote -v
。