Есть ли в JGit API все команды Git?

Я пытаюсь перенести сценарий оболочки на Java, который содержит несколько команд Git, которые мне в основном удалось найти в JGit API. Мне, однако, не удалось найти команды remote или am, это потому, что их не существует, или я просто ищу их не в том месте. Если они не существуют, есть ли другой способ их использования?

1 ответ

Решение

Нет готового партнера для git remote а также am в JGit, но должно быть возможно реализовать (подмножество) их с разумными усилиями.

Эти подкоманды git remote этот запрос или манипулирование файлом конфигурации может быть эмулирован путем прямого доступа к конфигурации репозитория через Repository.getConfig(),

Для очистки устаревших веток удаленного отслеживания, таких как git remote prune делает, вы можете использовать LsRemoteCommand получить список существующих удаленных веток и удалить удаленные из локальной конфигурации, которые не соответствуют этому списку.

Замена git am может быть немного больше усилий. Есть ApplyCommand применить патч из заданного входного потока, а также низкого уровня Patch класс для разбора различий. Осталось бы проанализировать файлы почтовых ящиков и произвести фиксацию из содержащихся различий и метаданных (сообщение, автор и т. Д.).

Другие вопросы по тегам