我希望使用mercurial存储库执行等效的svn export REMOTE_URL
。我最终想要的是远程URL上存储库的无版本快照,但没有将所有更改集克隆到我的本地计算机上。
此外,我希望能够在远程存储库中指定一个标记来从中选择。如果不是很明显,我正在构建一个发布管理工具,它从一个规范的mercurial存储库中提取来构建一个发布文件,而且它现在很慢,因为有些项目提交了大型的多版本二进制文件。
这可能吗?怎么会这样呢?
答案 0 :(得分:3)
通常更容易(如果远程HG使用hgweb界面)只需访问浏览器中的repo并下载最新修订版的.tgz / .zip / .bz2。如果远程HG支持,您将看到链接。
如果您需要存储库,则需要进入当前tip
的所有修订版才能使其完全正常运行。
hg clone
有一些选项允许您获取存储库最多某个版本,但没有(我能找到)允许您获取 < / em>最新修订。您基本上要求的是回购的快照。
修改:获取快照
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来解决。
如果没有,那么让原始仓库“实时”很好,因为您可以稍后通过hg pull
再次更新它,然后创建未来版本的另一个快照。这节省了克隆时必须从头开始,特别是对于有大量更改的大型存储库。
此外,以Linux为中心,但你得到了要点。当然,根据需要用所需的协议替换http [s]。
答案 1 :(得分:1)
是否有任何理由无法维护本地计算机上远程存储库的镜像(在后台通常需要更新),然后在本地计算机上运行发布管理工具hg archive
必要的本地克隆?如果您关心的是用户响应,而不是消耗的总带宽/存储空间,则会将“慢速”部分偏移到您不会看到它的位置。
如果你不害怕玩非官方附加组件,你可以查看FTP Extension。但是,这将迫使您从服务器推送。