- CVSNT yi kurmak
- Dosya havuzlarını oluşturmak (Repository)
- Güvenlik gruplarını oluşturmak & izinleri tanımlamak
- CVSNT ye ulaşmak
- TortoiseCVS ile ilk projemizi havuza eklemek.
- Detaylı Ayarlar
- Kurulum : Son versiyon (stable/tutarlı sürüm olsun) CVSNT kurulumunu
http://www.cvsnt.com/downloads/
adresinden çekin. Site aynı zamanda paralı başka ürünlerin deneme
sürümlerini de dağıttığı için form üzerinde deneme süresi filan yazabilir,
siz çekinmeyin, CVSNT ücretsiz.
Öncelikle kendinize bir yol haritası çıkarın. Hangi dizine kuracağım, hangi dosya havuzlarım olacak diye. Dosya havuzu altında daha sonra ayrı ayrı "module/modüller" (diğer bir deyişle projeler) açabileceksiniz. Her proje bir modüle karşılık gelecek ve kendisine özgü izinler ile çalışacaktır.
Yukarıdaki adresten indirdiğiniz kurulum dosyanızı çalıştırın, CVSNT nin nereye kurulacağını ve kurmak istediğiniz protokolleri seçin. Protokollerin detaylarını şu adreste bulabilirsiniz. Şuan için bilmemiz gereken pserver protokolünün geri dönüşümü kolay bir şekilde şifrelerimizi gönderdiği bunun güvensiz olduğu, hatta dosya transferlerimizi ve dosyalarımızın içeriklerinin "sniffer" vasıtası ile görülebildiği ve kullanacağımız sserver protokolünün SSL üzerinden şifreleme yaparak tüm işlemlerimizi güvenle yapmamızı sağladığı. İsterseniz Windows üzerinde SSH sunucu çalıştırıp SSH protokolü üzerinden de işlemlerinizi gönül rahatlığı ile yapabilirsiniz.
Kurulumu tamamladı iseniz, Control Panel'e yerleşmiş olan "CVS for NT"nin balık ikonuna tıklayıp detaylara girebiliriz. Öncelikle yapmamız gereken bir adet "SSL-Key" üretmek. Bunu isterseniz OpenSSL kullanarak, ister CACERT sisteminden serbestçe ürettirerek, istersenizde komut satırı kullanarak "C:Program FilesCVSNTgenkey.exe" vasıtası ile yapabilirsiniz, SSL Anahtarınızı oluştuduktan sonra CVSNT yönetim panelindeki SSL kısmında SSL Sertifika ve private/özel dosyalarınızı göstermeniz yukarıda bahsettiğim SSL/:sserver: protokolünü kullanmanız için yeterli olacaktır.
- Repositories/Dosya Havuzlarını oluşturmak : Dosya havuzlarınızı
kuracağınız dizin seçimi önemli çünkü bundan sonra değerli kodlarınız ve diğer önemli
dosyalarınız o dizinde duracak. Eğer windows üzerinde kuruyorsanız ki bu yazı
windows üzerine kurulumu anlatıyor, NTFS dosya sistemi üzerinde kurmanız
güvenliğiniz için gerekli. Örneğimizi NTFS yapısında olan E: diskimizde
Bizim_CVS isimli bir dizin üzerinde gerçekleştirelim ve içinde
Masaüstü, Web gibi ayrı ayrı havuzlar olsunlar. Masaüstü havuzumuzda adı
üstünde Masaüstü/desktop projelerimiz, Web havuzumuzda ile web
sitelerimiz ile ilgili veya web ile alakadar projelerimiz bulunacak.
CVSNT yönetim panelindeki Repositories ekranına gelin, "Add" tuşu vasıtası ile dosya havuzunuzun adını ve yerini belirtin.
Yer : E:/Bizim_CVS/Havuz/Masaüstü
Adı : /Masaustu
Açıklama : Masaüstü uygulamalarımız
Bundan sonra "OK" tuşu ile işlemi onaylamaya kalıyor. Aynı işlemleri Web havuzu içinde yapmamız gerekiyor.
Not: Dosya havuzu altında daha sonra ayrı ayrı "module/modüller" (diğer bir deyişle projeler) açabileceksiniz. Her proje bir modüle karşılık gelecek ve kendisine özgü izinler ile çalışacaktır.
- Güvenlik gruplarını oluşturmak : Sistemin en güzel yanlarından
birisi Windows, Active Directory kullancılarınızın dosya sistemindeki
yetkilerine göre projelere erişim izni verebilmesi. Ben bu yöntemi
irdeleyeceğim, sizler CVS in kendi üzerinde gelen
readers,writers,passwd
dosyaları üzerinden güvenliği de kullanabilirsiniz fakat NTFS üzerinden
güvenliği sağlamak hem daha kolay hem çok daha iyi bir güvenlik yapısı
kurmanızı sağlayacaktır.
Öncelikle bilgisayarınızda veya Active Directory sisteminizde CVS_Yonetim, CVS_MasaustuGelistirici, CVS_WebGelistirici gruplarını oluşturup içlerine ilgili kullanıcılarınızı ekleyin. Dosya havuzunuzun bulunduğu dizine gidip (E:Bizim_CVS) CVS_Yonetim grubu için buraya tam yetki verin (veya kendi istediğiniz seviyede). E:/Bizim_CVS/Havuz/Masaustu dizinine CVS_Yonetim ve CVS_MasaustuGelistirici kullanıcılarınızın erişim izinlerini (yazma hakları ile beraber), web dizinine de CVS_Yonetim ve CVS_WebGelistirici gruplarınızın için izinlerinizi tanımlayın.
Bu durumda ilgili gruplar sadece izin verdiğiniz dizinlerdeki projelere ulaşabilecekler ama diğerlerine ulaşamayacaklardır. İzin verme yöntemi ile alt projelerinize de erişimleri rahatlıkla kısıtlayabilirsiniz.
Not : CVSNT Yönetim ekranında belirtilen "TEMP" dizinine tüm CVS kullanıcılarınızın tam erişim hakkı olması gerekmektedir.
- CVSNT'ye ulaşmak (client) : Dosya havuzunuza istemci (client)
makinalarınızdan ulaşmak için bir kaç metod kullanabilirsiniz.
- Komut satırı kullanmak. Bu yöntem ile tüm cvs işlemlerinizi rahatlıkla yapabilirsiniz. Özellikle MS Windows kafa yapısına sahip bir kullanıcı iseniz olduğunca zor ve görsellikten uzak olacaktır. (tembel de olabilirsiniz tabi :)
- WinCVS kullanabilirsiniz. Yapısı VSS kullanıcılarına tanıdık gelecektir. WinCVS, CVS sisteminde yapmak isteyeceğiniz hemen herşeyi yapmanıza izin verecektir. Ekran görüntülerine buradan ulaşabilirsiniz. Bana göre bu kadar karışık ekranlara gerek yok, tercihim 3. seçenekte.
- Sevgili kaplumbağa Charlie ikonu ile gönlünüze taht kuracak ve genelde
yazılımcılar için sıkıntı olan kodları kaynak kontrol sistemine yollamayı
zevkli hale getirecek olan TortoiseCVS'i
kullanabilirsiniz. TortoiseCVS Windows Gezgini/Explorer ile tam entegre
olur ve değişen, sisteme yeni giren dosyaları rahatlıkla tanımanıza
yardımcı olur.
TortoiseCVS.org sitesinde detaylı ekran görüntüsünü de bulabilirsiniz. Görüntüyü bulmuşken çekip kuruverin :)
- TortoiseCVS ile İlk projemizi havuza eklemek : Gerek WinCVS
gerekse TortoiseCVS yi ilk kullanımınızda "CVS (CVSNT) sunucunuzun" nerede
olduğunu ve güvenlik protokolü, şifre gibi ayarları göstermeniz gerekecek.
Yeni bir modül açma, varolan modülleri alma gibi temel
işlemlerde bu ayarlar zaten önünüze geliyor.
Protocol : SSL (:sserver:)
Server : CVSNT yi kuruduğunuz makina adı (veya ip, hostname)
Port : Network üzerinden erişiyor iseniz CVSNT de belirttiğiniz port. Dokunmadı iseniz 2401 tcp portu.
Repository Folder: Dosya havuzunuzun adı , (Örneğimize göre /Masaustu)
User Name : /Masaustu ne izinli kullanıcınızın adı
Sisteme eklemek istediğiniz bir projenizin ana dizinine sağ tıklayıp CVS > Make new modüle demeniz bu işlem için yeterli. Modül oluşturulduktan sonra aynı dizine tekrar sağ tıklayarak CVS Add seçeneği ile dosyaları sisteme eklemek, sonrasında ise gene aynı dizin için CVS Commit seçeneği ile işlemi onaylamanız gerekecek.
Herhangi bir anda sistemden dosyalarınızı almak için boş bir yerde sağ tıklayıp CVS Checkout menüsünü kullanabilirsiniz. Varolan projenizdeki dosyaları CVSNT sistemindeki en son halleri ile güncellemek için UPDATE menüsü işinize yarayacaktır. Gene dosyaların geçmişleri, hayat hikayeleri için ilgili dosyaya sağ tıklayıp CVS menüsünden History seçeneğine ulaşabilirsiniz.
Eğer bir dosyada değişiklik yapmış iseniz ve sistemdeki ile sizdeki arasındaki farkı bulmak istiyorsanız CVS size text olarak bunun karşılaştırmanızı yapacaktır. Benim tavsiyem bu işler için biçilmiş kaftan olan WinMerge'i kullanmanız. WinMerge dosyalar hatta dizinler arasında detaylı bir karşılaştırma yapmanızı sağlayacaktır. Üstelik TortoiseCVS ile tam uyumlu çalışıyor.
- Detaylı Ayarlar : CVSNT sisteminizde aşağıdaki linkleri takip
ederek
Dosya tiplerinizi tanımlayabilir,
CVS sistemine giren,
değişen her
dosya için bilgi emaili alabilir,
Web üzerinde CVS yapınızı yayınlayabilir,
detaylı izinler verip, kimi kullanıcıların erişimlerini engelleyebilir, script çalıştırabilirsiniz.
Detaylı ayarlar için DevGuy : Free Resources for Software Developers sitesini tavsiye ederim. İçerisinde CVSNT ile ilgili hemen hemen herşeye ulaşmanız mümkün.
- CVS Home
- CVS Book
- CVSNT
- TortoiseCVS
- WinMerge
- CVSNT Release History
- CVSNT Installation for Windows
- Comparison of CVSNT with CVS
- Comparison of CVSNT with Subversion (SVN)
- CVSNT Manual
- Microsoft Visual SourceSafe Roadmap
- Visual SourceSafe: Microsoft's Source Destruction System
- CVS vs VSS
- SVN vs CVS
- Visual Studio CVS
Plugin
06.06.2005
http://www.danalar.org/bpi.asp?caid=155&cid=210
Görüşler
Burada ufak bir onerim olacak. CVS eski ama gercekten son derece olgun ve guvenilir bir kaynak versiyonlama sistemi. Bugune kadar herhangi bir sorunla karsilasmadan kullandik (kullaniyorduk). Taki yeni is yerinde sunucu olarak NT uzerine CVSNT kurana kadar. Sirket politikasi geregi sunucularda windows kullaniliyor, eh ne yapalim deyip CVSNT'yi kurduk ve calistirdik, bir kac ay sorunsuz ve cok yogun bicimde kullandik. Ama bir gun bir anda kullandigimiz IDE ana CVS modullerini listeleyemez oldu (sadece moduller yerine binlerce dosyayi listeliyor). Ayrica CVSNT cilgin gibi bellek sizdirmaya basladi. Surumu guncelleyince sizinti konusu halloldu ama disaridan modulleri hala listeleyemiyoruz (wincvs'te bu ozellik yok). Ayrica bir modulun altindaki bir binary dosya depoda bir sekilde bozuldu ve guclukle bu hatayi giderebildik. Calisiyor ama acikcasi artik guvenemiyorum. Onceki is yerinde dandik bir makinede linux uzerinden calisiyorduk sorunsuz bicimde. (mozilla projesinin CVS kullandigini da hatirlatirim)
CVSNT'nin subversion'a karsi avantajlari bence son derece su goturur. Kullanici acisindan gosterilen ustunluklerin neredeyse hic anlami yok. Sonucta CVSNT CVS'in temel kisitlamalarini tasiyor. Mesela dosya adi , ya da dizin adi degistiremiyorsunuz. Belki tek ustunlugu Wondows domain login olabilmeniz, ama bunun da kendine gore sorunlari var (ozellikle sirketin sifre degistirme politikasi varsa)
Diyecegim su ki eger CVS kullanacaksaniz (ki CVs artik miadini dolduruyor, Subversion yerimi almaya basladi) ve grup seklinde calisiyorsaniz saglam ama eski bir makineye linux, Solaris ya da FreeBSD kurarak onun uzerinde CVS sunucusunu isletin. Ya da illa sunucuyu windows altinda kullanmak istiyorsaniz windows altinda saglam calisan (Visual Sourcesafe haric) bir versiyonlama sistemi bulun
Modül listeleme olayını biz TortoiseCVS [www.tortoisecvs.org] kullanarak aşıyoruz. Yazıda da bahsettiğim gibi WinCVS bana biraz karışık geldi. Belkide VSS i hatırlattığı için soğudum. TortoiseCVS içerisinde Fetch List butonu ile rahat rahat modülleri listeleyebiliyor.
Firmamızın CVSNT si w2003 std server üzerinde duruyor, yanında çalışan başka uygulamalar da mevcut. Şimdiye kadar tek bir hata dışında düzgün çalıştı, o da sizinkine benzer bir şekilde tek bir binary (gif/jpeg) dosyı içeri alıp işlemi sonlandırmadığı için boyutunu büyütmek oldu. Bu sorun client tarafındanmı (firewall vardı client üzerinde ekstradan) yoksa CVSNT den mi tam anlayamadım, çokda detayına bakamadım açıkcası.
Bahsettiğiniz şifre değişim politikası bizde de mevcut ama active directory yapısında dosya alıp verme ile problemim olmadı, dışarıdan erişimlerde de gayet mutluyum. VSS den sonra CVSNT rüya gibi geldi :)
Dosya/dizin taşıma ve isim değiştirme işini CVSNT 2.0.55 sonrası sürümlerinde destekliyor, gerçi ben kullanmadım. Yeni TortoiseCVS sürümününde buna göre entegre olduğunu biliyorum. komut satırında
cvs rename old new
cvs commit -m "Renamed old to new"
ile de yapılabiliyormuş gördüğüm kadarı ile.
Dediğiniz gibi SVN yükselen bir yıldız, bildiğim kadarı ile Pardus ekibi SVN üzerinde çalışıyor ama bunca yıllık CVS miadını dolduruyor demek ve kenara atmak hak yemek olabilir. Özellikle Windows ortamı için (SVN in durumunu bilmiyorum) en iyi seçenek olarak düşünülebilir.
Sevgilerle