2011-03-06 24 views
5

Kaynak sürüm denetimi sistemimizi Subversion'dan Git'e değiştirmeyi düşünüyoruz. Mevcut kurulumumuzdaki sınırları zorluyoruz ve git ile çalışmanın daha iyi olacağını düşünüyoruz."Git kümesi" nasıl ayarlanır

Ofiste her zaman bir birincil sunucu ve veri merkezimizde çalışan bir ayna kullandık. Yansıtma, birincil sunucuya gelen taahhütleri proxy yapacak şekilde yapılandırılmıştır. Bu şekilde iki makine, tek bir depo gibi çalışıyordu, ofisimizde iken veya başka bir yerde olduğumuzda veri merkezindeki makineye bağlı kalmamızı sağladı.

İki makineye sahip olmak, bizi bant genişliğinden kurtarıyor ve hızı artırıyor; bu da bizim için önemli bir şey çünkü bizim de temel dağıtım aracımız olarak subversion kullanıyoruz.

Geçtiğimiz günlerde Hindistan'da bir geliştirme mağazası satın aldık ve aynı kod üzerinde çalışacaklar. Bant genişliği sınırları ve gecikme sorunları nedeniyle, Hindistan'da bir aynaya sahip olmak da çok kullanışlı olacaktır.

Git'e geçerken, benzer bir kurulum arıyoruz. Birden fazla git deposunu nasıl davranabilirim? İdeal olarak, aynı depo için otomatik olarak diğer sunuculara yayılacak bir depoya taahhütte bulunmak istiyorum.

+0

Eğer gitolite kullanmak isterseniz, belgelerinin ayna oluşturma ile ilgili bazı bilgileri vardır: https://github.com/sitaramc/gitolite/blob/pu/doc/mirroring.mkd – Cascabel

+0

Bu belgede de belirttiği gibi, gerçekten birden fazla depoya iten kullanıcılara sahip olamaz. Bu baş ağrısı için bir reçete - iki kullanıcı aynı anda farklı reposlara bastığında ne olacağını hayal edin. Neyse ki, daha ağır işlem getiriliyor (özellikle klonlanıyor) ve aynalar bunun için iyi çalışıyor. – Cascabel

+0

gitolite yansıtma için güncelleştirilmiş link: http://gitolite.com/gitolite/mirroring.html – Paul

cevap

1

Genel olarak sizin için bir sorun olmayacaktır çünkü yerel olarak işleyeceksiniz. Hiç bir şey yapmanıza gerek olmayabilir. Yine de iter ve çeker daha yavaş olabilir. Bu sizi rahatsız ediyorsa, yapabileceğiniz birçok şey vardır.

"Yetkili" ağacımız olarak github kullanıyoruz, ancak oraya itmiyoruz (bizim code review system yok) ve üreticilerimiz (ve bazı geliştiriciler) oradan çekmiyoruz.

Github'a yapılan her itme, bir anında yansıtma işlemi gerçekleştiren gitmirror projemin bir veya daha fazla örneğine bir post-receive hook yangın yapar. Bu aynalar genellikle githubun yaklaşık bir saniyesinde güncellenir. Merkez repo'ya herhangi bir şey olursa, başkalarının bunu fark etmeyeceği oldukça olasıdır.

+0

Başta github dışında kullanmak için gitmirror yazmış olduğumu not etmeliyim ki burada farklı bir sunucuyu bilgilendirmek için post-commit bir kanca kullanıyordum şeyler güncellendi ve güncellemeler çoğaltılmalıdır. Github burada önemli bir rol değil, ancak post-alamet kancaları işleri oldukça kolaylaştırıyor. – Dustin

İlgili konular