Взаимодействовать с удаленными хранилищами Mercurial и Git http - PullRequest
2 голосов
/ 04 февраля 2011

Справочная информация: я пишу приложение на сервере Java, которое должно выполнять базовые взаимодействия с удаленными системами SCM, обслуживаемыми по протоколу http.

Можно ли взаимодействовать с репозиториями Mercurial и Git с помощью какого-то предопределенного API (или если существует соглашение о том, как эти репозитории размещаются при обслуживании через http) с сервера без необходимости клонировать? Единственный вид взаимодействия, который требуется, - это перечисление файлов, находящихся в настоящее время под контролем версий, и возможность загрузки определенных версий файла, управляемого версиями.

РЕДАКТИРОВАТЬ: Для Mercurial я использовал решение Ry4an. Что касается Git, я очищаю экраны репозиториев, обслуживаемых с помощью gitweb.

Ответы [ 2 ]

4 голосов
/ 04 февраля 2011

Mercurial не предназначен для работы с удаленными репозиториями, за исключением клонирования, push и pull.Тем не менее, многое можно сделать в зависимости от того, как оно подается.Если он обслуживается через hgweb, встроенный веб-интерфейс доступен как hg serve, то есть style=raw представления многих деталей, которые можно легко обработать программным способом.Некоторые примеры:

С теми, кого выможет просматривать файлы, ревизии, теги и ветви.

Если, однако, вы хотите написать, то лучше всего запускать Mercurial в Jython в вашем приложении Java и напрямую вызывать команды.

2 голосов
/ 04 февраля 2011

Mercurial имеет два веб-API. Тот, который вы, вероятно, не должны использовать. Он предназначен для других экземпляров Mercurial для отправки и получения наборов изменений.

Другой легко доступен через обычный веб-браузер. URL-адреса, которые вы видите, разработаны так, чтобы их было легко и понятно проанализировать или составить программно. Как указывает @ Ry4an, файловый браузер также может предоставить вам необработанную (точнее, без HTML-тегов) копию любой версии любого файла.

Хотя вы поднимаете интересный вопрос. Я думаю, что Mercurial мог бы использовать шаблон XML, в котором он отправляет вам ту же информацию, что и страницы в формате XML, специфичном для Mercurial, который предназначен для использования программами.

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