Путаница при выборе между JavaGit, JGit и EGit

Я делаю приложение Java, которое использует Git. Я обнаружил, что есть что-то называемое JavaGit, EGit и JGit.

Я знаю, что JavaGit и EGit/JGit отличаются. То, что я не понимаю, - это разница между EGit и JGit. Оба они размещаются в проектах Eclipse, но похоже, что они связаны с Eclipse, а другие - нет.

Я не использую Eclipse, и я не планирую, поэтому мне действительно не очень нравится "интеграция Eclipse".

Является ли JGit каким-то образом подключен к Eclipse? (Он размещен на www.eclipse.org, а документация JGit также содержит много ключевых слов "затмения" внутри)

Из трех, что мне нужно для подключения моей Java-программы (не написанной в Eclipse) для работы с репозиториями Git?

Я бы предпочел автономную библиотеку Git (т.е. не зависящую от локальной установки Git)

EDIT: Еще один вопрос:

EDIT: я нашел ответ - он (еще не пробовал). Он находится в пакете transport в классе с именем BundleWriter

Ответ 1

Вы можете использовать JGit как автономную библиотеку, но, как упоминалось в домашней странице JGit:

JGit можно найти в:
* EGit, поставщик команды Eclipse для Git

В этом смысле JGit подключен к Eclipse тем, что EGit использует функции JGit для разработки плагина Eclipse Git.
Учитывая, что все проекты Eclipse теперь версируются в репозиториях Git (вместо ранее CVS-репозиториев), я бы рассмотрел JGit для вашего проекта Java, поскольку кажется, что:

  • JavaGit не обновляется довольно долго (2008)
  • Eclipse стремится предложить хорошую поддержку для Git через EGit, которая должна обеспечить расширение разработки JGit (используется EGit).

Thorbjørn Ravn Andersen комментарии:

Даже если вы говорите, что Egit использует JGit, в приведенном выше не совсем ясно, что EGit - это плагин Eclipse для Git, предоставляющий поддержку Git таким же образом, что CVS уже поддерживается в Eclipse

Выполняется миграция проектов Eclipse из CVS в Git и сообщается здесь (Крис Анишек).

Ive отслеживал разговоры о переносе кода проекта из CVS в Git в dev-lists из нескольких проектов.
Большинство разработчиков, похоже, понимают ценностное предложение миграции, несмотря на их опасения, что с миграцией приходит много нового обучения, поскольку они выясняют, как сказать, что продуктивны в новой среде.

Неизбежно, дискуссия о поставщике команды для Git, который разрабатывается проектом EGit, становится важной частью беседы. "Готово ли EGit для прайм-тайма?" часто возникает вопрос, который отскочил вокруг

Официальная ошибка иллюстрирует обязательство Eclipse предоставить "адекватную поддержку инструментария" для всех проектов Eclipse, теперь на Git repo, это ошибка 293192.

Чтобы обесценить старый VCS в пользу Git (ошибка 270854), адекватная оснастка должны быть доступны. Эта ошибка создана для отслеживания этого.
[...] Я открыл/связал релевантные ошибки EGit, чтобы лучше видеть/отслеживать чего не хватает.

Таким образом, Egit - единственный проект, на который ссылается эта ошибка, чтобы предоставить указанную адекватную поддержку инструментария для нового (D) VCS, выбранного для всех проектов Eclipse.

(ошибка 270854 о Устаревших старых инструментах VCS, которая включает в себя, по существу, CVS.)


Только в (17 марта 2001 г.): Состояние Git в Eclipse - начале 2011 года (Chris Aniszczyk):

Я рад, что с прошлого года все прошло довольно долго, основываясь на статистике Eclipse Marketplace и вкладах сообщества, которые получили проекты.

EGit installation rate

Так что дальше? С точки зрения инструментария, мы приближались к нашей версии 1.0 (которая запланирована для выпуска Indigo).
Инструмент Git в Eclipse намного лучше в эти дни, если вам нужна помощь или у вас есть вопросы, пожалуйста, начните с самого превосходного Руководство пользователя EGit.

Если вы создаете проект eclipse.org, пожалуйста, подумайте о том, чтобы начать процесс переноса репозитория проекта на Git. Уже существует много проектов eclipse.org на Git.
Было бы неплохо увидеть, что все проекты eclipse.org планируют перейти к Git выпуском Indigo.

Ответ 2

Как один из авторов JGit и EGit, извините за путаницу.

JGit - это лицензированная, легкая, чистая Java-библиотека EDL (новый стиль BSD), реализующая систему управления версиями Git. Он может использоваться автономно и встроен в такие приложения, как Gerrit, Eclipse, Netbeans и IntelliJ. EGit заставляет JGit использовать его для работы с репозиториями Git и выставлять конструкцию Git из Eclipse. На данный момент JGit не поддерживает команду git -bundle, но вы можете внести свой вклад в поддержку, это не должно быть так сложно, обратитесь к нашему руководству для разработчиков.

Ответ 3

Просто, чтобы перезвонить, так как я просто наткнулся на этот вопрос только сейчас.

Существует различие между Eclipse Foundation и Eclipse IDE. Фонд является зонтичной организацией, а IDE - одним из проектов, созданных в рамках фонда. Итак, важно знать, что так же, как Apache начал с веб-сервера и разветвлялся, чтобы стать Фондом, принимающим ряд проектов, так и Фонд Eclipse теперь расширился за пределы своих "корней" в среде IDE.

Итак, в этом контексте код JGit предоставляет API Java для команд git, тогда как EGit использует JGit для поддержки поддержки git для Eclipse IDE.

Лично мне также кажется, что это немного сбивает с толку время от времени, и иногда почти кажется, что так много происходит в некотором смысле ухудшило фокус этих организаций; однако я также вижу полезность в создании одной зонтичной организации вместо 20 подобных, но разных организаций.

Ответ 4

JGit git реализован с нуля как библиотека Java, тогда как JavaGit является (был?) API-интерфейсом Java, который завершает реализацию native git (т.е. вызывает внутреннюю командную строку git).

EGit - это git поставщик Eclipse Team, объединяющий JGit в Eclipse IDE и предоставляющий интерфейс для работы с git изнутри Eclipse.

В то же время большая часть сообщества Eclipse, а также большое количество корпоративных разработчиков использует EGit/JGit (что причина, по которой компании, поддерживающие эти проекты, вкладывают в это деньги). См. страницы проекта и ohloh, если вы хотите узнайте, кто вносит свой вклад.

Ответ 5

JGit - это библиотека для управления репозиторием git. Вы не используете JGit самостоятельно, если только вы не пишете программу для управления репозиторием git так, как вам нравится.

Если вы используете Eclipse в качестве среды IDE, вы устанавливаете EGit в качестве плагина управления версиями (по умолчанию в Indigo). EGit вызывает JGit, поэтому у вас также установлен JGit, если вы устанавливаете EGit.

Примечание. Для Netbeans вы устанавливаете NBGit в качестве плагина управления версиями. NBGit также вызывает JGit.

JavaGit: не активно поддерживается?

Ответ 6

JGit - это реализация Java Git. Это библиотека, которая также может использоваться в ваших собственных приложениях. Он также предоставляет некоторые виды операций CLI. EGit с другой стороны - плагин поставщика команды Eclipse для Git, который использует реализацию JGit как Git. Упрощенный вы можете сказать, что EGit - это часть пользовательского интерфейса, а JGit - часть фона. JGit не зависит от EGit, но EGit зависит от JGit.

От: https://www.eclipse.org/forums/index.php/t/273443/