Lẫn lộn trong việc lựa chọn giữa JavaGit, JGit và EGit


82

Tôi đang tạo một ứng dụng Java sử dụng Git. Tôi thấy rằng có một thứ gọi là JavaGit , EGitJGit .

Tôi biết rằng JavaGit và EGit / JGit khác nhau. Điều tôi không hiểu là sự khác biệt giữa EGit và JGit. Cả hai đều được lưu trữ trên các dự án Eclipse nhưng một dự án dường như liên quan đến Eclipse và một dự án khác thì không.

Tôi không sử dụng Eclipse và tôi cũng không có kế hoạch, vì vậy tôi thực sự không quan tâm lắm đến "tích hợp Eclipse".

JGit có được kết nối với Eclipse bằng cách nào đó không? (Nó được lưu trữ trên www.eclipse.org và tài liệu của JGit cũng có rất nhiều từ khóa "eclipse" bên trong)

Trong số ba, tôi sẽ cần gì để kết nối chương trình Java của mình (không được viết bằng Eclipse) để hoạt động với các kho Git?

Tôi muốn có một thư viện Git độc lập (tức là không phụ thuộc vào cài đặt Git cục bộ)

CHỈNH SỬA: Một câu hỏi nữa:

CHỈNH SỬA: Tôi đã tìm thấy câu trả lời - nó có (chưa thử). Nó nằm trong transportgói trong một lớp được gọi làBundleWriter

Câu trả lời:


56

Bạn có thể sử dụng JGit làm thư viện độc lập, nhưng, như đã đề cập trong Trang chủ JGit :

JGit có thể được tìm thấy trong:
* EGit, nhà cung cấp nhóm Eclipse cho Git

Theo nghĩa đó, JGit được kết nối với Eclipse trong đó EGit sử dụng các tính năng của JGit để phát triển plugin Eclipse Git.
Xem xét tất cả các dự án Eclipse hiện đã được tạo phiên bản trong các kho lưu trữ Git (thay vì các kho lưu trữ CVS trước đây), tôi sẽ xem xét JGit cho dự án Java của bạn, vì có vẻ như:

  • JavaGit không được cập nhật trong một thời gian khá lâu (2008)
  • Eclipse cam kết cung cấp hỗ trợ tốt cho Git thông qua EGit, điều này sẽ đảm bảo bằng cách mở rộng sự phát triển của JGit (được sử dụng bởi EGit).

Thorbjørn Ravn Andersen bình luận:

Mặc dù bạn nói rằng Egit sử dụng JGit, nhưng ở trên không hoàn toàn rõ ràng rằng EGit là một plugin Eclipse cho git cung cấp hỗ trợ git giống như cách mà CVS đã được hỗ trợ trong Eclipse

Quá trình di chuyển các dự án Eclipse từ CVS sang Git đang được tiến hànhđã được báo cáo tại đây (bởi Chris Aniszczyk).

Tôi đã theo dõi các cuộc trò chuyện liên quan đến việc di chuyển mã dự án từ CVS sang Git trong danh sách nhà phát triển của một số dự án.
Có vẻ như hầu hết các nhà phát triển đều hiểu giá trị của việc di chuyển, mặc dù họ lo ngại rằng với việc di chuyển sẽ tạo ra rất nhiều người học mới khi họ tìm ra cách nói năng suất trong môi trường mới.

Không thể tránh khỏi, thảo luận về nhà cung cấp nhóm cho Git được phát triển bởi dự án EGit trở thành một phần nổi bật của cuộc trò chuyện. "EGit đã sẵn sàng cho giờ vàng chưa?" thường là câu hỏi bị trả lại

Lỗi chính thức minh họa cho cam kết của Eclipse để cung cấp "hỗ trợ công cụ đầy đủ" cho tất cả các dự án Eclipse hiện có trên Git repo là lỗi 293192 .

Để không dùng VCS cũ thay vì git ( lỗi 270854 ), nên có sẵn công cụ thích hợp. Lỗi này được tạo ra để theo dõi điều đó.
[...] Tôi đã mở / liên kết các lỗi EGit có liên quan để có khả năng hiển thị / theo dõi tốt hơn những gì còn thiếu.

Vì vậy, Egit là dự án duy nhất được tham chiếu trong lỗi đó để cung cấp hỗ trợ công cụ đầy đủ cho VCS (D) mới được chọn cho tất cả các dự án Eclipse.

( lỗi 270854 là về việc Ngừng sử dụng các công cụ VCS cũ , về cơ bản bao gồm CVS.)


Chỉ trong (ngày 17 tháng 3 năm 2001): Trạng thái của Git tại Nhật thực - Đầu năm 2011 ( Chris Aniszczyk ):

Tôi rất vui vì mọi thứ đã đi được một chặng đường khá dài kể từ năm ngoái dựa trên số liệu thống kê của Eclipse Marketplace và những đóng góp của cộng đồng mà các dự án đã nhận được.

Tỷ lệ cài đặt EGit

Vậy tiếp theo là gì? Về mặt công cụ, chúng tôi đang tiến gần hơn đến bản phát hành 1.0 (được lên kế hoạch cho bản phát hành Indigo).
Công cụ git tại Eclipse ngày nay tốt hơn nhiều, nếu bạn cần trợ giúp hoặc có thắc mắc, vui lòng bắt đầu với Hướng dẫn sử dụng EGit tuyệt vời nhất .

Nếu bạn là một eclipse.orgdự án, vui lòng xem xét bắt đầu quá trình chuyển kho dự án của bạn sang Git. Có rất nhiều dự án eclipse.org đã có trên Git .
Thật tuyệt khi thấy tất cả các dự án eclipse.org đều có kế hoạch chuyển sang Git bằng bản phát hành Indigo.


Mặc dù bạn nói rằng Egit sử dụng JGit, nhưng ở phần trên không hoàn toàn rõ ràng rằng EGit là một plugin Eclipse cho git cung cấp hỗ trợ git giống như cách mà CVS đã được hỗ trợ trong Eclipse.
Thorbjørn Ravn Andersen

vậy chỉ vì nó được lưu trữ trên eclipse.org không có nghĩa là nó có liên quan gì đến Eclipse?
12

@ Jus12 @ Thorbjørn: Tôi đã thêm một số yếu tố để minh họa vai trò của Egit đối với các dự án Eclipse.
VonC

Tôi đồng ý rằng JavaGit khá cũ và tôi chỉ xem xét nó trong trường hợp JGit hóa ra quá phức tạp để sử dụng.
12

1
@ Jus12: Máy chủ Jetty HTTP hiện cũng được lưu trữ trên Eclipse.org ( eclipse.org/jetty ) và nó không liên quan gì đến bản thân Eclipse IDE. Jetty có thể được sử dụng độc lập hoặc được nhúng vào các dự án khác, không liên quan đến Eclipse.
Peter Štibraný

43

Là một trong những tác giả của JGit và EGit, xin lỗi vì sự nhầm lẫn này.

JGit là một thư viện Java thuần túy, nhẹ, được cấp phép EDL (BSD kiểu mới) triển khai hệ thống kiểm soát phiên bản Git. Nó có thể được sử dụng theo kiểu độc lập và được nhúng trong các ứng dụng như Gerrit, Eclipse, Netbeans và IntelliJ. EGit nhúng JGit để sử dụng nó hoạt động với các kho lưu trữ Git và hiển thị các cấu trúc Git từ bên trong Eclipse. Hiện tại, JGit không hỗ trợ lệnh git-pack nhưng chúng tôi hoan nghênh bạn đóng góp hỗ trợ, việc này không quá khó, vui lòng xem hướng dẫn dành cho cộng tác viên của chúng tôi.


4

Chỉ để gọi thôi, vì tôi vừa vấp phải câu hỏi này vừa rồi.

Có sự khác biệt giữa Eclipse Foundation và Eclipse IDE. Foundation là tổ chức bảo trợ, trong khi IDE là một trong những dự án được phát triển thông qua quỹ. Vì vậy, điều quan trọng cần biết là khi Apache bắt đầu với máy chủ web và phân nhánh để trở thành một Tổ chức lưu trữ một số dự án, thì Quỹ Eclipse hiện đã mở rộng ra ngoài "gốc rễ" của nó trong IDE.

Vì vậy, trong ngữ cảnh này, mã JGit cung cấp một API Java cho các lệnh git, trong khi EGit sử dụng JGit để cung cấp hỗ trợ git cho IDE Eclipse.

Cá nhân tôi đôi khi cũng thấy điều này hơi khó hiểu, và đôi khi có vẻ như việc có quá nhiều việc diễn ra theo một cách nào đó đã làm giảm trọng tâm của các tổ chức này; tuy nhiên tôi cũng có thể thấy tiện ích khi có một tổ chức bảo trợ thay vì 20 tổ chức tương tự nhưng khác nhau.


3

JGit được triển khai git từ đầu như một thư viện Java trong khi JavaGit là (là?) Một API Java bao bọc việc triển khai git gốc (tức là nó gọi dòng lệnh git gốc).

EGit là Nhà cung cấp Nhóm Git Eclipse tích hợp JGit vào IDE Eclipse và đang cung cấp giao diện người dùng để làm việc với Git từ bên trong Eclipse.

Trong khi đó, một phần lớn cộng đồng Eclipse và một số lượng lớn các nhà phát triển doanh nghiệp đang sử dụng EGit / JGit (đó là lý do tại sao các công ty ủng hộ các dự án này lại đổ tiền vào đó). Xem các trang của dự ánohloh nếu bạn muốn biết một số thông tin chi tiết về những người đang đóng góp.


0

JGit là một thư viện để thao tác với kho lưu trữ git. Bạn không sử dụng JGit một mình, trừ khi bạn viết một chương trình để thao tác kho lưu trữ git theo cách bạn muốn.

Nếu bạn sử dụng Eclipse làm IDE, bạn cài đặt EGit làm plugin kiểm soát phiên bản (được mặc định trong Indigo). EGit gọi JGit nên bạn cũng đã cài đặt JGit nếu bạn cài đặt EGit.

Lưu ý, đối với Netbeans, bạn cài đặt NBGit làm plugin kiểm soát phiên bản. NBGit hay còn gọi là JGit.

JavaGit: không được duy trì tích cực?


0

JGit là phần triển khai Java của Git. Nó là một thư viện, cũng có thể được sử dụng trong các ứng dụng của riêng bạn. Nó cũng cung cấp một số loại hoạt động CLI. EGit ở phía bên kia là plugin của nhà cung cấp nhóm Eclipse cho Git, sử dụng JGit làm triển khai Git. Đơn giản hóa, bạn có thể nói EGit là phần giao diện người dùng và JGit là phần nền. JGit không phụ thuộc vào EGit, nhưng EGit phụ thuộc vào JGit.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.