Путаница в выборе между JavaGit, JGit и EGit - PullRequest
77 голосов
/ 17 марта 2011

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

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

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

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

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

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

РЕДАКТИРОВАТЬ: Еще один вопрос:

РЕДАКТИРОВАТЬ: Я нашел ответ - он делает (еще не пробовал).Он находится в transport упаковке в классе под названием BundleWriter

Ответы [ 6 ]

54 голосов
/ 17 марта 2011

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

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

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

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

Торбьерн Равн Андерсен комментарии:

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

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

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

Неизбежно, дискуссия о провайдере команды для 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. На Git уже есть много проектов eclipse.org .
Было бы здорово увидеть, что все проекты eclipse.org планируют перейти в GitИндиго релиз.

42 голосов
/ 21 июля 2011

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

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

4 голосов
/ 28 марта 2011

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

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

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

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

3 голосов
/ 01 сентября 2012

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

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

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

0 голосов
/ 18 ноября 2016

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

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

0 голосов
/ 26 августа 2012

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

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

Обратите внимание, что для Netbeans вы устанавливаете NBGit в качестве плагина управления версиями. NBGit также вызывает JGit.

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

...