有没有办法以编程方式从
Java远程Mercurial仓库下载单个文件?我问了一个
very similar question regarding git;现在我希望我能做一些类似的事情.
>我更喜欢使用尽可能少的带宽的解决方案,最好只下载单个文件.我不需要浏览存储库,我已经有了文件的路径.
>我不关心文件的历史,我只想要它的最新版本.
>只有将文件打印到输出的解决方案也是非常好的,当然 – 它不是真的要将文件保存到磁盘,我可以自己做.
>我更喜欢不依赖于其他应用程序的解决方案(例如在机器上安装一个mercurial客户端).包含一个Mercurial客户端实现本身的Java库将是最佳的.但是,如果没有其他方法,我会很乐意地调用hg.
从我所了解的Mercurial如何工作 – 允许只对当地的知识库进行工作 – 这可能是有问题的;但是由于我能够使用类似的Git SCM来完成此操作,我希望有一个Mercurial的解决方案.
解决方法
mercurial wire protocol没有从远程存储库读取单个文件的命令.这就是为什么hg命令行客户端也不能这样做的原因.这个想法是,你应该总是为这样的事情做一个本地克隆.
然而,各种web界面通常具有获取文件内容的方式.例如,对于bitbucket存储库,URL如下所示:
http://bitbucket.org/<user>/<project>/raw/<revision>/<filename>
对于hg服务网页界面,网址如下所示:
http://<host>:<port>/raw-file/<revision>/<filename>