有没有办法以编程方式从Java中的远程Mercurial存储库下载单个文件?我问过very similar question regarding git;现在我希望我也可以用mercurial做类似的事情。
hg
。根据我对Mercurial如何工作的理解 - 允许仅针对本地存储库 - 这可能证明是有问题的;但是我可以用类似的Git SCM做到这一点,我希望Mercurial也有解决方案。
答案 0 :(得分:10)
mercurial wire protocol没有从远程存储库读取单个文件的命令。这就是hg
命令行客户端无法执行此操作的原因。这个想法是你应该总是为这样的事情做一个本地克隆。
然而,mercurial的各种web界面通常都有办法获取文件内容。例如,对于bitbucket存储库,URL如下所示:
http://bitbucket.org/<user>/<project>/raw/<revision>/<filename>
对于hg serve
网络界面,网址如下所示:
http://<host>:<port>/raw-file/<revision>/<filename>
答案 1 :(得分:2)
Bitbucket REST API是您想要的工具。
https://api.bitbucket/1.0/repositories/{USER}/{REPO-NAME}/raw/tip/{PATH/TO/FILE}
来自docs的示例:
您可以获取原始文件,而不是将文件格式化为JSON 文件:
$ curl https://api.bitbucket.org/1.0/repositories/jespern/django-piston/raw/tip/piston/utils.py 导入时间来自django.http import HttpResponseNotAllowed, HttpResponseForbidden,HttpResponse,HttpResponseBadRequest来自 django.core ....