Bir Subversion Deposunu Dışa Aktarma ve İçe Aktarma: Kapsamlı Bir Rehber
Yazılım projeleri üzerinde çalışırken, net ve etkili bir kaynak kodu yönetim sistemi sürdürmek çok önemlidir. Subversion (SVN) kullanan geliştiriciler için, projenin tamamlanmasının ardından ticari bir SVN hesabının sonlandırılması gibi durumlarda deponuzu taşımak gerekebilir. Geçmişi ve verilerinizin bütünlüğünü koruyarak Subversion deponuzu nasıl dışa aktarıp sonra içe aktarabilirsiniz? Bu blog yazısında, bu yaygın sorunu ele alacak ve bu görevi sorunsuz bir şekilde gerçekleştirmeniz için adım adım bir rehber sunacağız.
SVN Deposu Taşınmasının Temellerini Anlamak
Gerçek sürece dalmadan önce, SVN ile ilgili bazı temel kavramları açıklayalım:
- Depo: Projenizin tüm sürümlerini ve tarihini içeren kod tabanınız için bir depolama yapısı.
- Dosya Sistemi Erişimi: Deposunuzun barındırıldığı sunucudaki dosyaları doğrudan okuma ve yazma yeteneği.
- SVN’deki Arka Uçlar: Subversion çeşitli arka uç depolama yöntemleri kullanabilir, bunlar arasında en yaygın olanları FSFS ve Berkeley DB’dir.
Çoğu durumda, sorunsuz bir geçiş sağlamak için hem mevcut hem de yeni sunucuda dosya sistemi erişimine ihtiyacınız olabilir.
Depoyu Taşıma: Sürecin Açıklaması
1. Arka Ucunuzu Kontrol Edin
İlk olarak, mevcut deponuzun hangi arka ucu kullandığını belirleyin. Deponuzun FSFS (son sürümlerde varsayılan) veya Berkeley DB kullandığını, komutlar aracılığıyla veya sunucu ayarınızı kontrol ederek öğrenebilirsiniz.
2. FSFS için Dosya Sistemi Kopyasını Kullanın
Eğer FSFS kullandığınızı tespit ederseniz, deponuzu taşımak için en basit yöntem:
- Dosya Sistemi Kopyası Yapın: Deponuzu içeren tüm dizini yeni sunucuya doğrudan kopyalayın. Bu, tüm geçmişi ve verileri içerecektir.
3. Berkeley DB için svnadmin dump
ve svnadmin load
Kullanın
Berkeley DB ile çalışırken veya arka uç hakkında emin değilseniz, şu adımları izleyin:
-
Eski Depoyu Dökümleyin:
svnadmin dump /path/to/old/repository > repository_dump.svn
Bu komut, tüm revizyonları ve geçmişi yakalayan tek bir dosya oluşturur, bu dosyayı yeni sunucuya aktaracaksınız.
-
Yeni Boş Bir Depo Oluşturun:
svnadmin create /path/to/new/repository
-
Dump’ı Yeni Depoya Yükleyin:
svnadmin load --force-uuid /path/to/new/repository < repository_dump.svn
--force-uuid
seçeneğini kullanmak, deponun benzersiz tanımlayıcısının (UUID) yeni konumda uyumlu olmasını sağlayarak kullanıcıların çalışma kopyalarını sorun çıkmadan değiştirebilmelerine olanak tanır.
4. Dosya Sistemi Erişiminin Yokluğunu Ele Alma
Dosya sistemi erişiminin mümkün olmadığı senaryolar için, üçüncü taraf araçlar veya betikler gibi alternatif çözümler mevcut olabilir. Süreç genellikle şunları içerecektir:
- Her Revizyonu Tekrar Oynatma: Yeni depoda işlemleri yeniden oluşturmak için
svn log
kullanmak. - Meta Verileri Düzeltme: Veri bütünlüğünü korumak için pre-revprop-change ve post-revprop-change kanca betiklerini düzgün bir şekilde yapılandırmak.
Eğer geçmişi korumak öncelikli bir amaç değilse, daha basit bir seçenek olarak çalışma kopyanızdan yeni depoya içe aktarma yapabilirsiniz. Ancak, bu işlem tarihi revizyonları silecektir, bu da çoğu durumda arzu edilmeyen bir durum olabilir.
Sonuç
Bir Subversion deposunu dışa aktarmak ve içe aktarmak ilk başta göz korkutucu görünebilir, ancak bu açıkça belirtilmiş adımları takip ederek, deponuzu geçmişini koruyarak başarıyla taşıyabilirsiniz. İster FSFS için dosya kopyalama teknikleri kullanıyor olun, ister Berkeley DB için svnadmin dump/load
komutlarını kullanın, artık depo taşımalarıyla başa çıkmak için gerekli bilgiye sahip oldunuz.
Doğru arka uç kontrollerini sağlamak ve gerekli komut satırı araçlarını kullanmak suretiyle, değerli proje verilerinizi geçmiş veya bütünlük kaybetmeden aktarabilirsiniz. Ek sorularınız varsa veya daha fazla yardıma ihtiyaç duyuyorsanız, topluluğa veya ilgili forumlara ulaşmaktan çekinmeyin. İyi kodlamalar!