从远程mercurial存储库获取单个文件

Oak*_*Oak 11 java mercurial

有没有办法以编程方式从Java中的远程Mercurial存储库下载单个文件?我问了一个关于git非常类似的问题 ; 现在我希望我也可以用mercurial做类似的事情.

  1. 我更喜欢使用尽可能少带宽的解决方案,最好只下载该单个文件.我不需要浏览存储库,我已经有了文件的路径.
  2. 我不关心文件的历史,我只想要它的最新版本.
  3. 当然,只将文件打印到输出的解决方案也很棒 - 它实际上不必将文件保存到磁盘,我自己也可以这样做.
  4. 我更喜欢不依赖于其他应用程序的解决方案(例如,在机器上安装mercurial客户端).包含mercurial客户端实现本身的Java库将是最佳的.但是,hg如果没有别的办法,我会很乐意调用.

根据我对Mercurial如何工作的理解 - 允许仅针对本地存储库 - 这可能会成为问题; 但是我能够用类似的Git SCM做到这一点,我希望Mercurial也有解决方案.

Wim*_*nen 10

水银线协议不具有命令从远程仓库读取的单个文件.这就是hg命令行客户端也无法做到这一点的原因.这个想法是你应该总是为这样的东西做一个本地克隆.

但是,mercurial的各种Web界面通常都有一种获取文件内容的方法.例如,对于bitbucket存储库,URL如下所示:

http://bitbucket.org/<user>/<project>/raw/<revision>/<filename>
Run Code Online (Sandbox Code Playgroud)

对于hg serveWeb界面,URL如下所示:

http://<host>:<port>/raw-file/<revision>/<filename>
Run Code Online (Sandbox Code Playgroud)

  • 除此之外,如果你需要访问bitbucket上的私人仓库,他们有一个api:http://confluence.atlassian.com/display/BITBUCKET/Using+the+Bitbucket+REST+APIs (3认同)
  • 对于`hg server` Web界面,您不需要知道修订版.您可以使用`tip`而不是修订号. (2认同)