2010-10-05 14 views
14

Sadece okuma-erişime sahip olduğum bir SVN açık kaynak projesi var ve bu projenin GitHub'da güncel bir GIT yansıtması oluşturmak istiyorum.Otomatik SVN-> GIT senkronizasyon servisleri var mı?

İlk aynanın nasıl kurulacağını biliyorum ve daha sonra git svn rebase ile güncel kalmasını sağlayın, ancak yine de senkronizasyonu işlemek için bir cron işi çalıştıran bir sunucuya sahip olmanız gerekir. sunucu çalışıyor ve cron işi çalışıyor, periyodik olarak en son git sürümüne geçiyor, vb.

Diğer tüm SVN-> GIT aynalarının sahip olduğu aynı jantı yeniden icat etmeden önce, herhangi bir servis olup olmadığını merak ediyordum SVN-> GIT aynısını benim için otomatikleştirecek (ücretsiz veya ücretli). Herhangi birini biliyor musun?

Açıkçası, otomatik bir servis benim değişikliklerimi birleştiremez - tüm değişikliklerim ayrı bir repoda (veya aynı repoda ayrı bir şube) gerçekleşiyor. Sadece SVN etkileşimini otomatikleştirmenin ve diğerlerinin klonlayabileceği bir ayna oluşturmanın bir yolunu arıyorum.

+1

Ben de açık kaynak kullanmak istiyorum çünkü ben böyle bir hizmet ile ilgilenirim proje SVN'de bir git alt ağacı olarak barındırıldı. Kabul edilen cevap, sorulan soruya cevap vermiyor. Küçük bir işletme için burada bir niş olabilir. Alternatif olarak, github gibi biri zaten mevcut değilse böyle bir hizmet sunmak isteyebilir. – paperjam

cevap

6

Bunun sorumluluğu, projeyi sürdüren insanların eline geçmelidir. Örneğin, nasıl Apache support their projects with Git mirrors. Diğer taraftan, burada yapacak çok fazla "icat" mevcut değil, bence. Değişiklikler için SVN deposuna sürekli olarak anket uygulayabilen bir sunucunuz varsa, git-svn rebase yapmak ve github'a geçmek oldukça basittir. Herhangi bir şirketin bunu kurma konusunda uzman olduğundan şüpheliyim (en azından hiç görmedim).

Bir yan notta, değişikliklerinizi paylaşmak istediğinizde, Git-aynasına basmamalısınız. Git-svn'yi SVN'ye geri göndermek veya geliştiricilere bir yama göndermek daha iyidir. Eğer SVN getirme repo'una basarsanız, git-svn'e bulaşır, inanıyorum. Söylediğiniz gibi, çift yönlü Git-SVN senkronizasyonu otomatikleştirilemez.

5

svn sunucusunda post-commit hooks numaralı telefonu kullanarak git-svn 'ye rebase zamanı geldiğini bildirebilirsiniz.

+3

Bunun üzerine genişletebilir misiniz? –

2

tailor ürününü kullanmalısınız. Herhangi bir VCS'yi tekrar tekrar başka VCS'ye dönüştürebilir. Ve bunu, aşamalı olarak yaparsınız, yani SVN repo'nuzu ilk olarak Git'e dönüştürürseniz, bu işlemin SVN'ye yapıldığını ve tekrar dönüştürdüğünüzü, yalnızca yeni revizyonları dönüştürerek, mevcut Git geçmişine doğru bir tarih olarak eklemenizi sağlar.

iki şekilde işlemi otomatik olabilir

: ya sadece cron veya Anacron gibi bir şeyle, bir zamanlı olarak terzi çalıştırmak veya daha önce önerildiği gibi, böylece şey kararlıdır hemen sonra dönüşüm tetikleme, SVN'de, post-commit hooks kullanmak SVN'ye.

0

svn2github.com tam olarak istediğiniz gibi görünüyor. Gibi herhangi bir svn repo github yansıtır ve repo 2000'den daha az dosya olduğu sürece otomatik olarak güncelleştirir (yukarıdaki el ile güncellemeniz gerekir)

İlgili konular