Apache Subversion

Apache Subversion

Bilgi
Yaratıcı CollabNet
Tarafından geliştirildi Apache Yazılım Vakfı
İlk versiyon 20 Ekim 2000
Son sürüm 1.14.1 (10 Şubat 2021)
Depozito svn.apache.org/repos/asf/subversion/trunk
Yazılmış VS
İşletim sistemi GNU / Linux , Microsoft Windows , macOS ve BSD ( d )
Tür Merkezi sürüm yönetimi ( d )
Lisans Apache lisans sürümü 2.0
İnternet sitesi subversion.apache.org

Subversion ( svn olarak kısaltılır ), Apache lisansı altında yayınlanan sürüm kontrol yazılımıdır . CVS'nin yerini alacak şekilde tasarlanmıştır . Yazarları gönüllü olarak aynı kavramlara (özellikle merkezi ve tek depo ilkesine) güveniyor ve CVS modelinin iyi olduğunu, sadece uygulamasının geliştirilebileceğini düşünüyor.

Subversion bu nedenle istemci-sunucu modunda çalışır :

Proje başlatıldı Şubat 2000tarafından CollabNet'e tarafından işe sahip Jim Blandy ait Karl Fogel'ın zaten yeni bir sürüm kontrol yazılımı üzerinde çalışıyordu.

14 Şubat 2010SVN , Apache Subversion adını alarak resmi olarak Apache Vakfı'nın bir projesi oldu .

Subversion'ın katkıları

Subversion bazı boşlukları doldurmak için yazılmıştır CVS .

İşte ana katkılar:

Sıradan kullanıcının bakış açısından, Subversion'a geçerken ana değişiklikler şunlardır:

Şubeler ve Etiketler

Subversion'ın özelliklerinden biri, bir etiket , bir şube ve bir dizin arasında ayrım yapmamasıdır . Bu, kullanıcıları için basit bir adlandırma kuralıdır. Bu, bir etiketi ve bir dalı veya başka bir haçı karşılaştırmayı çok kolaylaştırır .

Sürüm kontrol sisteminden bağımsız olarak, çok basamaklı revizyon numaralarının hatırlanması zordur. Bu nedenle, birçok sistem kullanıcının etiketleri hatırlanması daha kolay eşanlamlılar olarak tanımlamasına izin verir. Ancak, Subversion'ın etiket olarak kullanılmasını önerdiği şey tamamen farklı bir yapıya sahiptir: Komut svn copytamamlandıktan sonra, bir Subversion etiketinin hangi revizyon numarasından geldiğine dair kesinlikle hiçbir belleği yoktur. Diğer sistemlerin çoğunda bir etiket bir referans iken , bir Subversion "etiketi" yalnızca bir kopyadır. Yalnızca birkaç önceden tanımlanmış referans mevcuttur: HEAD, PREV, BASE, COMMITTED.

Diğer bir fark, diğer sistemlerdeki etiketlerin zaman içinde noktalanmasıdır, oysa Subversion etiketlerin dosya sistemi alanında noktalar olarak tanımlanmasını önerir.

Genel anlamda bu etiket eksikliği, Subversion'da bazı işlemleri biraz daha az pratik hale getirir. Örneğin, bir dosyada bir etiketten diğerine neyin değiştiğini bulmak, basit bir komut çalıştırmaktan biraz daha karmaşıktır: svn diff -r tag1:tag2 monfichierçalışma dizininde.

Diğer işlemler imkansız hale gelir: örneğin svn log -r tag1:tag2 monfichierçalışmıyor gibi bir komut ve çalışan başka bir alternatif yok.

Bu eksiklikleri telafi etmek için, SVN posta listelerine "etiketlerin" veya "takma adların" eklenmesi önerilmiştir. Bu etiketler, CVS , git veya diğerleri gibi diğer sistemlerdeki etiketlere eşdeğer olacaktır . 2010 yılında bu öneri tartışma aşamasını geçemedi.

Subversion'ın ana komutları

Sipariş verildi Anlam
Ekle Sonraki kaydetme için yeni bir kaynak eklendiğini bildirin.
suçlamak Bir dosyanın satırlarını hangi katılımcının gönderdiğini bilmenizi sağlar.
ödeme (co) Depodan bir sürümü ve meta verilerini yerel olarak alır.
Temizlemek Sabit bir duruma geri getirmek için yerel kopyayı temizleyin.
commit (ci) Depodaki yerel değişiklikleri yeni bir sürüm oluşturarak kaydeder.
kopya (cp) Kaynakları başka bir yere (yerel olarak veya arşivde) kopyalayın.
sil (rm) Bir sonraki işlem için mevcut bir kaynağın kaldırıldığını bildirin (veya bir kaynağı havuzdan doğrudan kaldırın).
fark (di) İki sürüm arasındaki farkı hesaplar (yerel bir kopyaya uygulamak için bir yama oluşturmanıza olanak sağlar).
ihracat Depodan veya yerel kopyadan meta verileri olmayan bir sürümü alır.
ithalat Depoya yerel bir ağaç gönderir.
bilgi Yerel kopyanın kaynağı hakkında bilgi verir.
liste (ls) Bilgi havuzu dizinindeki girişleri listeler.
kilit Bir dosyayı kilitler.
günlük Bir kaynak için commit mesajları verir.
birleştirmek İki sürüm arasındaki farkı hesaplar ve bu farkı yerel kopyaya uygular.
taşı (mv) Bir kaynağın hareketini bildirir.
propdel (pd) Dosyanın sahipliğini kaldırır.
propedit (pe) Bir mülkün değerini düzenleyin.
propget (pg) Bir özelliğin değerini döndürür.
proplist (pl) Özelliklerin bir listesini verir.
propset (ps) Bir özellik ekler.
çözüldü Bir değişiklik çakışmasının çözüldüğünü bildirmek için kullanılır.
eski haline dönmek Bir kaynağın belirli bir sürümüne geri döner. Yerel değişikliklerin üzerine yazılır.
statü (st) Yapılan değişiklikleri gösterir.
anahtarı (sw) Deponun farklı bir sürümüne / dalına geçin.
güncelleme (yukarı) Arşivde bulunan son sürümden mevcut yerel kopyayı günceller.
Kilidini aç Bir kilidi kaldırın.

İstemci ve sunucu uygulamaları

İstemci yazılımı

Subversion sunucusuna erişim, kendi yerel protokolü (varsayılan TCP bağlantı noktası: 3690) veya bir HTTP bağlantısı üzerinden (sunucu daha sonra WebDAV uzantılarını desteklemelidir) kullanılarak yapılabilir. Bu iki erişim modu, özellikle İnternet gibi halka açık bir ağdaki sunucular için tavsiye edilen taşıma katmanında (SSH veya HTTPS tüneli) güvenli hale getirilebilir.

Komut satırı aracı şeklinde, grafik arayüz varoldukları için sağlanan birkaç yazılım ek olarak bağımsız çalıştırılabilir aynı zamanda, ancak eklentileri için özel EDI .

Sunucu yazılımı

Şu anda iki tür alt sürüm sunucusu mevcuttur:

Yardımcı yazılım

Windows sunucularında, VisualSvn Server yazılımı, bir ActiveDirectory sunucusundan hakları yönetmek için Apache + Subversion'ın otomatik konfigürasyon ve bir grafik sunucu yönetim konsolu ile paketlenmesine izin verir ...

Sunucu tarafı

Ayrıca görün

Dış bağlantılar

Notlar ve referanslar

  1. "  https://subversion.apache.org/docs/release-notes/release-history.html  "
  2. Apache Subversion 1.10.7 yayınlandı  " ( 10 Şubat 2021'de erişildi )
  3. "  Subversion  " , directory.fsf.org , Free Software Directory ,2013(erişim tarihi 11 Eylül 2013 )
  4. Subversion posta listeleri
  5. "  Subversion ile sürüm yönetimi  "
  6. Site www.visualsvn.com
  7. USVN Sitesi
  8. Site sventon