Is there a way to programmatically download a single file from a remote Mercurial repository, in Java? I have asked a very similar question regarding git; now I'm hoping I can do something similar with mercurial as well.
hg
if there's no other way.From what I understand about how Mercurial works - allowing working only against local repositories - this could prove to be problematic; but as I was able to do this with the similar Git SCM I'm hoping there's a solution for Mercurial as well.
The mercurial wire protocol doesn't have a command for reading a single file from a remote repository. That's why the hg
command line client can't do this either. The idea is that you should always make a local clone for such things.
However, the various web interfaces for mercurial typically have a way to get at file content. For example, for bitbucket repositories the URL looks like this:
http://bitbucket.org/<user>/<project>/raw/<revision>/<filename>
For the hg serve
web interface, the URL looks like this:
http://<host>:<port>/raw-file/<revision>/<filename>
The Bitbucket REST API is the tool you want for this.
https://api.bitbucket/1.0/repositories/{USER}/{REPO-NAME}/raw/tip/{PATH/TO/FILE}
Example from their docs:
Instead of getting the file formatted as JSON, you can get the raw file:
$ curl https://api.bitbucket.org/1.0/repositories/jespern/django-piston/raw/tip/piston/utils.py import time from django.http import HttpResponseNotAllowed, HttpResponseForbidden, HttpResponse, HttpResponseBadRequest from django.core....
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With