SORU
15 NİSAN 2009, ÇARŞAMBA


Bir ağ üzerinde bir GİT repo eşzamanlılık klasörü paylaşılan

Çıplak git deposu (windows) ağ paylaşımında saklanan istiyorum. Linux kullanıyorum ve ağ paylaşım CIFS ile monte dedi. Benim coleague windows xp kullanır ve bir ağ sürücüsü olarak ağ paylaşım automounted (Active Directory, nedense).

Hem bilgisayarlardan repo, eşzamanlılık sorunsuz kullanabilir miyim acaba.

Zaten test ettim ve bana Tamam klon olabilir, ama aynı zamanda aynı repo (itme/çekme), erişim hem de neler olabileceğinden korkuyorum.

İçinde gıt SSS bir başvuru hakkında kullanarak ağ dosya sistemi (ve bazı sorunlar ile SMBFS), ama emin değilim eğer orada herhangi bir dosya kilitleme tarafından yapılan ağ/sunucu/windows/linux - şüphem yok.

Kimseye bir ağ paylaşımında bir git repo, sorunsuz bir sunucu olmadan, ve kullandı?

Teşekkür ederim

PS: paylaşımları ile sunucuya erişim yok çünkü bir http Sunucusu (ya da git-daemon) kullanmaktan kaçınmak istiyorum. Ayrıca, sadece bir çek basabiliriz biliyorum, ama paylaşmak repo/kod-geri nedenlerden dolayı gereklidir.

Güncelleme:< / ^ br .< / ^ br . Endişelerimin bir ağ hatası olasılığı değildir. Öyle olsa bile, gerekli dalları yerel yapardık ve bizim kaynakları derlemek mümkün olacak.

Ama biz genellikle sık sık işlemek, ve/rebase gerekiyor genellikle birleştirme. Benim bakış açısından, bu en iyi seçenek olacağını bir merkez repo paylaşım (yani yedekleri emin), ve her ikisi de klon gelen tek ve kullanmak için rebase.

Ama, bunu sık sık yapıyoruz aslında nedeniyle, korkuyorumrepo yolsuzluk/dosyaeğer öyle bir şey olursa ikimiz de aynı anda. itme/çekme Normalde edebiliriz . ben^>bağırmakbirbirimize her zaman biz uzaktan erişim repo :) ama daha iyi bir bilgisayar/ağ ile güvenli olurdu.

Ve mümkündür ki GİT bir iç mekanizma bunu yapmak (beri biri olabilir itmek için bir repo, süre çalışabilirsin, ama bulamadım henüz kesin bir şey henüz.

Güncelleme 2:< / ^ br .< / ^ br . Paylaşım sürücüsünde bir repo olurduçıplakrepo, çalışma kopyasını içeren değil.

CEVAP
15 NİSAN 2009, ÇARŞAMBA


Git inandığım dosya kilitleme, minimal bir ağ dosya sistemi üzerinde paylaşılan kaynak ile ilgili bu tür sorunların ana nedenidir gerektirir. Nedeni bu yanına kar kalır en dosya bir Git repo--- tüm olanlar bu form veritabanı nesnesi--- adında bir özet, içeriklerini ve değişmez bir kere oluşturulur. Yani iki müşteri farklı içerik için aynı dosyayı kullanmaya çalışırken sorun çıkmıyor.

Diğer bölümü nesne veritabanıdır yanıltıcıdır-- hakemler saklanır dosyalar altında "Evet" dizini (veya "dolu başvuruları") ve bu değişiklik: ancak refs/* dosyaları küçük ve her zaman yeniden yerine düzenlenmiş. Bu durumda, Git bir geçici yeni hakemin yazar ".kilit" hedef dosya üzerinde dosya ve adlandırır. Eğer dosya sistemi 1 ** anlambilim saygı duymuyorsa, o güvende. Bile değil, olabilecek en kötü bir yarış ref dosyanın üzerine olurdu. Ancak bu can sıkıcı karşılaşma, neden yolsuzluk gibi: olabilir bu durum sizi zorlamaya paylaşılan repo ve itmek gibi başarılı, oysa aslında başka biri yaptı. Ama bu sadece çekerek (iptalleri diğer adam ise birleştirme) tarafından düzenlenmiş ve yine bastırıyor olabilir.

Özetle, ben öyle düşünmüyorum repo bozulması sorunu da burada--- doğru şeyler gidebilir biraz yanlış nedeniyle kilitleme sorunları, ama tasarım Gıt repo olacak zararı en aza indirmek.

(Yasal Uyarı: Bu teoride kulağa hoş geliyor, ama ben bunu test etmek, sadece NFS ve CIFS) üzerinden bunları paylaşmak için bir repo herhangi bir eşzamanlı çekiç yaptım

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • CZTUTORIALS

    CZTUTORIALS

    28 Ocak 2011