Yazılım geliştirmenin vazgeçilmez parçası olan versiyon kontrol sistemleri (VCS), kod değişikliklerini takip eder, ekip çalışmasını koordine eder ve geçmişe dönük izlenebilirlik sağlar. Bu yazıda en yaygın üç sistemi — Git, SVN (Subversion) ve ClearCase — mimari, özellik ve kullanım kolaylığı açısından karşılaştıracağız.
Üç sistem arasındaki en temel fark mimaridir.
| Özellik | Git | SVN | ClearCase |
|---|---|---|---|
| Mimari | Dağıtık | Merkezi | Merkezi |
| Yerel commit | Evet | Hayır | Hayır |
| Çevrimdışı çalışma | Tam | Kısıtlı | Hayır |
| Tam geçmiş yerel | Evet | Hayır | Hayır |
2005 yılında Linux çekirdeği geliştirmesi için Linus Torvalds tarafından yazılan Git, günümüzde dünyada en çok kullanılan VCS’dir.
Çalışma Dizini → git add → Staging (Index) → git commit → Yerel Repo
↕
git push/pull
Uzak Repo
git init # Yeni repo başlat
git clone <url> # Uzak repoyu klonla
git checkout -b feature/x # Yeni dal oluştur ve geç
git add . # Değişiklikleri sahneye al
git commit -m "mesaj" # Yerel commit
git push origin feature/x # Uzak repoya gönder
git merge main # Dalları birleştir
git rebase main # Değişiklikleri yeniden uygula
git stash # Değişiklikleri geçici olarak sakla
rebase, cherry-pick, reflog…)2000 yılında CVS’in sorunlarını gidermek amacıyla geliştirilen SVN, merkezi bir sunucu üzerinden çalışır. Hâlâ kurumsal ortamlarda ve eski projelerde yaygındır.
SVN’de branches/, tags/ ve trunk/ dizinleri dosya sistemi seviyesindedir; dal oluşturmak aslında sunucuda bir kopyalama işlemidir.
svn repository/
├── trunk/ ← Ana geliştirme hattı
├── branches/
│ ├── feature-x/
│ └── release-1.0/
└── tags/
└── v1.0.0/
svn checkout <url> # Çalışma kopyası al
svn update # Sunucudan güncelle
svn add dosya.c # Takibe ekle
svn commit -m "mesaj" # Sunucuya gönder
svn diff # Değişiklikleri göster
svn log # Geçmişi göster
svn merge <url> # Dalları birleştir
svn revert dosya.c # Değişikliği geri al
svnserve + authz)svn:externals ile bağımlılık yönetimiClearCase, 1992’de Rational Software tarafından geliştirildi; daha sonra IBM tarafından satın alındı. Başta havacılık, savunma ve telekomünikasyon gibi yüksek güvenceli ve denetlenen (regulated) sektörlerde yaygındır.
ClearCase’in en özgün özelliği VOB (Versioned Object Base) ve View mimarisidir:
VOB
└── element/
├── main/
│ ├── 1 (versiyon 1)
│ ├── 2 (versiyon 2)
│ └── feature-x/
│ └── 1
└── ...
Coğrafi olarak dağılmış ekipler için VOB’ları replike eden MultiSite özelliği, kurumsal düzeyde kullanımı mümkün kılar.
cleartool alışılmadıkcleartool lsview # Mevcut view'ları listele
cleartool setview myview # View'a geç
cleartool checkout -nc dosya.c # Dosyayı düzenlemeye aç
cleartool checkin -m "mesaj" dosya.c # Değişikliği kaydet
cleartool lshistory dosya.c # Dosya geçmişini göster
cleartool diff -pred dosya.c # Önceki versiyonla karşılaştır
cleartool mkbl -full BASELINE_1 # Baseline oluştur
| Özellik | Git | SVN | ClearCase |
|---|---|---|---|
| Mimari | Dağıtık | Merkezi | Merkezi |
| Çevrimdışı commit | ✅ | ❌ | ❌ |
| Dallanma hızı | Çok hızlı | Yavaş | Orta |
| Merge kalitesi | Çok iyi | Orta | İyi (UCM) |
| İkili dosya desteği | Orta (LFS) | İyi | İyi |
| Erişim kontrolü | Kaba | İnce | Çok ince |
| Denetlenebilirlik | Orta | Orta | Çok yüksek |
| Öğrenme eğrisi | Orta-Dik | Düz | Çok dik |
| Kurulum maliyeti | Düşük | Orta | Çok yüksek |
| CI/CD entegrasyonu | Mükemmel | İyi | Zor |
| Topluluk / ekosistem | Devasa | Orta | Küçük |
| Büyük repo performansı | Orta | İyi | İyi |
Proje türü nedir?
│
├── Açık kaynak / web / startup
│ └── → Git (GitHub / GitLab / Bitbucket)
│
├── Kurumsal, orta ölçek, basit iş akışı
│ └── → SVN (veya Git'e geçiş planla)
│
└── Havacılık, savunma, DO-178C / AS9100
├── Mevcut süreçler ClearCase etrafında mı kurulu?
│ └── → ClearCase (kısa vadede)
└── Yeni proje / modernizasyon
└── → Git + güçlü CI/CD + politika araçları
Savunma sanayii gibi sektörlerde ClearCase’den Git’e geçiş giderek yaygınlaşmaktadır. Bu süreçte dikkat edilmesi gereken noktalar:
git-cc veya clearcase2git araçları VOB geçmişini Git’e taşırCODEOWNERS, branch koruma kuralları ve zorunlu inceleme (required review) özellikleri kullanılabilirgit commit -S) ve koruma dalları iz kaydını güçlendirirDoğru araç, projenin ölçeğine, sektörün gereksinimlerine ve ekibin olgunluğuna bağlıdır. Ancak günümüzde yeni bir projeye başlıyorsanız Git neredeyse her zaman ilk tercih olmalıdır.