Câu hỏi Nhầm lẫn trong việc lựa chọn giữa JavaGit, JGit và EGit


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

Tôi biết rằng JavaGit và EGit / JGit là 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 có vẻ như có liên quan đến Eclipse và cái kia thì không.

Tôi không sử dụng Eclipse và tôi không có kế hoạch, vì vậy tôi thực sự không quan tâm nhiều về "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 "nhật thực" bên trong)

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

Tôi thích thư viện Git độc lập hơn (tức là, không phụ thuộc vào cài đặt Git cục bộ)

EDIT: Một câu hỏi nữa:

EDIT: Tôi tìm thấy câu trả lời - nó (chưa thử nó). Nó là trong transport gói trong một lớp được gọi là BundleWriter


76
2018-03-17 06:52


gốc




Các câu trả lời:


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 đội 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 JGit để phát triển các plugin Eclipse Git.
Xem xét tất cả các dự án Eclipse đang được phiên bản trong repo Git (thay vì repos 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 (2008)
  • Eclipse cam kết cung cấp hỗ trợ tốt cho Git thông qua EGit, cần đả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, nó không phải là khá rõ ràng ở trên mà EGit là một plugin Eclipse cho git cho hỗ trợ git trong cùng một cách mà CVS đã được hỗ trợ trong Eclipse

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

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

Không tránh khỏi, việc thảo luận về nhà cung cấp đội 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 nảy sinh xung quanh

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

Để từ chối VCS cũ có lợi cho git (lỗi 270854), dụng cụ thích hợp   nên có sẵn. Lỗi này được tạo để theo dõi điều đó.
  [...] Tôi đã mở / liên kết có liên quan Bọ gậy EGIT để 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ụ thích hợp cho VCS mới (D) được chọn cho tất cả các dự án Eclipse.

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


Chỉ trong (ngày 17 tháng 3 năm 2001): Nhà nước Git tại Eclipse - Đầu năm 2011 (Chris Aniszczyk):

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

EGit installation rate

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

Nếu bạn là một eclipse.org dự án, hãy xem xét bắt đầu quá trình di 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 có kế hoạch chuyển sang Git bởi bản phát hành Indigo.


54
2018-03-17 07:09



Mặc dù bạn nói rằng Egit sử dụng JGit, nó không phải là khá rõ ràng ở trên mà EGit là một plugin Eclipse cho git cho hỗ trợ git trong cùng một cách mà CVS đã được hỗ trợ trong Eclipse. - Thorbjørn Ravn Andersen
vì 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? - Jus12
@ Jus12 @ Thorbjørn: Tôi đã thêm một số yếu tố để minh họa vai trò của Egit cho các dự án Eclipse. - VonC
Tôi đồng ý rằng JavaGit là khá cũ, và tôi chỉ xem xét nó trong trường hợp JGit hóa ra là quá phức tạp để sử dụng. - Jus12
@ Jus12: Máy chủ HTTP Jetty bây giờ cũng được lưu trữ trên Eclipse.org (eclipse.org/jetty), và nó không liên quan gì đế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 phải Eclipse có liên quan. - Peter Štibraný


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 được cấp phép, trọng lượng nhẹ, tinh khiết của EDL, được triển khai thực hiện trên hệ thống điều khiển 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ó để làm việc với các kho Git và trưng ra các cấu trúc Git từ bên trong Eclipse. Hiện tại, JGit không hỗ trợ lệnh git-bundle nhưng bạn có thể đóng góp hỗ trợ, nó không quá khó, vui lòng xem hướng dẫn cộng tác viên của chúng tôi.


41
2017-07-21 15:34





Chỉ để kêu vang, vì tôi vừa vấp vào câu hỏi này vừa nãy.

Có một sự khác biệt giữa Quỹ Eclipse và IDE Eclipse. Quỹ 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 nền tảng này. Vì vậy, điều quan trọng cần biết là ngay 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, do đó, bây giờ Quỹ Eclipse đã mở rộng ra ngoài "rễ" của nó trong IDE.

Vì vậy, trong bối 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 cũng thấy điều này một chút bối rối vào những lúc, và đôi khi nó gần như có vẻ như có rất nhiều đang xảy ra có trong một số cách làm suy yếu 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 trong việc có một tổ chức dù thay vì 20 tổ chức tương tự nhưng khác nhau.


4
2018-03-28 18:58





JGit được git thực hiện từ đầu như một thư viện Java trong khi JavaGit là (là?) Một Java API gói thực thi git bản địa (tức là nó gọi dòng lệnh git riêng).

EGit là Git Eclipse Team Provider tích hợp JGit vào IDE Eclipse và đang cung cấp UI để làm việc với Git từ bên trong Eclipse.

Trong khi đó, một phần lớn của 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 bỏ tiền vào đó). Xem trang dự án và ohloh nếu bạn muốn hiểu rõ hơn ai đang đóng góp.


3
2017-09-01 08:57





JGit là một thư viện để thao tác kho 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 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 điều khiển phiên bản (mặc định là Indigo). EGit gọi JGit vì vậy 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 cũng gọi JGit.

JavaGit: không chủ động được duy trì?


0
2017-08-26 14:51





JGit là thực thi 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à trình cắm thêm của nhà cung cấp nhóm Eclipse cho Git, sử dụng JGit như là thực thi Git. Đơn giản hóa bạn có thể nói EGit là phần giao diện người dùng và phần nền của JGit. 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/


0
2017-11-18 04:26