Subversion - Sunucu kurulumu

Başlatan JKramer, 24 Aralık 2012, 15:18:15

JKramer

Merhaba,

Öncelikle Subversion genel açıklama için burasını, ayrıntılı açıklama için burasını okuyabilirsiniz.

Yukarıdaki adreslerdeki açıklamalardan faydalanıp, TortoiseSVN ile yerel makinada işleri hallettiğinizi varsayıyorum. Benim bu başlıkda bahsetmek istediğim; evdeki bilgisayara sunucu kurulumunu yapma ve projelere ulaşma hakkında olacaktır. Gerekli adımları sıralarsak:

1- TortoiseSVN kurulumu
2- No-Ip hesap alımı ve yazılımını kurma (Sabit ip adresiniz varsa bu adımı atlayabilirsiniz)
3- Bağlantı için modemden port yönlendirme
4- svnserve için Windows servisi oluşturma
5- Ek güvenlik

1- TortoiseSVN kurulumu

Kurulumla ilgili söylenecek bir şey yok, işletim sisteminize göre (x86-x64) dosyayı indirip çalıştırmanız yeterli.

2- No-Ip hesap alımı ve yazılımını kurma

Sabit ip adresiniz yoksa http://www.no-ip.com/newUser.php adresinden üye olup programını indirin. Programın açılışında kullanıcı adı ve şifrenizi girin. Bundan sonra ip adresiniz yerine üye olurken aldığınız hostname'i (picproje.no-ip.org mesela, siteden kullanıcı girişi yapıp değiştirebilirsiniz) kullanacaksınız. Üye olurken tek kullanımlık değil kullandığınız bir e-posta adresi verin çünkü ücretsiz hesaplarda her 30 günde bir aktif olup olmadığınıza dair e-posta geliyor.

3- Bağlantı için modemden port yönlendirme

Subversion'ın varsayılan portu 3690 olduğundan hep TCP hem de UDP için modemden bu portun yönlendirmesini yapmamız gerekiyor. Hem bilinen bir işlem olduğundan hem de modemden modeme bazı farklılıklar gösterdiğinden burada anlatmıyorum. Olmazsa http://portforward.com/ adresinden modeminizi bulup herhangi bir yazılım/oyun için nasıl yapıldığına resimli rehberlerden bakabilirsiniz.

4- svnserve için Windows servisi oluşturma

Bu aşamada kuracağımız sunucuyu muhtemelen birden fazla proje için kullanacağız. Bu yüzden "repos" ya da başka bir isimde ana klasör oluşturalım. Klasörü herhangi bir yerde oluşturabilirsiniz, örnek olarak klasörün tam yolu "D:\repos" olsun.

Şimdi komut satırını açıp C kök dizine gidelim. Aşağıdaki komutlarla svnserve için Windows servisini oluşturalım:

sc create svn binpath= "\"C:\Program Files\TortoiseSVN\bin\svnserve.exe\" --service --root \"D:\repos"" displayname= "Subversion" depend= tcpip start= auto

Koyu renkle gösterdiğim yol sizde farklı olabilir, svnserve.exe neredeyse onun yolunu yazmalısınız. Aynı şekilde D:\repos da size özel olabilir. Komutlar arasındaki boşluklara dikkat edin.

Eğer servisi kurabildiysek "[SC] CreateService SUCCESS" yazması gerekiyor. Daha sonra servisi başlatmak için yine komut satırına "net start svn" dememiz yeterli:

C:\>net start svn
The Subversion service is starting.
The Subversion service was started successfully.

Aynı şekilde services.msc altında servisimizi görüp kontrol edebiliriz. Kurulum işlemleri bu kadar. Şimdi deneme yapmak için D:\repos klasörü içinde helloworld_server adında yeni bir klasör oluşturalım. Oluşturduğumuz klasöre sağ tıklayıp "TortoiseSVN->Create repository here" diyerek helloworld proje deposunu (repository) oluşturmuş olduk. Bundan sonra depo adresimiz; svn://picproje.no-ip.org/helloworld_server olacak. Bu adresi kullanarak hem aynı bilgisayardan hem de internet üzerinden projenin kopyasını çekebiliriz.

Bu depoya ait erişimle ilgili birkaç ayar yapmak için helloworld_server klasörü içindeki conf->svnserver.conf dosyasını açalım. [general] altında;

# anon-access = read
# auth-access = write

satırlarını isteğimize göre düzenleyelim:

anon-access = none
auth-access = write

gibi. Burada da boşluklara dikkat etmemiz gerekiyor, satırlar sola dayalı yani boşluk olmamalı. Birkaç satır altta;

# password-db = passwd

satırı var. Burada da erişim için kullanıcı adı ve şifrelerin belirlendiği dosya adını yazıyoruz. Varsayılan isimde (passwd) bir dosya zaten olduğu için sadece satır başındaki comment işareti (#) ve boşluğu silmemiz yeterli:

password-db = passwd

Daha sonra passwd dosyasını açıp kullanıcı adı ve şifre belirliyoruz:

[users]
# harry = harryssecret
# sally = sallyssecret

Aynı formatta, boşluklara dikkat ederek kendi kulanıcı adı ve şifremizi yazıyoruz:

jkramer = 1234

gibi. Depodan kopyayı çekerken bu kullanıcı adı ve şifreyi girmemiz gerekiyor.

5- Ek güvenlik

daha sonra eklenecek

Aynı bilgisayardan ya da internetten, istediğimiz yerde (D:\Projects mesela, ya da projelerinizi nerede tutuyorsanız) helloworld_client adında yeni bir klasör oluşturalım. Oluşturduğumuz klasöre sağ tıklayıp "SVN Checkout" dediğimizde açılan penceredeki "URL of repository" kısmında depo adresimizi (örneğimizde svn://picproje.no-ip.org/helloworld_server) yazıp OK'ye tıklayarak client klasörü depoya bağlamış olduk. Bundan sonra helloworld_client klasörü içine proje dosyalarımızı kopyalayıp çalışmaya başlayabiliriz. Yaptığımız değişiklikleri depoya kaydetmek için helloworld_client klasörüne sağ tıklayıp "SVN Commit" dememiz yeterli.

Mesela yukarıdaki işlemleri evdeki bilgisayarda yaptık diyelim. İş yerindeki bilgisayarda, aynı yukarıdaki gibi yeni bir klasör oluşturup "SVN Checkout" diyerek yukarıdaki adımlarla bu klasörü de depoya bağlayalım. Bununla birlikte depodaki proje dosyalarını kopyalamış olduk. Bundan sonra iş yerinde proje üzerinde çalışıp, giderken "SVN Commit" ile değişikleri depoya kaydedelim. Eve gittiğimizde helloworld_client klasörüne sağ tıklayıp "SVN Update" dediğimizde son değişiklikleri almış olacağız.

Ben de acemi olduğumdan hatalı ya da eksik kısımlar olabilir, söylerseniz düzeltirim.

Yararlanılan siteler:
http://shawnoster.com/2007/07/subversion-on-windows-with-remote-access/
http://wordaligned.org/articles/one-svnserve-multiple-repositories
http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-serversetup-svnserve.html (burada iletişimin şifrelenmesi konusu da anlatılmış, daha sonra bu konuyu ekleyeceğim)
http://svnbook.red-bean.com/nightly/en/svn.serverconfig.svnserve.html