استنساخ مستودعات البرمجيات الكبيرة عبر I2P يمكن أن يكون صعباً، واستخدام git يمكن أن يجعل هذا أصعب أحياناً. لحسن الحظ، يمكن أن يجعله أسهل أيضاً في بعض الأحيان. Git يحتوي على أمر git bundle يمكن استخدامه لتحويل مستودع git إلى ملف يمكن لـ git بعدها استنساخه أو جلبه أو استيراده من موقع على القرص المحلي. بدمج هذه القدرة مع تحميلات bittorrent، يمكننا حل مشاكلنا المتبقية مع git clone.
قبل أن تبدأ
إذا كنت تنوي إنشاء حزمة git، فيجب عليك بالضرورة أن تملك نسخة كاملة من مستودع git، وليس مستودع mtn. يمكنك الحصول عليها من github أو من git.idk.i2p، لكن النسخة الضحلة (النسخة المنشأة بـ –depth=1) لن تعمل. ستفشل بصمت، منشئة ما يبدو وكأنه حزمة، لكن عندما تحاول استنساخها ستفشل. إذا كنت تسترد حزمة git مُنشأة مسبقاً فقط، فهذا القسم لا ينطبق عليك.
جلب مصدر I2P عبر Bittorrent
سيحتاج شخص ما إلى تزويدك بملف torrent أو رابط magnet يتوافق مع git bundle موجود قام بإنشائه لك مسبقاً. يمكن العثور على حزمة حديثة ومُنشأة بشكل صحيح لكود مصدر i2p.i2p الرئيسي اعتباراً من يوم الأربعاء، 18 مارس 2020، داخل I2P في pastebin الخاص بي paste.idk.i2p/f/4hq37i
.
بمجرد حصولك على حزمة، ستحتاج إلى استخدام git لإنشاء مستودع عمل منها. إذا كنت تستخدم GNU/Linux و i2psnark، فيجب أن تكون حزمة git موجودة في $HOME/.i2p/i2psnark أو، كخدمة على Debian، في /var/lib/i2p/i2p-config/i2psnark. إذا كنت تستخدم BiglyBT على GNU/Linux، فربما تكون في “$HOME/BiglyBT Downloads/” بدلاً من ذلك. الأمثلة هنا تفترض I2PSnark على GNU/Linux، إذا كنت تستخدم شيئاً آخر، استبدل مسار الحزمة بدليل التحميل المفضل لعميلك ونظام التشغيل الخاص بك.
استخدام 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
استخدام git init و git fetch
أولاً، قم بإنشاء مجلد i2p.i2p لتحويله إلى مستودع git.
mkdir i2p.i2p && cd i2p.i2p
بعد ذلك، قم بتهيئة مستودع git فارغ لجلب التغييرات إليه.
git init
أخيراً، اجلب المستودع من الحزمة.
git fetch $HOME/.i2p/i2psnark/i2p.i2p.bundle
استبدل الـ remote الخاص بالحزمة بالـ remote الأساسي
الآن بعد أن أصبح لديك bundle، يمكنك مواكبة التغييرات عن طريق تعيين الـ remote إلى مصدر المستودع الأصلي upstream.
git remote set-url origin git@127.0.0.1:I2P_Developers/i2p.i2p
إنشاء حزمة
أولاً، اتبع دليل Git للمستخدمين
حتى تحصل على استنساخ ناجح مع --unshallow لمستودع i2p.i2p. إذا كان لديك استنساخ بالفعل، تأكد من تشغيل git fetch --unshallow قبل إنشاء حزمة torrent.
بمجرد حصولك على ذلك، قم بتشغيل هدف ant المقابل:
ant git-bundle
وانسخ الحزمة الناتجة إلى دليل التنزيلات الخاص بـ I2PSnark. على سبيل المثال:
cp i2p.i2p.bundle* $HOME/.i2p/i2psnark/
خلال دقيقة أو دقيقتين، سيلتقط I2PSnark ملف التورنت. انقر على زر “Start” لبدء مشاركة التورنت.