我正在以下列方式使用Git存储库:
我即将从Git切换到Mercurial,我想知道如何实现这样的目标。
答案 0 :(得分:125)
您可以在本地克隆的[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
并不是每个人都喜欢让远程repos在push上自动更新他们的工作目录,而且肯定不是默认的。
答案 1 :(得分:5)
您可以查看hg-git GitHub plugin:
添加从Mercurial推送和从Git服务器存储库中提取的功能 这意味着您可以在Mercurial上基于Git的项目进行协作,或者使用Git服务器作为开发人员同时使用Git和Mercurial的团队的协作点。
注意:我没有使用最新版本的Mercurial测试该工具。
答案 2 :(得分:5)
如果要添加默认路径,则必须在default
文件中使用~project/.hg/hgrc
。如下:
[paths]
default = https://path/to/your/repo
祝你好运。
答案 3 :(得分:0)
如果你在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)
。