Kullanım
Önceki Subversion Kurulum ve Kullanımı Sonraki
Kullanım
Üst Geliştirici Komutları
Kurulumun doğruluğunun sınanması
Öncelikle, svn --version komutu ile aşağıdaki 3 dosyanın sistemimiz içerisine gerçekten yüklenip yüklenmediğine bakmalıyız.
$ $ svn --version
svn, version 1.1.4 (r13838)
   compiled May 13 2005, 06:29:47

Copyright (C) 2000-2004 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
  - handles 'http' schema
  - handles 'https' schema
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' schema
* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' schema
Burada libsvn_ra_local dosyasının eksik olması BerkeleyDB'nin sisteminizde kurulu olmadığını gösterir.
Yeni bir deponun oluşturulması
Subversion'a yeni bir depo eklemek için kullanılacak olan komut svnadmin create olmalıdır. Komutun kullanım biçimi:
svnadmin create depo_adresiniz
Örnek:
$ svnadmin create /home/euler/svnrepo
Bu komut ile birlikte /home/euler/ dizini içerisine svnrepo isimli bir dizin açmış olduk. Bu dizin bizim subversion depomuz olacak. Burada dikkat edilmesi gereken nokta oluşturulacak depo dizini üzerinde okuma/yazma yetkisine sahip olmanız gerekliliğidir.
Projenin tutarlılığı ve subversion'ın ileriki sürümlerinde sorun yaşamamak açısından tavsiye edilen dizin yapısıyla devam etmek uygun olacaktır. Projenizin bulunduğu dizin içerisine aşağıdaki dizinleri oluşturun.
Halihazırda yerel sistemimizde geliştirmekte olduğumuz projemizin /tmp/projem dizinin altında olduğunu varsayarsak;
$ cd /tmp/projem
$ mkdir trunk branches tags
Daha sonra tüm proje dosyaları trunk dizini altına taşınmalı.
Depoya yeni projenin eklenmesi
Oluşturduğunuz depoya yeni bir proje eklemek için svn import komutunu kullanmalısınız. Komutun kullanım biçimi:
svnadmin import /proje_adresiniz file:///depo_adresiniz -m "bilgilendirme iletisi"
Örnek:
$ svn import /tmp/projem file:///home/euler/svnrepo -m "ilk projem"
Eğer aşağıdakine benzer bir çıktı alırsanız herşey yolunda demektir, proje dosyalarınız subversion deponuza eklenmiştir.
Adding     /tmp/projem/branches
Adding     /tmp/projem/tags
Adding     /tmp/projem/trunk
Adding     /tmp/projem/trunk/koray.py
Adding     /tmp/projem/trunk/deneme.txt

Committed revision 1.
Bu işlem /tmp/projem dizinini çalışma dizini haline getirmez; çalışma dizinini sonraki bölümde açıklandığı gibi ayrıca oluşturmalısınız.
Geliştirici Komutları
Çalışma dizininin oluşturulması
Çalışma dizininin oluşturulması ile kastedilen depoda bulunan bir projeyi üzerinde çalışmak için yerele almaktır. Subversion deposu içerisinden üzerinde çalışılacak olan projenin bir kopyasını almak için svn checkout komutu kullanılmalıdır.
$ svn checkout file:///home/euler/svnrepo/trunk projem
Artık subversion içerisindeki projenizin bir kopyası bilgisayarınızda. Çalışmalar bu dosyalar üzerinden yapılıp işlemler tamamlandıktan sonra tekrar subversion deposuna gönderilmeli.
Not
Bu komut sonrası o an içerisinde bulunduğunuz dizinde projem isimli bir dizin oluşacak ve tüm proje içeriği içerisine gelecektir, çalışmalar bu dosyalar üzerinden gerçekleştirilecektir.
Çalışma dizininin güncellenmesi
Üzerinde çalışmak için aldığınız çalışma kopyanızın güncellenmesi için svn update komutu kullanılır. Siz proje üzerinde çalışırken bir başkası proje dosyalarından bir kaçı üzerinde değişiklik yapmış olabilir, bu komut ile güncel dosyalar sisteminize alınır[61]:
$ svn update
Dosya ekleme, silme, kopyalama ve taşıma
Depoya yeni bir dosya eklemek için:
$ svn add dosya
Depodan bir dosyayı silmek için:
$ svn delete dosya
Depo içerisinde bir dosyayı kopyalamak için:
$ svn copy dosya1 dosya2
Depo içerisinde bir dosyayı taşımak ya da yeniden adlandırmak için:
$ svn move dosya1 dosya2
Geliştirilen dosyanın depoya teslim edilmesi
svn commit ile çalışma dizinine alınıp üzerinde değişiklik yapılan dosyalar svn commit ile tekrar subvision proje deposuna gönderilir, böylece proje dosyalarının sürüm takibi ve diğer ekip elemanlarının da güncel dosyalar üzerinde çalışması sağlanır. Biçimi:
svn commit --message "bilgilendirme iletisi"
örnek:
$ svn commit --message "değişken tiplerindeki hatalar düzeltildi"
Bu komut ile beraber üzerinde değişiklik yaptığınız tüm dosyalar subversion proje deponuza gönderilecektir. --message seçeneği ile dosyada yapılan işlemleri kısaca belirten hatırlatıcı bir bilgilendirme iletisi verilmelidir. Aşağıdaki gibi bir çıktı almanız gerekli.
Sending        koray2.txt
Transmtting file data.
Committed revision 4.
Diğer yararlı komutlar
En başta da belirtildiği gibi SVN bir nevi zaman makinasıdır. Depoya gönderilen her tür dosya için kayıt tutar ve üzerinde çalıştığınız dosyanın önceki sürümlerine erişmenize de olanak sağlar.
Proje üzerinde yapılan değikliklerin listesini almak için:
$ svn log
Bir dosya (örn, koray.py) üzerinde yapılan değikliklerin listesini almak için:
$ svn log koray.py
Dosyaları indirmeden, subversion proje deposu içerisinde hangi dizinde hangi dosyaların yer aldığını görmek için:
$ svn list http://koray.org/repos/svn
Böylece projenin tümünün değil de sadece kullanılacak olan dosyaların çalışma dizinine alınması (svn checkout, svn update) olanaklı olur.
$ svn cleanup
Subversion commit işlemini güvenli hale getirebilmek için işlemleri bir günlük dosyasına atar öncelikle (mimari olarak günlüklü dosya sistemindekine benzer şekilde). Daha sonra ise bu günlük dosyasından işlemleri okuyarak gerçekleştirir. Son olarak da günlük dosyasını sistemden siler. Günlük dosyasından okuma sırasında oluşabilecek bir sorun (makinanın çökmesi, elektirik sorunları vs..) commit işleminin tamamlanamamasına yol açar ve günlük dosyası sistemde kalır. Günlük dosyası tekrar çalıştırılarak işlemin tamamlanması sağlanabilir. svn cleanup komutu bu işlemi gerçekleştirmeye yarar.
Eğer süreçlerden biri kilitli kalmış ise (svn status çıktısında L olarak işaretli olan dosyalar kilitli kalmıştır, dolayısıyla sorun vardır.) svn cleanup komutu çalıştırılır ve sorun çözülür.


[61] Eğer özellikle size ayrılmış bir branşta çalışmıyorsanız, bir dosya üzerinde çalışmaya başlamadan önce çalışma dizininizde bir svn update yapmayı alışkanlık haline getirmelisiniz. (Branşlardan belgenin daha ileri sürümlerinde bahsedilecektir.)
Önceki Üst Ana Başlık Sonraki
Kurulum Başlangıç Web Sitesi Düzenlemesi ve Tasarımı
Bir Linux Kitaplığı Sayfası