Sürüm Kontrolü İçin Apache Subversion SVN ve TortoiseSVN Kurulumu İçin Temel Kılavuz


İşiniz düzenli olarak güncellenen belgelerin, web sayfalarının ve diğer dosya türlerinin işlenmesini gerektiriyorsa, henüz yapmadıysanız bir sürüm kontrol mekanizması kullanmak isteyebilirsiniz.

Diğer şeylerin yanı sıra, bu size (ve bir grup potansiyel ortak çalışana) belirli bir dosyada yapılan değişiklikleri takip etmenize ve bir sorunla karşılaşıldığında veya bir güncelleme beklenen sonucu vermediğinde önceki bir sürüme geri dönmenize olanak tanır. .

Özgür yazılım ekosisteminde en yaygın kullanılan sürüm kontrol sistemine Apache Subversion (veya kısaca SVN) adı verilir. mod_dav_svn'nin (Apache'nin Subversion modülü) yardımıyla, HTTP ve bir web sunucusu kullanarak bir Subversion deposuna erişebilirsiniz.

Bununla birlikte, hadi kollarımızı sıvayalım ve bu araçları RHEL/CentOS 7, Fedora 22-24, Debian 8/7 ve Ubuntu 16.04-15.04 sunucusu. Testlerimiz için IP'si 192.168.0.100 olan bir CentOS 7 sunucusu kullanacağız.

İstemci tarafında (bir Windows 7 makinesi), SVN'ye arayüz olarak TortoiseSVN'yi (Apache Subversion'ı temel alan) yükleyip kullanacağız.

Test Ortamımız


Server - CentOS 7
IP Address - 192.168.0.100
Client - Windows 7

Adım 1 – SVN'yi Linux'ta Kurmak ve Yapılandırmak

Az önce de belirttiğimiz gibi, bir web arayüzü kullanarak SVN deposuna erişmek için Apache'ye güveneceğiz. Henüz kurulu değilse, aşağıda gösterildiği gibi paket listesine eklediğinizden emin olun:


------------------ On CentOS / RHEL / Fedora ------------------ 
yum update && yum install mod_dav_svn subversion httpd -y

------------------ On Debian / Ubuntu ------------------ 
apt-get update && apt-get install libapache2-svn subversion apache2 -y 

CentOS 7'ye kurulum sırasında, SVN için bir Apache yapılandırma dosyası /etc/httpd/conf.modules.d/10-subversion.conf olarak oluşturulacaktır. Dosyayı açın ve aşağıdaki yapılandırma bloğunu ekleyin:


<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/httpd/subversion-auth
    Require valid-user
</Location>

Not: Debian/Ubuntu'da /etc/apache2/mods-enabled/dav_svn.conf dosyasına aşağıdaki satırları eklemeniz gerekir. dosyası.


<Location /svn>
    DAV svn
    SVNParentPath /websrv/svn
    AuthType Basic
    AuthName "Welcome to SVN"
    AuthUserFile /etc/apache2/subversion-auth
    Require valid-user
</Location>

Debian/Ubuntu'da dav_svn Apache modülünü etkinleştirmeniz gerekir:


a2enmod dav_svn

Birkaç açıklama:

  1. SVNParentPath yönergesi daha sonra depolarımızın oluşturulacağı dizini belirtir. Bu dizin mevcut değilse (büyük olasılıkla durum budur), onu şununla oluşturun:

    
    mkdir -p /websrv/svn
    

    Bu dizinin, halihazırda Apache tarafından sunulan bir sanal ana bilgisayarın DocumentRoot'unun içinde yer almaması veya bu dizinle çakışmaması gerektiğini unutmamak önemlidir. Bu çok etkileyici!

  2. AuthUserFile yönergesi, geçerli bir kullanıcının kimlik bilgilerinin saklanacağı dosyayı belirtir. Herkesin kimlik doğrulaması olmadan SVN'ye erişmesine izin vermek istiyorsanız Konum bloğundaki son dört satırı kaldırın. Durum böyleyse 2. Adım'ı atlayın ve doğrudan 3. Adım'a geçin.
  3. Bu son değişiklikleri uygulamak için Apache'yi yeniden başlatmayı düşünseniz de bunu henüz yapmayın, çünkü SVN için geçerli kullanıcılarla kimlik doğrulama dosyasını ve havuzun kendisini oluşturmamız gerekiyor.

Adım 2 – SVN'ye Erişime İzin Verilen Kullanıcıları Ekleme

Artık SVN'ye erişmesine izin verilecek hesaplara şifre oluşturmak için htpasswd'yi kullanacağız. Yalnızca ilk kullanıcı için -c seçeneğine ihtiyacımız olacak.

İzin verilen hesaplar ve bcrypt ile şifrelenmiş şifreler (-B), anahtar/değer çiftleri halinde /etc/httpd/subversion-auth dosyasında depolanacaktır. Günümüz standartlarına göre, htpasswd tarafından kullanılan varsayılan MD5 veya SHA şifrelemesinin güvensiz kabul edildiğini unutmayın.


------------------ On CentOS / RHEL / Fedora ------------------ 
htpasswd -cB /etc/httpd/subversion-auth tecmint

------------------ On Debian / Ubuntu ------------------ 
htpasswd -cB /etc/apache2/subversion-auth tecmint

Kimlik doğrulama dosyasına doğru sahipliği ve izinleri ayarlamayı unutmayın:


------------------ On CentOS / RHEL / Fedora ------------------ 
chgrp apache /etc/httpd/subversion-auth
chmod 660 /etc/httpd/subversion-auth

------------------ On Debian / Ubuntu ------------------ 
chgrp www-data /etc/apache2/subversion-auth
chmod 660 /etc/apache2/subversion-auth

Adım 3 – Güvenlik Ekleyin ve SVN Deposu Oluşturun

SVN'ye bir web arayüzü üzerinden erişeceğiniz için, güvenlik duvarınız üzerinden HTTP (ve isteğe bağlı olarak HTTPS) trafiğine izin vermeniz gerekecektir.


------------------ On CentOS / RHEL / Fedora ------------------ 
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload 

Güvenlik duvarı yapılandırmasını --reload ile yeniden yüklediğinizde kalıcı ayarlar hemen yürürlüğe girer.

tecmint adında bir başlangıç SVN deposu oluşturun:


svnadmin create /websrv/svn/tecmint

Sahibi ve grup sahibini yinelemeli olarak Apache olarak değiştirin:


------------------ On CentOS / RHEL / Fedora ------------------ 
chown -R apache:apache /websrv/svn/tecmint

------------------ On Debian / Ubuntu ------------------ 
chown -R www-data:www-data /websrv/svn/tecmint

Son olarak, /websrv/svn/tecmint'in güvenlik içeriğini değiştirmeniz gerekecektir (daha sonra başka depolar oluşturmaya karar verirseniz bu adımı tekrarlamanız gerekeceğini unutmayın):


------------------ On CentOS / RHEL / Fedora ------------------ 
chcon -R -t httpd_sys_content_t /websrv/svn/tecmint/
chcon -R -t httpd_sys_rw_content_t /websrv/svn/tecmint/

Not: SELinux devre dışı bırakılmış bir VPS'ye SVN kuruyorsanız son iki komut geçerli olmayabilir.

Önerilen Okuma: Linux'ta SELinux'u Geçici veya Kalıcı Olarak Nasıl Devre Dışı Bırakacağınızı Öğrenin

Apache'i yeniden başlatın ve deponun kullanılabilir olduğunu doğrulayın.


------------------ On CentOS / RHEL / Fedora ------------------ 
systemctl restart httpd

------------------ On Debian / Ubuntu ------------------ 
systemctl restart apache2

Ardından bir web tarayıcısı başlatın ve onu http://192.168.0.100/svn/tecmint adresine yönlendirin. 1. Adımda oluşturduğumuz geçerli kullanıcının kimlik bilgilerini girdikten sonra çıktı şuna benzer olmalıdır:

Bu noktada depomuza herhangi bir kod eklemedik. Ama bunu bir dakika içinde yapacağız.

Adım 4 – TortoiseSVN'yi Windows 7 İstemcisine Kurun

Girişte belirttiğimiz gibi TortoiseSVN, Apache Subversion'a yönelik kullanıcı dostu bir arayüzdür. GPL kapsamında lisanslanan Ücretsiz Yazılımdır ve https://tortoisesvn.net/downloads.html adresinden indirilebilir.

Makinenize uygun mimariyi (32 veya 64 bit) seçin ve devam etmeden önce programı yükleyin.

Adım 5 – İstemci Makinede SVN Deposunu Kurun

Bu adımda Belgeler'in içinde webapp adlı bir klasör kullanacağız. Bu klasörde bir HTML dosyası ile birlikte kullanmak istediğimiz Javascript ve CSS dosyasına (sırasıyla script.js ve styles.css) sahip scripts ve styles adlı iki klasör bulunur. sürüm kontrolüne ekleyin.

Webapp'i sağ tıklayın ve SVN Checkout'u seçin. Bu, uzak havuzun (şu anda boş olan) yerel bir kopyasını oluşturacak ve sürüm kontrolü için klasörü başlatacaktır:

Havuzun URL'sine http://192.168.0.100/svn/tecmint yazın ve yerel ödeme dizininin aynı kaldığından emin olun, ardından Tamam'ı tıklayın:

Kullanıcı adını ve şifreyi girin (2. Adım'a bakın) ve Tamam'ı tıklayın:

Boş olmayan bir dizine ödeme yapmak isteyip istemediğiniz sorulacaktır. Ödeme işlemine devam etmek için onaylayın. Tamamlandığında klasör adının yanında yeşil bir onay işareti görünecektir:

Adım 6 – Değişiklikleri Kabul Edin ve Dosyaları Uzak SVN Havuzuna Dağıtın

webapp'e tekrar sağ tıklayın ve bu sefer Kabul Et'i seçin. Daha sonra, bu taahhüdü daha sonra tanımlamak için açıklayıcı bir yorum yazın ve depoya dağıtmak istediğiniz dosya ve klasörleri kontrol edin. Son olarak Tamam'ı tıklayın:

Dosyaların boyutuna bağlı olarak işleme bir dakikadan fazla sürmemelidir. Tamamlandığında, artık web arayüzünde listelenen sürüm ve dosyalarla eşleşen revizyon 1'de olduğumuzu göreceksiniz:

Aynı dosyalar üzerinde çalışan birden fazla kişi varsa, üzerinde çalışılabilecek en son sürüme sahip olmak için yerel kopyanızı Güncellemek isteyeceksiniz. Bunu webapp'e sağ tıklayıp içerik menüsünden Güncelle'yi seçerek yapabilirsiniz.

Tebrikler! Bir SVN sunucusunu başarıyla kurdunuz ve sürüm kontrolü altında basit bir projeyi taahhüt ettiniz/güncellediniz.

Özet

Bu makalede, bir CentOS 7 sunucusuna Apache Subversion veri havuzu sunucusunun nasıl kurulacağını ve yapılandırılacağını ve TortoiseSVN kullanarak bu depodaki değişikliklerin nasıl gerçekleştirileceğini açıkladık. .

SVN ve TortoiseSVN ile ilgili burada yeterince ele alabileceğimizden çok daha fazlası olduğunu lütfen unutmayın (özellikle önceki revizyonlara nasıl dönüleceği), bu nedenle resmi yetkililere başvurmak isteyebilirsiniz. Daha fazla bilgi ve yapılandırma durumları için dokümanlar (SVN ve TortoiseSVN).

Her zaman olduğu gibi, herhangi bir sorunuz olursa bize bildirmekten çekinmeyin! Bize istediğiniz zaman ulaşmak için aşağıdaki yorum formunu kullanmaktan çekinmeyin.