JavaGit, JGit और EGit के बीच चयन में भ्रम


83

मैं एक जावा एप्लिकेशन बना रहा हूं जो Git का उपयोग करता है। मैंने पाया कि JavaGit , EGit और JGit नाम की कोई चीज है

मुझे पता है कि JavaGit और EGit / JGit अलग-अलग हैं। जो मुझे समझ में नहीं आता है वह ईजीट और जेजीट के बीच का अंतर है। दोनों को ग्रहण परियोजनाओं पर होस्ट किया गया है, लेकिन एक ग्रहण से संबंधित है और दूसरा नहीं।

मैं ग्रहण का उपयोग नहीं करता हूं और मैं इसकी योजना नहीं बनाता, इसलिए मैं वास्तव में "ग्रहण एकीकरण" के बारे में ज्यादा परवाह नहीं करता हूं।

क्या JGit किसी तरह ग्रहण से जुड़ा है? (इसे www.eclipse.org पर होस्ट किया गया है, और JGit के डॉक्यूमेंट में बहुत सारे "ग्रहण" कीवर्ड हैं)

तीन में से, मुझे Git रिपॉजिटरी के साथ काम करने के लिए अपने जावा प्रोग्राम (एक्लिप्स में नहीं लिखा) को कनेक्ट करने की क्या आवश्यकता होगी?

मैं एक स्टैंडअलोन Git लाइब्रेरी पसंद करूंगा (यानी, स्थानीय Git इंस्टॉलेशन के आधार पर)

संपादित करें: एक और सवाल:

संपादित करें: मुझे जवाब मिला - यह (अभी तक कोशिश नहीं की है)। यह transportएक वर्ग में पैकेज में है जिसे कहा जाता हैBundleWriter

जवाबों:


57

आप JGit को स्टैंडअलोन लाइब्रेरी के रूप में उपयोग कर सकते हैं, लेकिन, जैसा कि JGit होमपेज में उल्लिखित है :

JGit के भीतर पाया जा सकता है:
* EGit, Git के लिए ग्रहण टीम प्रदाता

उस अर्थ में, JGit ग्रहण से जुड़ा हुआ है, उस युग में EGse Git प्लगइन विकसित करने के लिए JGit सुविधाओं का उपयोग करता है।
अब सभी ग्रहण परियोजनाओं को ध्यान में रखते हुए Git repos (पहले CVS repos के बजाय) में संस्करणित किया गया है, मैं आपके Java प्रोजेक्ट के लिए JGit पर विचार करूंगा, क्योंकि ऐसा लगता है कि:

  • JavaGit काफी समय से अपडेट नहीं है (2008)
  • एक्जिट के माध्यम से गिट के लिए एक अच्छा समर्थन देने के लिए ग्रहण प्रतिबद्ध है, जिसे जेजीट (ईजीट द्वारा प्रयुक्त) के विकास को सुनिश्चित करना चाहिए।

Thorbjørn रावन एंडरसन टिप्पणियाँ:

भले ही आप कहते हैं कि ईजीत JGit का उपयोग करता है, लेकिन यह ऊपर स्पष्ट नहीं है कि EGit git के लिए एक ग्रहण प्लगइन है उसी तरह से गिट सपोर्ट दे रहा है जो CVS पहले से ही ग्रहण में समर्थित है

सीवीएस से गिट के लिए ग्रहण परियोजनाओं का प्रवास जारी है , और यहां (क्रिस अनीज़कज़ी द्वारा) रिपोर्ट किया गया है

मैंने कई प्रोजेक्ट्स की देव-सूचियों में CVS से Git के प्रोजेक्ट कोड के माइग्रेशन से संबंधित वार्तालापों की निगरानी की है।
अधिकांश डेवलपर्स, ऐसा लगता है, माइग्रेट करने के मूल्य प्रस्ताव को समझते हैं, उनकी चिंताओं के बावजूद कि माइग्रेशन के साथ बहुत कुछ नया सीखने को मिलता है 'जैसा कि वे बताते हैं कि नए वातावरण में उत्पादक कैसे कहें।

अनिवार्य रूप से, ईजीट परियोजना द्वारा विकसित किए जा रहे गिट के लिए टीम प्रदाता के बारे में चर्चा बातचीत का प्रमुख हिस्सा बन जाती है। "क्या ईजीम प्राइमटाइम के लिए तैयार है?" अक्सर सवाल है कि चारों ओर उछाल है

आधिकारिक बग ने ग्रहण रेपो पर अब सभी ग्रहण परियोजनाओं के लिए "पर्याप्त टूलिंग समर्थन" प्रदान करने के लिए ग्रहण की प्रतिबद्धता का वर्णन किया है जो बग 293192 है

पुराने VCS को git ( बग 270854 ) के पक्ष में चित्रित करने के लिए , पर्याप्त टूलिंग उपलब्ध होनी चाहिए। इस बग को ट्रैक करने के लिए बनाया गया है।
[...] मैंने संबंधित ईजीट बगों को खोला / जोड़ा है ताकि जो कुछ गायब है उसकी बेहतर दृश्यता / ट्रैकिंग हो।

अतः ईगिट एकमात्र बग में संदर्भित एकमात्र परियोजना है जो सभी ग्रहण परियोजनाओं के लिए चुनी गई नई (डी) वीसीएस के लिए पर्याप्त टूलिंग समर्थन प्रदान करती है।

( बग 270854 डिप्रेसेट पुराने VCS टूल के बारे में है , जिसमें अनिवार्य रूप से CVS शामिल है।)


सिर्फ (मार्च 17, 2001): ग्रहण की स्थिति पर - 2011 की शुरुआत ( क्रिस अनीज़कज़ी ):

मुझे खुशी है कि ग्रहण मार्केटप्लेस स्टैटिस्टिक्स पर आधारित पिछले साल से काफी लंबा रास्ता तय किया गया है और समुदाय को परियोजनाओं में योगदान मिला है।

ईजीत स्थापना दर

तो फिर आगे क्या? टूलींग के संदर्भ में, हम अपनी 1.0 रिलीज़ (जो इंडिगो रिलीज़ के लिए योजनाबद्ध हैं) के करीब हो रहे हैं।
ग्रहण के समय टूलींग इन दिनों बहुत बेहतर है, अगर आपको मदद की ज़रूरत है या आपके पास सवाल हैं, तो कृपया सबसे उत्कृष्ट ईगल उपयोगकर्ता गाइड के साथ शुरू करें ।

यदि आप एक eclipse.orgप्रोजेक्ट हैं, तो कृपया अपने प्रोजेक्ट रिपॉजिटरी को Git में स्थानांतरित करने के लिए प्रक्रिया शुरू करने पर विचार करें। Git पर बहुत सारे eclipse.org प्रोजेक्ट हैं
यह देखना अच्छा होगा कि सभी eclipse.org परियोजनाओं में इंडिगो द्वारा Git को स्थानांतरित करने की योजना है।


भले ही आप कहते हैं कि ईजीत जेगिट का उपयोग करता है, लेकिन यह ऊपर स्पष्ट नहीं है कि ईजीट एक ग्रहण प्लगइन है जिसमें गिट समर्थन देने के लिए उसी तरह से सीवीएस पहले से ही ग्रहण में समर्थित है।
थोरबजोरन रावन एंडरसन

सिर्फ इसलिए कि इसे eclipse.org पर होस्ट किया गया है। इसका मतलब यह नहीं है कि इसका ग्रहण से कोई लेना-देना है?
जुस 12

@ Jus12 @ Thorbjørn: मैंने ग्रहण परियोजनाओं के लिए इजीट की भूमिका को दर्शाने के लिए कुछ तत्वों को जोड़ा है।
वॉन

मैं मानता हूं कि JavaGit काफी पुराना है, और मैं इसे केवल तभी देख रहा था जब JGit उपयोग के लिए बहुत जटिल हो गया था।
जुस 12

1
@ Jus12: जेट्टी HTTP सर्वर अब भी Eclipse.org (पर होस्ट की है eclipse.org/jetty ), और यह ग्रहण आईडीई के साथ ही लेना देना नहीं है। जेट्टी का उपयोग स्टैंडअलोन या दूसरे में एम्बेडेड किया जा सकता है, न कि ग्रहण संबंधी परियोजनाओं में।
पीटर 8tibraný

43

JGit और EGit के लेखकों में से एक के रूप में, भ्रम की स्थिति के लिए क्षमा करें।

JGit एक EDL (नई शैली का BSD) लाइसेंस प्राप्त है, हल्का, शुद्ध जावा लाइब्रेरी जो Git संस्करण नियंत्रण प्रणाली को लागू करता है। यह एक स्टैंडअलोन फैशन में इस्तेमाल किया जा सकता है और जेरिट, एक्लिप्स, नेटबीन्स और इंटेलीज जैसे अनुप्रयोगों में एम्बेडेड है। ईजीट JGit को Git रिपॉजिटरी के साथ काम करने के लिए इसका उपयोग करता है और Git के निर्माण को एक्लिप्स के भीतर से बाहर निकालता है। फिलहाल, JGit git-बंडल कमांड का समर्थन नहीं करता है, लेकिन आप समर्थन में योगदान देने के लिए स्वागत करते हैं, यह उतना कठिन नहीं होना चाहिए, कृपया हमारे योगदानकर्ता मार्गदर्शिका देखें।


4

बस में झंकार करने के लिए, जैसा कि मैंने अभी-अभी इस सवाल पर ठोकर खाई है।

ग्रहण फाउंडेशन और ग्रहण आईडीई के बीच अंतर है। फाउंडेशन एक छाता संगठन है, जबकि आईडीई नींव के माध्यम से विकसित परियोजनाओं में से एक है। इसलिए, यह जानना महत्वपूर्ण है कि जिस तरह अपाचे ने वेब सर्वर के साथ शुरुआत की और कई परियोजनाओं की मेजबानी करने वाले एक फाउंडेशन बनने के लिए तैयार हो गया, उसी प्रकार अब ग्रहण फाउंडेशन ने आईडीई में अपनी "जड़ों" से परे विस्तार किया है।

तो इस संदर्भ में JGit कोड git कमांड के लिए जावा एपीआई प्रदान करता है, जबकि EGit EGse IDE के लिए git समर्थन प्रदान करने के लिए JGit का उपयोग करता है।

व्यक्तिगत रूप से, मुझे भी कई बार यह थोड़ा भ्रमित लगता है, और कभी-कभी यह लगभग ऐसा लगता है कि बहुत अधिक होने से कुछ हद तक इन संगठनों का ध्यान कम हो गया है; हालाँकि, मैं एक ही संगठन के बजाय एक ही छाता संगठन होने में उपयोगिता देख सकता हूं, लेकिन विभिन्न संगठन।


3

JGit को git को Java लाइब्रेरी के रूप में खरोंच से लागू किया जाता है जबकि JavaGit (is?) एक जावा एपीआई है, जो मूल git कार्यान्वयन को लागू करता है (अर्थात इसे मूल git कमांड लाइन कहते हैं)।

ईजीट, Git ग्रहण टीम प्रदाता है, जो ग्रहण IDE में JGit को एकीकृत करता है और UI को ग्रहण के अंदर से Git के साथ काम करने के लिए प्रदान कर रहा है।

इस बीच, ग्रहण समुदाय का एक बड़ा हिस्सा और बड़ी संख्या में कॉर्पोरेट डेवलपर्स भी ईजीट / जेजीट का उपयोग कर रहे हैं (यही कारण है कि इन परियोजनाओं का समर्थन करने वाली कंपनियां इसमें पैसा लगाती हैं)। यदि आप कुछ अंतर्दृष्टि प्राप्त करना चाहते हैं, तो प्रोजेक्ट पृष्ठ और ओहलो देखें ।


0

JGit git रिपॉजिटरी में हेरफेर करने के लिए एक लाइब्रेरी है। आप अकेले JGit का उपयोग नहीं करते हैं, जब तक कि आप अपने पसंद के तरीके से git रिपॉजिटरी में हेरफेर करने के लिए कोई प्रोग्राम नहीं लिखते हैं।

यदि आप ग्रहण का उपयोग IDE के रूप में करते हैं, तो आप EGit को एक संस्करण नियंत्रण प्लगइन (इंडिगो में डिफ़ॉल्ट) के रूप में स्थापित करते हैं। ईजीत जेजीट को कॉल करता है इसलिए आपके पास भी ईजीत स्थापित होने पर जेजीट स्थापित है।

नोट, Netbeans के लिए, आप NBGit को एक संस्करण नियंत्रण प्लगइन के रूप में स्थापित करते हैं। NBGit को JGit भी कहते हैं।

JavaGit: सक्रिय रूप से रखरखाव नहीं किया गया है?


0

JGit Git का जावा कार्यान्वयन है। यह एक पुस्तकालय है, जिसका उपयोग आपके स्वयं के अनुप्रयोगों में भी किया जा सकता है। यह सीएलआई संचालन के कुछ प्रकार भी प्रदान करता है। दूसरी तरफ ईजीट, Git के लिए एक्लिप्स टीम प्रदाता प्लगइन है, जो Git कार्यान्वयन के रूप में JGit का उपयोग करता है। सरलीकृत आप कह सकते हैं कि ईजीआईटी यूआई हिस्सा है, और पृष्ठभूमि का हिस्सा जीजीटी है। JGit EGit पर निर्भर नहीं करता है, लेकिन EGit JGit पर निर्भर करता है।

प्रेषक: https://www.eclipse.org/forums/index.php/t/273443/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.