Clonar repositórios de software grandes via I2P pode ser difícil, e usar o git às vezes pode tornar isso ainda mais difícil. Felizmente, às vezes também pode facilitar. O Git tem um comando git bundle que pode ser usado para transformar um repositório git em um arquivo do qual o git pode então clonar, fazer fetch ou importar, a partir de um local no seu disco local. Ao combinar esse recurso com downloads via BitTorrent, podemos resolver nossos problemas restantes com git clone.
Antes de começar
Se você pretende gerar um git bundle, você deve já possuir uma cópia completa do repositório git, não do repositório mtn. Você pode obtê-la no github ou em git.idk.i2p, mas um clone superficial (um clone feito com –depth=1) não funcionará. Isso falhará silenciosamente, criando algo que parece um bundle, mas quando você tentar cloná-lo, falhará. Se você estiver apenas obtendo um git bundle pré-gerado, então esta seção não se aplica a você.
Obtendo o código-fonte do I2P via BitTorrent
Alguém precisará fornecer a você um arquivo .torrent ou um magnet link (link magnet) correspondente a um git bundle (arquivo de pacote do Git) existente que essa pessoa já tenha gerado para você. Assim que você tiver um bundle obtido via BitTorrent, será necessário usar o git para criar um repositório de trabalho a partir dele.
Usando git clone
Clonar a partir de um git bundle (pacote do Git) é fácil, basta:
git clone $HOME/.i2p/i2psnark/i2p.i2p.bundle
Se você obtiver o seguinte erro, tente usar git init e git fetch manualmente em vez disso:
fatal: multiple updates for ref 'refs/remotes/origin/master' not allowed
Usando git init e git fetch
Primeiro, crie um diretório i2p.i2p para transformá-lo em um repositório Git:
mkdir i2p.i2p && cd i2p.i2p
Em seguida, inicialize um repositório Git vazio para o qual buscar as alterações de volta:
git init
Por fim, busque o repositório a partir do bundle:
git fetch $HOME/.i2p/i2psnark/i2p.i2p.bundle
Substitua o remoto bundle pelo remoto upstream
Agora que você tem um bundle, você pode acompanhar as alterações configurando o remoto para a origem do repositório upstream:
git remote set-url origin git@127.0.0.1:i2p-hackers/i2p.i2p
Gerando um pacote
Primeiro, siga o guia do Git para usuários até que você tenha um clone do repositório i2p.i2p no qual --unshallow tenha sido aplicado com sucesso. Se você já tiver um clone, certifique-se de executar git fetch --unshallow antes de gerar um pacote torrent.
Quando você tiver isso, basta executar o alvo correspondente do ant:
ant bundle
e copie o pacote resultante para o seu diretório de downloads do I2PSnark. Por exemplo:
cp i2p.i2p.bundle* $HOME/.i2p/i2psnark/
Em um ou dois minutos, o I2PSnark detectará o torrent. Clique no botão “Start” para começar a semear o torrent.