Conversation
1.增加同步Mercurial代码库的先决条件函数:init_git_remote_hg(),用于初始化依赖脚本、更新git设置等。此函数只需调用一次即可,无需每次同步Mercurial代码库都调用。 2.增加repo_init()函数的Mercurial适用版本:repo_init_hg() 3.增加update_repo_git()函数的Mercurial适用版本:update_repo_git_hg() 4.由于Mercurial支持MultipleHeads,所以出于防止歧义的考虑,我没法实现checkout_repo()函数的Mercurial适用版本。MultipleHeads的链接详见:https://www.mercurial-scm.org/wiki/MultipleHeads
|
镜像站直接以静态文件 serve |
直接hg clone的效果,类似于git clone不加--mirror一样 |
另外,如果每次都更换.hg文件然后hg clone,那我没见过这么搞的。对于目前的Git镜像源,难道服务器也是每次都要把.git文件换了吗?显然不是这样 |
当然不可能,只在第一次同步的时候 而且在服务端(用 git smart protocol)服务 git 仓库是需要启动额外的程序的,如果能直接以静态文件服务,可以节省相关的开销。 |
很遗憾。hg官方确实没有这种实现 |
| # --------------------------------------- | ||
| function init_git_remote_hg() { | ||
| mkdir /usr/bin | ||
| curl -o /usr/bin/git-remote-hg https://raw.githubusercontent.com/fingolfin/git-remote-hg/master/git-remote-hg |
There was a problem hiding this comment.
我们不在脚本中下载可执行文件,我们会在 Dockerfile 中使用发行版的软件包。我们建议使用已经打包好的工具,例如直接使用 hg。
Lines 4 to 5 in 989faa9
以 git 方式服务 hg 软件源并不是「镜像」,用户并不能获得和上游一致的工具体验,我们也不知道转换成 git 后用户是否能正常利用该镜像。 建议直接使用 hg 同步相关文件,并将其放在单独的脚本中。 |
|
- 以 git 方式服务 hg 软件源并不是「镜像」,用户并不能获得和上游一致的工具体验,我们也不知道转换成 git 后用户是否能正常利用该镜像。
首先,这个脚本是经过验证的脚本,具有可靠性。另外,开源社区确实是把这种方式称为“镜像”,虽然这也许和学术上的概念不一致,但不能因此否认它是“镜像”。
- 您可以向 hg 提出相关 patch。
我会征求Mercurial团队的意见。
另外,Git作为一种较新的技术,其功能可能不能和Mercurial完全对应。我也会和Mercurial团队讨论是否真的有必要支持hg clone
--mirror这种命令。
我认可你的想法,因为直接hg clone肯定是最方便的。
Zenithal ***@***.***> 于2022年5月11日周三 14:18写道:
… 所以还是谨慎为妙,虽然用了git多点开销,但换来的是已经被验证过的解决方案,这肯定是一个好的选择。
以 git 方式服务 hg 软件源并不是「镜像」,用户并不能获得和上游一致的工具体验,我们也不知道转换成 git 后用户是否能正常利用该镜像。
建议直接使用 hg 同步相关文件,并将其放在单独的脚本中。
很遗憾。hg官方确实没有这种实现
您可以向 hg 提出相关 patch。
另外可以参考 ustclug/mirrorrequest#251 (comment)
<ustclug/mirrorrequest#251 (comment)>
—
Reply to this email directly, view it on GitHub
<#139 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AOOM5WGIXG6GN5MHIJ26IELVJNGK3ANCNFSM5VSHTMUQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
|
您可以通过https://bz.mercurial-scm.org/show_bug.cgi?id=6702来跟踪Mercurial团队的意见
Linux BCKP ***@***.***> 于2022年5月11日周三 15:39写道:
… - 以 git 方式服务 hg 软件源并不是「镜像」,用户并不能获得和上游一致的工具体验,我们也不知道转换成 git 后用户是否能正常利用该镜像。
首先,这个脚本是经过验证的脚本,具有可靠性。另外,开源社区确实是把这种方式称为“镜像”,虽然这也许和学术上的概念不一致,但不能因此否认它是“镜像”。
- 您可以向 hg 提出相关 patch。
我会征求Mercurial团队的意见。
另外,Git作为一种较新的技术,其功能可能不能和Mercurial完全对应。我也会和Mercurial团队讨论是否真的有必要支持hg clone
--mirror这种命令。
我认可你的想法,因为直接hg clone肯定是最方便的。
Zenithal ***@***.***> 于2022年5月11日周三 14:18写道:
> 所以还是谨慎为妙,虽然用了git多点开销,但换来的是已经被验证过的解决方案,这肯定是一个好的选择。
>
> 以 git 方式服务 hg 软件源并不是「镜像」,用户并不能获得和上游一致的工具体验,我们也不知道转换成 git 后用户是否能正常利用该镜像。
>
> 建议直接使用 hg 同步相关文件,并将其放在单独的脚本中。
>
> 很遗憾。hg官方确实没有这种实现
>
> 您可以向 hg 提出相关 patch。
>
> 另外可以参考 ustclug/mirrorrequest#251 (comment)
> <ustclug/mirrorrequest#251 (comment)>
>
> —
> Reply to this email directly, view it on GitHub
> <#139 (comment)>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AOOM5WGIXG6GN5MHIJ26IELVJNGK3ANCNFSM5VSHTMUQ>
> .
> You are receiving this because you authored the thread.Message ID:
> ***@***.***>
>
|
1.增加同步Mercurial代码库的先决条件函数:init_git_remote_hg(),用于初始化依赖脚本、更新git设置等。此函数只需调用一次即可,无需每次同步Mercurial代码库都调用。
2.增加repo_init()函数的Mercurial适用版本:repo_init_hg()
3.增加update_repo_git()函数的Mercurial适用版本:update_repo_git_hg()
4.由于Mercurial支持MultipleHeads,所以出于防止歧义的考虑,我没法实现checkout_repo()函数的Mercurial适用版本。MultipleHeads的链接详见:https://www.mercurial-scm.org/wiki/MultipleHeads