• 時間: 2020-03-18
  • 著者: idk

大規模なソフトウェアリポジトリのI2P経由でのクローンは難しい場合があります。 またgitの使用によってそれがさらに困難になることもあります。 ありがたいことに、しばしばそれは容易になります。 Git には gitリポジトリを1ファイルにまとめる git bundle コマンドがあり、 それによりgitのクローン、フェッチ、インポートがあなたのローカルディスクから可能になります。 この機能とBitTorrentのダウンロードを組み合わせることで、件の git clone に伴う問題を解決できます。

始める前に

git bundle を生成するつもりなら、 mtnレポジトリではなく、git レポジトリのフルコピーを持ってい**なければなりません**。 それは github か git.idk.i2p から入手可能ですが、シャロークローン(–depth=1 までのクローン)では*動きません*。それはバンドルっぽいものを作成しつつ静かに落ちて、いざクローンしようとしたときに失敗します。 単に事前生成のgitバンドルを受け取っているだけであれば、この章は気にしなくて構いません。

I2PソースをBitTorrent経由で取得

Someone will need to supply you with a torrent file or a magnet link corresponding to an existing git bundle that they have already generated for you. A recent, correctly-generated bundle of the mainline i2p.i2p source code as-of Wednesday, March 18, 2020, can be found inside of I2P at my pastebin paste.idk.i2p/f/4hq37i. You can also use a magnet link, and if you're a BiglyBT user who wants to bridge the torrent, use this magnet link instead to announce to clearnet trackers as well.

バンドルが手に入ったら、gitを使ってそれをもとに作業レポジトリを作成しましょう。 GNU/Linux と i2psnarkを使用している場合、 その git bundle は $HOME/.i2p/i2psnark か Debianのサービスとしての /var/lib/i2p/i2p-config/i2psnark にあるはずです。 GNU/Linux で BiglyBT を使用している場合は、おそらく「$HOME/BiglyBT Downloads/」にあります。 この例では GNU/Linux 上の I2PSnark を想定していますが、 他のものを使っている場合は、バンドルへのパスをあなたのクライアントとプラットフォームに合ったダウンロードディレクトリに置き換えてください。

git clone の使用

gitバンドルからのクローンは簡単です。単に:

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

次のエラーが出たら、git init と git fetch を手動で試してください。

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

git initgit fetch の使用

まず gitレポジトリとするためのi2p.i2pディレクトリを作成します。

mkdir i2p.i2p && cd i2p.i2p

次に、更新取得にむけて空のgitレポジトリを初期化します。

git init

最後に、バンドルからレポジトリを取得します。

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

バンドルリモートを上流リモートで置き換える

バンドルを持っている今、リモートを上流レポジトリソースに設定することで更新に追従できます。

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

バンドルの生成

まず、Gitユーザーガイド に従って、i2p.i2pレポジトリのクローンの --unshallow``クローンを無事に取得してください。 クローンが手に入ったら、Torrentバンドル生成前に ``git fetch --unshallow を走らせるのを忘れずに。

取得できたら、対応するant targetを走らせるだけです:

ant bundle

そうして出来たバンドルをI2PSnarkのダウンロードディレクトリにコピーしてください。 例えば:

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

数分でI2PSnarkがそのトレントを拾います。 「開始」ボタンをクリックし、torrentのシードを始めてください。