我想用mercurial存储库做与svn export REMOTE_URL相当的工作。最后,我想要的是远程URL处的存储库的未版本化快照,但不将所有变更集克隆到我的本地计算机上。
此外,我还希望能够在远程存储库中指定一个标记来从中选取它。如果不是很明显,我正在构建一个发布管理工具,它从规范的mercurial存储库中提取信息来构建一个发布文件,但现在速度很慢,因为一些项目提交了大型的、多版本的二进制文件。
这个是可能的吗?我们该怎么做呢?
发布于 2010-06-25 23:34:55
通常更容易(如果远程HG正在使用hgweb接口),只需在浏览器中访问存储库并下载技巧修订版的.tgz / .zip / .bz2。如果远程HG支持此功能,您将看到这些链接。
如果你想要这个存储库,你需要当前tip中的所有修订版才能让它正常工作。
hg clone有一些选项允许您获取某个版本的存储库,但没有(我能找到的)允许您仅获取提示版本的选项。实际上,您所要求的是repo的快照。
快照编辑:获取快照
hg clone http[s]://url.to.repo repo.hg
cd repo.hg
hg archive ../repo-snapshot
cd ..
rm -rf repo.hg快照现在位于repo-snapshot中。
是的,这确实需要首先克隆repo,这就是为什么我建议查看远程hgweb是否支持任何特定版本的即时下载。如果是这样,你的问题就用curl或wget之类的东西来解决了,而不是HG。
如果没有,最好让原始repo 'live‘,因为您可以稍后通过hg pull再次更新它,然后创建未来版本的另一个快照。这避免了克隆时必须从头开始,特别是对于具有大量更改的大型存储库。
此外,它以Linux为中心,但您得到了要点。当然,根据需要将https替换为所需的协议。
发布于 2010-06-25 23:54:11
有没有什么理由不能在本地机器上维护远程存储库的镜像(以您希望的频率在后台更新),然后让本地机器上的发布管理工具根据需要从本地克隆运行hg archive?如果你关心的是用户响应性,而不是总带宽/存储消耗,这将“慢”的部分抵消到你看不到的地方。
Tim Post指出,如果你有可用的hgweb CGI接口,你可以将其配置为拉下压缩的归档文件并解压缩它们(接口足够一致,你可以通过wget编写脚本),但如果你没有,核心Mercurial没有很多工具来帮助你,开发人员已经表示反对尝试将Mercurial转变为通用的rsync类型的客户端。
如果你不怕玩非官方的插件,你可以看看FTP Extension。然而,这将迫使您从服务器进行推送。
https://stackoverflow.com/questions/3119276
复制相似问题