java - org eclipse jgit api




JavaGit, JGit 및 EGit 중 선택에 혼란 (4)

JGit과 EGit의 저자 중 한 명인 혼란을 가져 주어서 죄송합니다.

JGit 은 Git 버전 제어 시스템을 구현하는 EDL (새로운 스타일의 BSD) 라이센스이며 가볍고 순수한 Java 라이브러리입니다. 독립형 방식으로 사용할 수 있으며 Gerrit, Eclipse, Netbeans 및 IntelliJ와 같은 응용 프로그램에 내장되어 있습니다. EGit 은 Jit을 사용하여 Git 리포지토리와 함께 작업하고 Eclipse 내에서 Git 구성을 노출합니다. 현재 JGit은 git-bundle 명령을 지원하지 않지만 지원을 제공하는 것은 환영합니다. 그렇게 어렵지는 않습니다. 기여 가이드를 참조하십시오.

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

나는 JavaGit과 EGit / JGit이 다르다는 것을 알고있다. 내가 이해하지 못하는 것은 EGit과 JGit의 차이다. 두 가지 모두 이클립스 프로젝트에서 호스팅되지만 한 가지는 이클립스와 관련된 것으로 보이고 다른 하나는 그렇지 않은 것으로 보인다.

저는 Eclipse를 사용하지 않고 계획을 세우지 않으므로 "Eclipse 통합"에 대해서는별로 신경 쓰지 않습니다.

JGit이 Eclipse에 어떻게 든 연결되어 있습니까? (www.eclipse.org에서 호스팅되며, JGit의 documentation 에는 "eclipse"키워드가 많이 포함되어 있습니다)

세 가지 중에서, Git 저장소로 작업하기 위해 Java 프로그램 (Eclipse로 작성되지 않은)을 연결하려면 무엇이 필요합니까?

독립 실행 형 힘내 라이브러리를 선호합니다 (즉, 로컬 자식 설치에 의존하지 않고)

편집 : 하나 더 질문 :

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


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

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


JGit은 처음부터 Java 라이브러리로 구현되었지만 JavaGit은 원시 git 구현을 래핑하는 Java API (예 : 네이티브 git 명령 행을 호출)입니다.

EGit은 Jit을 Eclipse IDE에 통합하는 Git Eclipse 팀 공급자이며 Eclipse 내부에서 Git과 작업 할 수있는 UI를 제공합니다.

그 동안 Eclipse 커뮤니티의 많은 부분과 많은 수의 기업 개발자가 EGit / JGit을 사용하고 있습니다 (이것이이 프로젝트를 지원하는 회사가 비용을 투자 한 이유입니다). 기여하고있는 통찰력을 얻으려면 프로젝트 페이지를 참조하십시오.


그냥 지금이 질문에 우연히 만났을뿐입니다.

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

따라서이 문맥에서 JGit 코드는 git 명령을위한 Java API를 제공하는 반면, EGit은 JGit을 사용하여 Eclipse IDE를 지원합니다.

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







jgit