JavaGit, JGit 및 EGit 선택시 혼란


83

Git을 사용하는 Java 응용 프로그램을 만들고 있습니다. JavaGit , EGitJGit 이라는 것이 있음을 발견했습니다 .

JavaGit과 EGit / JGit이 다르다는 것을 알고 있습니다. 내가 이해하지 못하는 것은 EGit과 JGit의 차이점입니다. 둘 다 Eclipse 프로젝트에서 호스팅되지만 하나는 Eclipse 관련이고 다른 하나는 그렇지 않은 것 같습니다.

나는 Eclipse를 사용하지 않고 계획도 없다. 그래서 나는 "Eclipse 통합"에 대해별로 신경 쓰지 않는다.

JGit이 어떻게 든 Eclipse에 연결되어 있습니까? (www.eclipse.org에서 호스팅되며 JGit 문서 에는 내부에 많은 "eclipse"키워드가 있습니다.)

세 가지 중 Git 리포지토리를 사용하기 위해 Java 프로그램 (Eclipse로 작성되지 않음)을 연결하려면 무엇이 필요합니까?

독립형 Git 라이브러리를 선호합니다 (즉, 로컬 Git 설치에 의존하지 않음).

편집 : 질문 하나 더 :

편집 : 나는 대답을 찾았습니다-그렇습니다 (아직 시도하지 않았습니다). 그것은이다 transport라는 클래스의 패키지BundleWriter

답변:


57

JGit을 독립형 라이브러리로 사용할 수 있지만 JGit 홈페이지 에서 언급했듯이 :

JGit은 다음에서 찾을 수 있습니다.
* EGit, Git 용 Eclipse 팀 공급자

그런 의미에서 JGit은 EGit이 JGit 기능을 사용하여 Eclipse Git 플러그인을 개발한다는 점에서 Eclipse에 연결됩니다.
모든 Eclipse 프로젝트가 이제 이전의 CVS 저장소 대신 Git 저장소에서 버전 화된다는 점을 고려할 때 Java 프로젝트에 JGit을 고려할 것입니다.

  • JavaGit이 꽤 오랫동안 업데이트되지 않았습니다 (2008).
  • Eclipse는 EGit을 통해 Git에 대한 좋은 지원을 제공하기 위해 최선을 다하고 있으며, 이는 확장을 통해 JGit (EGit에서 사용)의 개발을 보장해야합니다.

Thorbjørn Ravn Andersen은 다음과 같이 설명합니다.

Egit이 JGit을 사용한다고 말했지만 EGit이 이미 Eclipse에서 CVS가 지원되는 것과 같은 방식으로 git 지원을 제공하는 git 용 Eclipse 플러그인이라는 것은 위에서 명확하지 않습니다.

이클립스 프로젝트의 마이그레이션 힘내에 CVS에서 진행 중입니다 , 그리고 여기에보고 된 바있다 (크리스 Aniszczyk에 의해).

여러 프로젝트의 개발 목록에서 CVS에서 Git으로의 프로젝트 코드 마이그레이션에 관한 대화를 모니터링했습니다.
대부분의 개발자는 마이그레이션이 새로운 환경에서 생산적이라고 말하는 방법을 알아낼 때 완전히 새로운 학습이 필요하다는 우려에도 불구하고 마이그레이션의 가치 제안을 이해하는 것 같습니다.

필연적으로 EGit 프로젝트에서 개발중인 Git 용 팀 공급자에 대한 논의는 대화의 중요한 부분이됩니다. "EGit은 황금 시간대를 맞이할 준비가 되었습니까?" 자주 돌아 다니는 질문입니다.

공식 버그는 현재 Git 저장소에있는 모든 Eclipse 프로젝트에 대해 "적절한 도구 지원"을 제공하겠다는 Eclipse 약속을 설명하는 버그 293192 입니다.

git ( bug 270854 ) 을 위해 이전 VCS를 폐기하려면 적절한 도구를 사용할 수 있어야합니다. 이 버그는이를 추적하기 위해 만들어졌습니다.
[...] 누락 된 항목에 대한 가시성 / 추적을 향상시키기 위해 관련 EGit 버그 를 열거 나 연결했습니다 .

따라서 Egit은 모든 Eclipse 프로젝트에 대해 선택된 새로운 (D) VCS에 대해 적절한 도구 지원을 제공하기 위해 해당 버그에서 참조 된 유일한 프로젝트입니다.

( 버그 270854 는 기본적으로 CVS를 포함하는 Deprecate old VCS tools 에 관한 것입니다.)


Just in (2001 년 3 월 17 일) : Eclipse에서의 Git 현황 – 2011 년 초 ( Chris Aniszczyk ) :

이클립스 마켓 플레이스 통계와 프로젝트가받은 커뮤니티 기여를 바탕으로 작년 이래로 일이 상당히 먼 길을 왔다는 사실에 기쁩니다.

EGit 설치율

그래서 다음은 무엇입니까? 툴링 측면에서 우리는 1.0 릴리스 (Indigo 릴리스를 위해 계획된)에 가까워지고 있습니다.
요즘에는 Eclipse의 git 도구가 훨씬 좋습니다. 도움이 필요하거나 질문이있는 경우 가장 우수한 EGit 사용자 가이드로 시작하세요 .

eclipse.org프로젝트 인 경우 프로젝트 저장소를 Git으로 이동하는 프로세스를 시작하는 것이 좋습니다. 이미 Git에 많은 eclipse.org 프로젝트가 있습니다 .
모든 eclipse.org 프로젝트가 Indigo 릴리스에 의해 Git으로 이동할 계획이있는 것을 보면 좋을 것입니다.


Egit이 JGit을 사용한다고 말했지만, EGit이 이미 Eclipse에서 CVS가 지원되는 것과 같은 방식으로 git 지원을 제공하는 git 용 Eclipse 플러그인이라는 것은 위에서 명확하지 않습니다.
Thorbjørn Ravn Andersen 2011

그래서 그것이 eclipse.org에서 호스팅된다는 것이 Eclipse와 관련이 있다는 것을 의미하지는 않습니까?
Jus12 2011 년

@ Jus12 @ Thorbjørn : Eclipse 프로젝트에서 Egit의 역할을 설명하기 위해 몇 가지 요소를 추가했습니다.
VonC 2011 년

JavaGit이 꽤 오래되었다는 데 동의하며 JGit이 사용하기에 너무 복잡하다고 판명 될 경우에만 살펴 보았습니다.
Jus12

1
@ Jus12 : Jetty HTTP 서버는 이제 Eclipse.org ( eclipse.org/jetty ) 에서도 호스팅 되며 Eclipse IDE 자체와는 아무 관련이 없습니다. Jetty는 독립형으로 사용하거나 Eclipse 관련 프로젝트가 아닌 다른 프로젝트에 포함 할 수 있습니다.
Peter Štibraný 2011 년

43

JGit과 EGit의 저자 중 한 명으로서 혼란을 드려 죄송합니다.

JGit 은 Git 버전 제어 시스템을 구현하는 EDL (new-style BSD) 라이선스의 경량 순수 Java 라이브러리입니다. 독립형 방식으로 사용할 수 있으며 Gerrit, Eclipse, Netbeans 및 IntelliJ와 같은 응용 프로그램에 포함됩니다. EGit 은 JGit을 임베드하여 Git 저장소와 함께 작동하고 Eclipse 내에서 Git 구성을 노출하는 데 사용합니다. 현재 JGit은 git-bundle 명령을 지원하지 않지만 지원에 기여하는 것은 환영합니다. 그렇게 어렵지는 않습니다. 기여자 가이드를 참조하세요.


4

방금이 질문을 우연히 만났을 때 차임으로 들어갑니다.

Eclipse Foundation과 Eclipse IDE에는 차이가 있습니다. 재단은 우산 조직이고 IDE는 재단을 통해 개발 된 프로젝트 중 하나입니다. 따라서 알아야 할 중요한 점은 Apache가 웹 서버에서 시작하여 여러 프로젝트를 호스팅하는 Foundation이되기 위해 분기 된 것처럼 Eclipse Foundation이 이제 IDE의 "루트"를 넘어 확장되었다는 것입니다.

따라서이 컨텍스트에서 JGit 코드는 git 명령 용 Java API를 제공하는 반면 EGit은 JGit을 사용하여 Eclipse IDE에 대한 git 지원을 제공합니다.

개인적으로, 나는 또한 때때로 약간 혼란스럽고, 때때로 그렇게 많은 일을하는 것이 어떤면에서 이러한 조직의 초점을 떨어 뜨리는 것처럼 보입니다. 그러나 비슷하지만 서로 다른 20 개의 조직 대신 하나의 우산 조직을 갖는 것이 유용하다는 것을 알 수 있습니다.


3

JGit은 처음부터 Java 라이브러리로 구현 된 git이지만 JavaGit은 네이티브 git 구현을 래핑하는 Java API입니다 (즉, 네이티브 git 명령 줄을 호출 함).

EGit은 JGit을 Eclipse IDE에 통합 한 Git Eclipse Team Provider이며 Eclipse 내부에서 Git과 함께 작동 할 수있는 UI를 제공하고 있습니다.

그 동안 Eclipse 커뮤니티의 상당 부분과 많은 기업 개발자가 EGit / JGit을 사용하고 있습니다 (이것이 이러한 프로젝트를 지원하는 회사가 여기에 돈을 투자하는 이유입니다). 참고 항목 프로젝트 페이지누가 기여하고 있는지 통찰력을 얻고 싶다면 ohloh를 .


0

JGit은 git 저장소를 조작하는 라이브러리입니다. 원하는 방식으로 git 저장소를 조작하는 프로그램을 작성하지 않는 한 JGit 만 사용하지 마십시오.

Eclipse를 IDE로 사용하는 경우 EGit을 버전 제어 플러그인으로 설치합니다 (기본값은 Indigo). EGit은 JGit을 호출하므로 EGit을 설치하면 JGit도 설치됩니다.

Netbeans의 경우 버전 제어 플러그인으로 NBGit을 설치합니다. NBGit은 또한 JGit을 호출합니다.

JavaGit : 적극적으로 유지되지 않습니까?


0

JGit은 Git의 Java 구현입니다. 자신의 응용 프로그램에서도 사용할 수있는 라이브러리입니다. 또한 일종의 CLI 작업을 제공합니다. 다른쪽에있는 EGit은 Git 구현으로 JGit을 사용하는 Git 용 Eclipse 팀 공급자 플러그인입니다. 간단히 말해 EGit이 UI 부분이고 JGit이 배경 부분이라고 말할 수 있습니다. JGit은 EGit에 의존하지 않지만 EGit은 JGit에 의존합니다.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.