CVS ( Concurrent Versions Systems )
CVS Nedir?
CVS, sürüm takip sistemidir. CVS üzerinde tutulan dosyalarda hangi kullanicilarin ne zaman ne gibi degisiklikler yaptigininin kaydi tutulur.
Bir topluluk tarafindan gelistirilen çogu projede CVS den yararlanilmaktadir.
CVS’ in Kurulumu
Kaynak Koddan Kurulum:
Ilk olarak www.cvshome.org adresinden .tar dosyasini indirin. Daha sonra /tmp dizinine kopyalayin ve buraya dosyayi açin. Configure, make ve make install kullanarak CVS’ i kendi sisteminize göre derleyebilirsiniz. Kurulum hakkindaki daha faza bilgiyi INSTALL dosyasindan ede edebilirsiniz.
/tmp$ ls
cvs-1.11.5.tar.gz
/tmp$ tar -zxvf cvs-1.11.17.tar.gz
/tmp$ cd cvs-1.11.17
/tmp/cvs-1.11.5$ ./noautomake.sh –noautoconf
/tmp/cvs-1.11.5$ ./configure
...
...
...
/tmp/cvs-1.11.5$ make
...
...
/tmp/cvs-1.11.5$ su root
...
/tmp/cvs-1.11.5$ make install
...
Apt Kullanarak Kurulum
apt kaynak dosyasini güncellemek için ilk önce update parametresini çalistirmaliyiz. Daha sonra apt-get install ile CVS’ imizi kurabiliriz.
$ apt-get update
...
$ apt-get install cvs
...
CVS Sunucu Üzerinde Kullanici Islemleri
CVS sunucu üzerinde CVS’ e ulasmasi istenen her kullanici için bir hesap olusturulmalidir.
CVS’ de Ilk Islemler
Proje dosyalarinin sunucuda tutulabilmesi için bir CVS klasörü ayrilmalidir. Bu klasöre CVS proje dosyalari konur. CVS proje klasörünün ( CVSROOT ) izinleri dogru bir sekilde ayarlanmalidir.
$ mkdir /var/cvsroot/proje1 #CVS proje klasörü olusturuluyor
$ chown -R cvs:cvs /var/cvsroot/proje1 # Proje klasörünün sahibi ve grubu degistiriliyor
Simdi bir kaç proje dosyasi olusturalim ve bunu CVS’ e yerlestirelim.
$ cd /tmp
$ mkdir ornek
$ touch ornek/dosya1
$ touch ornek/dosya2
$ cd ornek
$ cvs -d /var/cvsroot/proje1 import ornek ornek_proje surum_0.1
Eger CVSROOT dizinimizi yerel bir makinada tutuyorsak çevre degiskeni tanimlayabilir ve her defasinda -d parametresi ile CVS dizininimizi gösermek zorunda kalmayabiliriz.
$ export CVSROOT=/var/cvsroot/proje1
Fakat çalisma yapilacak sunucu ile kullanici ayri sistemlerde ise bir de kullanici ve makine adresi tanimlamak zorundayiz.
$ export CVSROOT=:ext:kullanici:@sunucu_adresi:/var/cvsroot/proje1
$ export CVS_RSH=ssh
Son satirda gösterilen ssh uzaktaki sunucuya baglanirken kullanilacak protokoldür. ext degeri ise “external” anlamina gelir ve sunucunun disarida oldugunu belirtir.
CVS Üzerinde Çalismak
CVSROOT çevre degiskenimizi belirledikten sonra cvs sunucuya giris yapabiliriz.
$ cvs login
Buradan sonra CVS sunucusu sifre isteyecektir.
Ilk olarak proje dosyalarini çekelim.
$ cvs co proje1
Kodlarda bir kaç degisiklik yapalim ve sonrasinda CVS sunucuya tekrar projemizi yerlestirelim.
$ vi proje1/dosya1
$ cvs commit
$ cvs update # Proje dosyalari güncellenir
Projeye yeni bir dosya eklemek için add parametresini kullanabiliriz.
$ vi main.c # yeni bir dosya olusturuluyor
$ cvs add main.c # CVS sunucuya main.c dosyasi yükleniyor
$ cvs commit
Varolan bir dosyayi silmek için ise delete parametresini kullanabiliriz.
$ rm sil.c
$ cvs delete sil.c
$ cvs commit
Bir projeyi yeni bir sürüme geçirmek isin ise tag parametresini kullanabiliriz.
$ cvs update
$ cvs tag surum_0.2
Eger herhangi bir sürümü çekmek istersek r parametresini kullanabiliriz.
$ cvs co -r surum_0.1 ornek
Not : Doküman HazirLanirken Baris Simsek’ in
CVS ile Açik Kod Yazilim Gelistirme" Teorisinden FaydaLaniLmistir.
seLametLe..