2010-01-25 13 views
5

Kullandığımız pencerede kendi svn sunucumuz var. Geliştiriciler bunu kullanır ve kontrol eder. Sadece daha güvenli tarafta olmamız için, bir linux olan rackspace'dan bir sunucu aldık. Yerel svn sunucusundan otomatik olarak haftalık bir senkronizasyon yapmak mümkün mü? Uzaktan kumanda, genellikle uzak bir yedek olarak kullanılacaktır, ancak eğer birisi bir başkası erişmek istediğinde, o zaman bizim bant için herhangi bir statik veya harici IP olmadığı için yapabilirler.svn sunucusu otomatik olarak senkronize edilir

cevap

4

Bunun için svnsync kullanmayı öneririm. İşlem sonrası kancadan tetiklendiğinde, bu araç (svn dağılımının bir parçası), 2 (veya daha fazla) svn sunucusu arasında canlı bir senkronizasyona izin verir.

+0

(önerilir) bu yönde giderseniz, post-commit kanca başarısız olursa, senkronizasyondan çıkarken gotcha'ları okuduğunuzdan emin olun. İşlem sonrası kancaya ek olarak periyodik bir senkronizasyona bakmak isteyebilirsiniz. bir örneği burada bulunabilir http://blogs.atlassian.com/developer/2008/11/subversion_replication_at_atla.html – Dan

0

Yedekleme sunucusu salt okunur olarak kullanıldığı sürece, rsync gibi temel bir şey çalışmalıdır. Ancak, senkronize edilecek hiçbir şey kalmayıncaya kadar senkronizasyonu sağlayan bir yeniden deneme döngüsü uygulamak isteyebilirsiniz. Böylece, bir kişi bir şeyleri işlerken tam olarak senkronize etmeyebilirsiniz. her iki tarafta da okuma/yazma erişimi gerekirse

, git ve kullanım "geriye dönük uyumluluk" olarak istemci tarafında git-svn gibi bir şey kullanmak daha güvenli ve daha kolay olabilir.

Diğer bir seçenek SVK, SVK üzerine inşa dağıtılmış bir sürüm kontrol sistemi kullanmaktır. Ama bu aynı zamanda müşteriler için tamamen şeffaf olmayacaktır.

0

Hepsinin bir depoyu dökümü svnadmin dump kullanabilirsiniz. durumunda olabilecek bağımsız bir biçimde işlemek dökümü aynı komutla birlikte postcommit kanca kullanabilirsiniz sonradan

bu birleştirerek yeniden uygulanması ve etkili başka bir sunucu üzerinde sunucu çoğaltabilirsiniz rsync. Yedekleme sunucunuza sadece okundu olarak erişilebildiği sürece kullanılabilir. Bir arıza durumunda, basit bir svn anahtarı, geliştiricilerinizin yedek sunucuyu kullanmasına izin verecektir.

Ben efendi olur sürece yedekleme sunucusuna yazma yasaklamak size setup acls salık vermek.

peter'ait mentionned diğer çözüm

SVK olabilir, ama bu tam bir otomatik senkronizasyon için kullanılamaz: Her iki sunucularda yapılan Çakışan değişiklikler neler var olur? betik bunu başaramaz veya yönetir. Dağıtılmış birleştirme gibi bir şey bir insan tarafından gözden geçirilmelidir.

Yine başka bir çözüm svn --mirror olacağını yolu

Sen senkronize repo tutmak konusunda daha detaylı bilgi için bu okumaya çalışmalısınız

: How to synchronize two Subversion repositories? :)

İlgili konular