我正在通过以下方式使用 Git 存储库:
- 我在不同的生产机器上有主存储库和几个遥控器。
- 我正在将生产代码推送到遥控器并重新启动服务以使更改生效。
我即将从 Git 切换到 Mercurial,我想提前知道如何实现这样的目标。
我正在通过以下方式使用 Git 存储库:
我即将从 Git 切换到 Mercurial,我想提前知道如何实现这样的目标。
您将条目添加到[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
在~project/.hg/hgrc
文件中使用。如下:
[paths]
default = https://path/to/your/repo
祝你好运。
你可以看看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)
.