2012-11-23 15 views
21

एक पालतू परियोजना के रूप में, मैं भंडारण बैकएंड के रूप में गिट का उपयोग करके एक नोट लेने वाला ऐप विकसित करना चाहता हूं। (मुझे संदेह है कि यह अभी तक अस्तित्व में नहीं है, इस लड़के के ब्लॉग पोस्ट को देखते हुए: http://jarofgreen.co.uk/2012/08/how-about-a-mobile-note-app-backed-by-git/)गिट लाइब्रेरी के लिए

अब, मैं इसे थोड़ा सा खेलने के अवसर के रूप में लेना चाहता हूं। हालांकि, मुझे गो के लिए गिट लाइब्रेरी में कोई भी (यहां तक ​​कि सबसे छोटा दृष्टिकोण नहीं) प्रतीत नहीं होता है। क्या वास्तव में कोई है?

जाहिर जाओ की मेरी जानकारी गैर existant है, इसलिए libgit के लिए बाइंडिंग लेखन शुरू करने के लिए एक मजेदार तरीका है (और मैं शायद माणिक का सहारा होता है, जो मैं या तो पता नहीं है)

प्रतीत नहीं होता ...
+0

मुझे यकीन है कि कुछ समय पहले एक समान प्रश्न देखा होगा लेकिन मुझे यह नहीं मिल रहा है। क्या मै गलत हु ? –

उत्तर

34

मैं कहूंगा कि git2go गो में उपयोग करने के लिए गिट बाइंडिंग लाइब्रेरी है। यह libgit2 चलाने वाले लोगों द्वारा नियमित रूप से और बनाए रखा जाता है।

यदि आप से go-git से पूरी तरह से लिखे गए गिट कार्यान्वयन की तलाश में हैं, तो सबसे परिपक्व और सक्रिय विकल्प है।

+0

यह पैकेज अपेक्षाकृत नया है (प्रश्न की तुलना में)।यह वर्तमान में सबसे अच्छा विकल्प है। (भविष्य के संदर्भ के लिए सही उत्तर के रूप में चिह्नित किया जाना चाहिए।) – Tomas

+0

दो साल बाद भी दैनिक अपडेट! बहुत अच्छे! –

+0

मैं गो-गिट के साथ जा रहा था, git2go विंडोज मशीन पर ठीक से काम करने के लिए एक बड़ी परेशानी है। –

10

गो मानक पुस्तकालय से os/exec पैकेज का उपयोग करके आप git कमांड पर बस खोल सकते हैं।

+5

वह है [आधिकारिक 'जाने' आदेश क्या करता है] (https://golang.org/src/cmd/go/vcs.go)। –

6

विक्टर प्रस्तावित वास्तव में "स्क्रिप्ट" गिट के "आधिकारिक" तरीके को अपने डेवलपर्स द्वारा कल्पना के अनुसार किया गया है। विशेष रूप से इस उद्देश्य के लिए गिट के आदेश दो व्यापक समूहों में विभाजित होते हैं: "नलसाजी" आदेश कम-स्तर होते हैं और अधिकतर अन्य कार्यक्रमों द्वारा उपयोग किए जाने के लिए उत्सुक होते हैं; "पोर्सिलीन" कमांड का उद्देश्य उपयोगकर्ता के साथ बातचीत करना है, और अपने काम करने के लिए प्लंबिंग आदेशों को कॉल करना है। गिट के कितने नलसाजी आदेशों के विचार को प्राप्त करने के लिए /usr/lib/git-core निर्देशिका (आपके सिस्टम पर अलग हो सकता है) के अंदर देखें।

दूसरी ओर, गो cgo सुविधा के माध्यम से साझा पुस्तकालयों के साथ लिंक करने का समर्थन करता है। इसलिए आप libgit2 को इसके साथ लपेटने का प्रयास कर सकते हैं। AFAIK, libgit2 अभी तक गिट के बराबर नहीं है, लेकिन यह गिट रिपॉजिटरीज़ को पढ़ने/लिखने में सक्षम है, ब्रांचिंग आदि — माना जाता है कि यह आपके कार्य के लिए पर्याप्त होगा।

ठीक है, के बाद मैं यह सब लिखा है, मैं नीचे libgit2 की साइट पर "बाइंडिंग" प्रविष्टि स्क्रॉल और go-git मिला ...

+0

ठीक है, काफी उचित है। मुझे लगता है कि मैं अभी भी कुछ प्रकार के बाइंडिंग का सहारा लेगा (गो-गिट काफी रोचक लगता है), यह आदेश आउटपुट से निपटने का एक आसान तरीका लगता है ... – vhdirk

3

एक search for "git" on GoDoc कुछ परियोजनाओं को बदल जाता है। एक libgit2 wrapper है, और नीचे an unfinished Git implementation in Go है।

+0

ओह, धन्यवाद, मुझे गोपीकेडोक के बारे में भी पता नहीं था पहली जगह – vhdirk

3

कुछ साल पहले से, मेरी टीम और मैं, हम गो में शुद्ध गिट कार्यान्वयन कोडिंग कर रहे थे, यह किसी भी सी/सी ++ निर्भरता से बचने और इसे अधिक लचीला और विस्तारित करने में आसान बनाता है।

https://github.com/src-d/go-git

जाने Git libgit2 या jgit की पूर्णता तक पहुँचने के लिए करना है, आजकल शामिल किया गया पाइपलाइन के बहुमत संचालन पढ़ सकते हैं और मुख्य लिखने के संचालन में से कुछ, लेकिन इस तरह का आपस में विलय के रूप में मुख्य चीनी मिट्टी के बरतन के संचालन का अभाव ।

संबंधित मुद्दे