Плутанина у виборі між JavaGit, JGit та EGit


83

Я роблю додаток 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

Відповіді:


57

Ви можете використовувати 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 при затемненні - початок 2011 р.” ( Кріс Аніщик ):

Я радий, що з минулого року справи пройшли досить довгий шлях на основі статистики Eclipse Marketplace та внесків громади, які отримали проекти.

Швидкість встановлення EGit

То що далі? Що стосується інструментарію, ми наближаємось до нашого випуску 1.0 (який планується до випуску Indigo).
У наш час інструментарій git на Eclipse набагато кращий. Якщо вам потрібна допомога або є питання, почніть із найкращого посібника користувача EGit .

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


Незважаючи на те, що ви говорите, що Egit використовує JGit, вищезазначене не зовсім зрозуміло, що EGit - це плагін Eclipse для git, що надає підтримку git так само, як CVS вже підтримується в Eclipse.
Thorbjørn Ravn Andersen

отже, те, що він розміщений на eclipse.org, не означає, що він має щось спільне з Eclipse?
Jus12

@ Jus12 @ Thorbjørn: Я додав деякі елементи, щоб проілюструвати роль Egit для проектів Eclipse.
VonC

Я згоден з тим, що JavaGit досить старий, і я розглядав його лише на випадок, якщо JGit виявиться занадто складним для використання.
Jus12

1
@ Jus12: Сервер HTTP Jetty тепер також розміщений на Eclipse.org ( eclipse.org/jetty ), і він не має нічого спільного з самою IDE Eclipse. Причал можна використовувати окремо або вбудовувати в інші проекти, не пов'язані з Eclipse.
Peter Štibraný

43

Як один із авторів JGit та EGit, вибачте за плутанину.

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


4

Просто, щоб підслухати, коли я щойно натрапив на це питання.

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

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

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


3

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

EGit - це провайдер команди Git Eclipse, який інтегрує JGit в IDE Eclipse і надає інтерфейс для роботи з Git зсередини Eclipse.

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


0

JGit - це бібліотека для управління сховищем git. Ви не використовуєте JGit самостійно, якщо не пишете програму для маніпулювання сховищем git так, як вам подобається.

Якщо ви використовуєте Eclipse як IDE, ви встановлюєте EGit як плагін контролю версій (за замовчуванням у Indigo). EGit викликає JGit, тому ви також встановили JGit, якщо встановлюєте EGit.

Зверніть увагу, що для Netbeans ви встановлюєте NBGit як плагін контролю версій. NBGit також називає JGit.

JavaGit: не підтримується активно?


0

JGit - це реалізація Java Git. Це бібліотека, яку також можна використовувати у власних програмах. Він також надає певні операції CLI. EGit, з іншого боку, - це плагін провайдера команди Eclipse для Git, який використовує JGit як реалізацію Git. Спрощено, можна сказати, EGit - це частина інтерфейсу, а JGit - фонова. JGit не залежить від EGit, але EGit залежить від JGit.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.