• Gönderilme: 2020-03-06
  • Yazar: idk

System Message: WARNING/2 (Blog, line 1)

Title overline too short.

======================
Kullanıcılar için I2P üzerinden Git
======================

I2P tüneli üzerinden Git erişimini ayarlama eğitimi. Bu tünel, I2P üzerindeki tek bir Git hizmetine erişim noktanız olarak davranır. I2P projesini Monotone üzerinden Git üzerine geçirme çalışmalarının bir parçasıdır.

Her şeyden önce: Hizmetin herkese sunduğu yetenekleri öğrenin

Git hizmetinin nasıl yapılandırıldığına bağlı olarak, tüm hizmetler aynı adresten sunulabilir ya da sunulmayabilir. git.idk.i2p durumunda, Git SSH istemciniz için yapılandırılacak herkese açık bir HTTP adresi ve bir SSH adresi(g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka.b32.i2p) vardır. Her ikisi de itme ya da çekme istekleri için kullanılabilir, ancak SSH kullanılması önerilir.

Bir: Git hizmetinde bir hesap açın

Uzak bir Git hizmetinde depolarınızı oluşturmak için o hizmette bir kullanıcı hesabı açın. Elbette, yerel depolar oluşturarak bunları uzak bir Git hizmetine gönderme seçeneğiniz de vardır. Ancak çoğu durumda bir hesap açılması ve sunucuda kendiniz için bir depo alanı oluşturmanız gerekir. GitLab hesap açma formu çok basittir:

Registration is easy!

Registration is easy!

İki: Bir deneme projesi oluşturun

Kurulum işleminin çalıştığından emin olmak için sunucudan bir deneme havuzu oluşturmanızı sağlar. Bu eğitimin amacına yönelik olarak I2P yöneltici dalını kullanacağız. İlk olarak, i2p-hackers/i2p.i2p deposuna gidin:

Browse to i2p.i2p
I2P Hackers i2p.i2p

Ardından, hesabınızda bir dalını oluşturun.

User is forking
User is finished

Üç: Git istemci tünelinizi kurun

Sunucuma okuma-yazma erişimine sahip olmak için SSH istemciniz için bir tünel kurmanız gerekecek. Örnek olarak, bunun yerine HTTP tünelini kullanacağız. Ancak yalnızca salt okunur erişime, HTTP/S kopyalamaya gerek duyuyorsanız, tüm bunları atlayabilir ve Git yapılandırması için önceden hazırlanmış I2P HTTP vekil sunucusunu kullanmak amacıyla http_proxy ortam değişkenini kullanabilirsiniz. Örneğin:

http_proxy=http://localhost:4444 git clone --depth=1 http://git.idk.i2p/youruser/i2p.i2p
git fetch --unshallow
Client tunnel
Git over I2P

Ardından, itme ve çekme istekleri için kullanacağınız adresi ekleyin. Bu örnek adresin I2P üzerinden salt okunur HTTP kopyaları için olduğunu unutmayın. Yöneticiniz Git HTTP(Akıllı HTTP) iletişim kuralına izin vermiyorsa, SSH kopyasının base32 adresini almanız gerekecektir. İstemci tünelini Git SSH hizmetine bağlamak için şu Base32 adresini kullanın: g6u4vqiuy6bdc3dbu6a7gmi3ip45sqwgtbgrr6uupqaaqfyztrka.b32.i2p

git.idk.i2p

I2P hizmetinin yerel olarak iletileceği bir bağlantı noktası seçin.

localhost:localport

Çok kullandığım için istemci tünelimi otomatik olarak başlatıyorum ama bu size kalmış.

Auto Start

Her şey bittiğinde, buna çok benzemeli.

Review settings

Dört: Bir kopya oluşturmayı deneyin

Artık tüneliniz hazır, SSH üzerinden kopyalamayı deneyebilirsiniz.

GIT_SSH_COMMAND="ssh -p 7670" \
    git clone git@127.0.0.1:youruser/i2p.i2p

Uzak ucun beklenmedik bir şekilde kapandığı ile ilgili bir hata görebilirsiniz. Ne yazık ki Git, hala sürdürülebilir kopyalamayı desteklemiyor. Bunu yapana kadar, bu sorunu aşmanın oldukça kolay birkaç yolu var. İlk ve en kolayı, sığ bir derinliğe kopyalamaya çalışmaktır:

GIT_SSH_COMMAND="ssh -p 7670" \
    git clone --depth 1 git@127.0.0.1:youruser/i2p.i2p

Sığ bir kopyalama gerçekleştirdikten sonra, depo klasörüne geçerek ve aşağıdakileri çalıştırarak geri kalanını sürdürerek alabilirsiniz:

git fetch --unshallow

Bu noktada, henüz tüm dallarınıza sahip değilsiniz. Aşağıdaki komutları çalıştırarak onları alabilirsiniz:

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

Bu komutlar, Git yazılımına kaynaktan alma sırasında tüm dallar alınacak şekilde depo yapılandırmasını değiştirmesini söyler.

Bu işe yaramazsa, tünel yapılandırma menüsünü açarak bazı yedek tüneller eklemeyi deneyebilirsiniz.

Backup Tunnels

Backup Tunnels

Bu da işe yaramazsa, denenmesi gereken bir sonraki kolay şey tünel uzunluğunu azaltmaktır. Ancak koda katkıda bulunma çalışmalarınızın, birçok kötü amaçlı düğüm işleterek tüm yolunuzu denetlemeye çalışan ve bol kaynağı olan bir saldırgan tarafından izlendiğini ve anonimliğinizin bozulması riskiyle karşı karşıya olduğunu düşünüyorsanız, bunu yapmayın. Bu durum size pek olası gelmiyorsa güvenle yapabilirsiniz.

One-Hop Tunnels

One-Hop Tunnels

Geliştiriciler için önerilen iş akışı!

Sürüm denetimi hayatınızı kolaylaştırabilir, ancak en iyi sonucu alabilmek için onu iyi kullanmanız gerekir! Bunun ışığında, birçoğunun GitHub üzerinden aşina olduğu, önce dallandır, özelliği dalda geliştir şeklinde bir iş akışı öneriyoruz. Böyle bir iş akışında, ana dal, güncellemeler için bir tür "Gövde" olarak kullanılır ve programcı tarafından asla dokunulmaz, bunun yerine ana dalda yapılan tüm değişiklikler diğer dallardan birleştirilir. Çalışma alanınızı buna göre kurmak için aşağıdaki adımları izleyin:

  • Asla ana dalda değişiklik yapmayın. Resmi kaynak kodundaki

System Message: WARNING/2 (Blog, line 187)

Bullet list ends without a blank line; unexpected unindent.

güncellemeleri düzenli olarak almak için ana dalı kullanacaksınız. Tüm değişiklikler özellik dallarında yapılmalıdır.

1. Yukarı akış kaynak kodunu kullanarak yerel deponuzda ikinci bir uzak depo kurun.

git remote add upstream git@127.0.0.1:i2p-hackers/i2p.i2p
  1. Var olan ana daldaki tüm yukarı akış değişikliklerini çekin:

    git pull upstream master
    

3. Kaynak kodunda herhangi bir değişiklik yapmadan önce, üzerinde geliştirme çalışmalarının yapılacağı yeni özellik dalını denetleyin:

git checkout -b feature-branch-name

4. Değişikliklerinizi tamamladığınızda bunları gönderin ve dalınıza itme isteğinde bulunun

git commit -am "I added an awesome feature!"
git push origin feature-branch-name

5. Bir birleştirme isteğinde bulunun. Birleştirme isteği onaylandığında ve yukarı akış ana dalına getirildiğinde, ana dalı yerel olarak denetleyin ve değişiklikleri alın:

git checkout master
git pull upstream master

6. Yukarı akış ana dalında (i2p-hackers/i2p.i2p) bir değişiklik yapıldığında da, bu akışı kullanarak ana kodunuzu güncelleyebilirsiniz.

git checkout master
git pull upstream master