CVS ile Subversion Arasındaki Fark

Anonim

CVS vs. Subversion

Eşzamanlı Sürümler Sistemi (Eşzamanlı Sürüm Oluşturma Sistemi veya CVS olarak da bilinir), ücretsiz bir yazılım revizyon kontrol sistemidir - yani, belgeler, programlar ve bilgisayar dosyalarında saklanan diğer bilgilerdeki değişiklikleri yöneten halk). Birden fazla geliştiricinin işbirliği yapmasına izin verir.

Subversion (SVN olarak da bilinir), dosyaların geçerli ve önceki sürümlerini (kaynak kodu, web sayfaları ve dokümantasyon gibi) korumak için kullanılan bir sürüm kontrol sistemidir. CVS'nin doğrudan bir yükseltmesi ve onun en uyumlu halefi. Ayrıca açık kaynak kodlu bir teknolojidir ve Apache Software Foundation, Free Pascal, MediaWiki ve Google kodu gibi çok sayıda projede yaygın şekilde kullanılmaktadır.

CVS, istemci sunucu mimarisi kullanır; bu, bir sunucunun belirli bir projenin geçerli bir sürümünü (veya sürümlerini) depoladığı ve geçmişi kaydettiği anlamına gelir. İstemci daha sonra, sunucuya bağlanmadan önce tamamlanmış projenin bir kopyasını kontrol etmek için sunucuya bağlanır. Böylece müşteri, projenin bu kopyası üzerinde çalışabilir ve daha sonra yaptığı değişiklikleri kontrol edebilir. Bir müşterinin belirli bir projenin bir kopyasını kontrol etmesine izin vermek yanında, CVS aynı anda birden fazla müşterinin çalışmasını ve aynı projeye aynı anda check-in yapmasını sağlar. Müşteriler, projenin kendi çalışma kopyasındaki dosyaları değiştirebilir ve bu düzenlemeleri sunucudan gönderebilir.

Subversion taahhüt eder - yani geçici değişiklikler dizisi yaratır ve onları kalıcı yapar - gerçek atomik (ya da her şeyin meydana geldiği ya da olmadığı bir dizi veri işlemi) işlemler yapar. Subversion ayrıca kullanıcıların dosyaları yeniden adlandırmalarına, kopyalamasına, taşımalarına ve / veya kaldırmalarına olanak tanır; Ancak, bu dosyalar tam düzeltme geçmişini muhafaza edecektir. Bu sistem ayrıştırılabilir çıktı, doğal olarak istemci / sunucu katmanlı kitaplık tasarımı ve dallandırma ve etiketleme işlemlerini ucuz işlemler (dosyanın boyutundan bağımsız olarak) kullanır. PHP, Python, Perl ve Java için dil bağları var. Subversion, aynı zamanda, verinin boyutuna değil, değişim boyutuna göre maliyeti de getirir.

CVS, bir projenin farklı dallarını idare edebilir; diğer bir deyişle, aynı projenin farklı yönleri veya permütasyonları kaynak projeden ayrılabilir ve CVS tüm sürümleri proje hata düzeltmeleri için bir şube oluştururken, şu anda geliştirilen farklı bir sürüm yeni özellikler ve önemli değişiklikler içerebilir ve aynı projenin bir dalı oluşturabilir).

Özet:

1. CVS, birden fazla kullanıcının aynı proje üzerinde işbirliği yapmasına izin verir; Subversion, dosyaların mevcut ve önceki sürümlerini korur.

2. CVS, kullanıcıların aynı projeye giriş yapmalarını ve değişiklik yapmalarını sağlar; Subversion gerçek atom işlemleri olarak taahhüt eder.

3. CVS, bir projenin farklı dallarını idare edebilir; Subversion ayrıştırılabilir çıktı kullanır.