I2P के माध्यम से बड़े सॉफ़्टवेयर रिपॉज़िटरीज़ को क्लोन करना मुश्किल हो सकता है, और git का इस्तेमाल कभी-कभी इसे और भी कठिन बना देता है। सौभाग्य से, git कभी-कभी इसे आसान भी बना देता है। Git में git bundle कमांड होता है, जिसका उपयोग किसी git रिपॉज़िटरी को एक फ़ाइल में बदलने के लिए किया जा सकता है, जिसे git बाद में आपकी स्थानीय डिस्क पर किसी लोकेशन से clone, fetch, या import कर सकता है। इस क्षमता को BitTorrent (बिटटॉरेंट) डाउनलोड के साथ मिलाकर, हम git clone से जुड़ी अपनी शेष समस्याओं को हल कर सकते हैं।

शुरू करने से पहले

यदि आप git bundle (गिट बंडल) जनरेट करने का इरादा रखते हैं, तो आपके पास git रिपॉजिटरी की पूरी प्रति पहले से होना अनिवार्य है, mtn रिपॉजिटरी नहीं। आप इसे github या git.idk.i2p से प्राप्त कर सकते हैं, लेकिन एक shallow clone (ऐसा clone जो –depth=1 के साथ किया गया हो) काम नहीं करेगा। यह चुपचाप विफल हो जाएगा, ऐसा कुछ बनाएगा जो bundle जैसा दिखता है, लेकिन जब आप इसे क्लोन करने की कोशिश करेंगे तो यह विफल हो जाएगा। यदि आप केवल पहले से जनरेट किया हुआ git bundle प्राप्त कर रहे हैं, तो यह अनुभाग आप पर लागू नहीं होता।

Bittorrent के माध्यम से I2P स्रोत कोड प्राप्त करना

किसी को आपको एक टोरेंट फ़ाइल या मैग्नेट लिंक देना होगा जो आपके लिए पहले से जनरेट किए गए मौजूदा git bundle से मेल खाता हो। BitTorrent से बंडल प्राप्त हो जाने पर, आपको उससे एक कार्यशील रिपॉजिटरी बनाने के लिए git का उपयोग करना होगा।

git clone का उपयोग

git bundle से क्लोन करना आसान है, बस:

git clone $HOME/.i2p/i2psnark/i2p.i2p.bundle

यदि आपको निम्नलिखित त्रुटि मिलती है, तो इसके बजाय git init और git fetch का मैन्युअल रूप से उपयोग करने का प्रयास करें:

fatal: multiple updates for ref 'refs/remotes/origin/master' not allowed

Using git init and git fetch

सबसे पहले, git रिपॉजिटरी में बदलने के लिए एक i2p.i2p डायरेक्टरी बनाएँ:

mkdir i2p.i2p && cd i2p.i2p

इसके बाद, परिवर्तनों को इसमें वापस प्राप्त करने के लिए एक खाली git रिपॉजिटरी आरंभ करें:

git init

अंत में, बंडल से रिपॉजिटरी प्राप्त करें:

git fetch $HOME/.i2p/i2psnark/i2p.i2p.bundle

bundle remote को upstream remote से बदलें

अब जब आपके पास bundle है, तो आप remote को upstream repository source पर सेट करके परिवर्तनों के साथ तालमेल बनाए रख सकते हैं:

git remote set-url origin git@127.0.0.1:i2p-hackers/i2p.i2p

बंडल तैयार करना

सबसे पहले, उपयोगकर्ताओं के लिए Git मार्गदर्शिका का पालन करें, जब तक कि आपने i2p.i2p रिपॉज़िटरी के क्लोन को सफलतापूर्वक --unshallow न कर लिया हो। यदि आपके पास पहले से क्लोन है, तो टोरेंट बंडल बनाने से पहले git fetch --unshallow ज़रूर चलाएँ।

एक बार जब वह आपके पास हो, तो बस संबंधित ant target चलाएँ:

ant bundle

और परिणामी बंडल को अपनी I2PSnark डाउनलोड्स डायरेक्टरी में कॉपी करें। उदाहरण के लिए:

cp i2p.i2p.bundle* $HOME/.i2p/i2psnark/

एक-दो मिनट में, I2PSnark टोरेंट को पहचान लेगा। टोरेंट की seeding (अपलोड के रूप में साझा करना) शुरू करने के लिए “Start” बटन पर क्लिक करें।