Получить один файл из удаленного ртутного хранилища - PullRequest
10 голосов
/ 20 февраля 2011

Есть ли способ программной загрузки одного файла из удаленного хранилища Mercurial на Java?Я задал очень похожий вопрос относительно git ;теперь я надеюсь, что смогу сделать что-то похожее и с Mercurial.

  1. Я предпочитаю решение, которое использует как можно меньшую полосу пропускания, желательно только загрузку этого файла.Мне не нужно просматривать хранилище, у меня уже есть путь к файлу.
  2. Меня не интересует история файла, мне нужна только его последняя версия.
  3. Решение, которое толькоконечно, распечатывает файл и выводит его на печать - это не обязательно сохранять файл на диск, я могу сделать это сам.
  4. Я предпочитаю решение, которое не зависит от других приложений(например, установка Mercurial клиента на машине).Библиотека Java, которая содержит саму реализацию Mercurial, была бы оптимальной.Тем не менее, я с радостью вызову hg, если нет другого пути.

Из того, что я понимаю о том, как работает Mercurial - позволяет работать только с локальными репозиториями - это может оказаться проблематичным;но, поскольку я смог сделать это с аналогичным Git SCM, я надеюсь, что есть решение и для Mercurial.

Ответы [ 2 ]

10 голосов
/ 20 февраля 2011

В протоколе mercurial wire нет команды для чтения одного файла из удаленного репозитория. Вот почему клиент командной строки hg тоже не может этого сделать. Идея состоит в том, что вы всегда должны делать локальный клон для таких вещей.

Тем не менее, различные веб-интерфейсы для Mercurial обычно имеют способ получить доступ к содержимому файла. Например, для репозиториев Bitbucket URL-адрес выглядит следующим образом:

http://bitbucket.org/<user>/<project>/raw/<revision>/<filename>

Для веб-интерфейса hg serve URL выглядит следующим образом:

http://<host>:<port>/raw-file/<revision>/<filename>
2 голосов
/ 16 апреля 2012

API REST Bitbucket - это инструмент, который вам нужен для этого.

https://api.bitbucket/1.0/repositories/{USER}/{REPO-NAME}/raw/tip/{PATH/TO/FILE}

Пример из их документов :

Вместо того, чтобы получить файл в формате JSON, вы можете получить необработанный файл:

$ curl https://api.bitbucket.org/1.0/repositories/jespern/django-piston/raw/tip/piston/utils.py время импорта из django.http import HttpResponseNotAllowed, HttpResponseForbidden, HttpResponse, HttpResponseBadRequo...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...