SORU
19 Mart 2010, Cuma


Kullanarak Büyük bir kuruluşta Mercurial

Bir süre benim kendi kişisel projeleri için Mercurial kullanıyorum, ve ben onu seviyorum. İşverenim SVN CVS bir geçiş düşünüyor, ama Mercurial için itin ben olup olmadığını merak ediyorum (veya başka bir DVCS) yerine.

Cıva ile bir kırışıklık bir depo tek başına fikri etrafında tasarlanmış gibi görünüyor."". proje Bu organizasyon, mevcut CVS deposunda farklı çalıştırılabilir, DLL ve diğer bileşenler düzinelerce vardır, hiyerarşik olarak düzenlenir. Genel yeniden kullanılabilir bileşenler bir sürü, ama aynı zamanda bazı özel müşteri bileşeni vardır, ve müşteriye özel yapılandırmaları. Mevcut yapı uygulamaları genel olarak CVS deposuna dışında ağaçların bazı hazırlanın.

Eğer Mercurial için CVS ' dan hareket edersek, depo/depoları düzenlemek için en iyi yolu nedir? Bir büyük Mercurial depo her şeyi içeren zorundayız? Nasıl iyi ayarlanmış küçük depoları olmalıdır? Bence insanlar bulmak çok sinir bozucu gerekirse çekme ve itme güncellemeleri bir çok farklı yerde, ancak onlar da bulmak can sıkıcı gerekirse çekme/itme tüm şirket kod temeli.

Herkes bu konuda deneyimi veya tavsiyesi?


İlgili sorular:

CEVAP
19 Mart 2010, Cuma


Açıklama: Bu gıt etrafında odaklanmış olduğu başka bir iş parçacığı cross post ama yine de tavsiye mercurial sona erdi. İnce gönderme çapraz umarım genel olarak kurumsal bir çerçevede DVCS ile ilgilenir. Biraz daha bu soruyu uyarlayan:


Yaygın görüşün aksine, bir DVCS kullanarak çok esnek bir iş akışı sağlar çünkü kurumsal bir ortamda ideal bir seçim olduğunu düşünüyorum. İlk DVCS vs CVCS bir kullanma hakkında, en iyi uygulamaları ve özellikle ilgili gıt konuşacağım.

Kurumsal bir bağlamda: CVCS DVCS vs

Eksileri burada/genel artıları hakkında konuşmak olmaz ama çok bağlam odaklanmak. Bir DVCS kullanarak merkezi bir sistem kullanarak daha disiplinli bir ekip gerektiren ortak anlayışı. Bu merkezi bir sistem için kolay bir yol sağlar olmasıdırzorlamakiş akışı, merkezi olmayan bir sistem kullanarak gerektirirdaha fazla iletişimve uzlaşmalar kurulan ayrılmamak için disiplin. Bu havai sebep oluyor gibi görünse de, artan iletişimde yarar gerekli bir işlem yapmak için görüyorum. Takım kodu hakkında iletişim kurmak için, genel olarak işin durumu ile ilgili değişiklikler hakkında ve gerekir.

Disiplin bağlamında başka bir boyut dallanma ve deneyler teşvik ediyor. İşte Fowlers son bliki giriş on Version Control Tools, Bu olay için çok kısa bir açıklama bulmuş Martin bir alıntı.

DVCS için hızlı dallanma teşvik eder deneme. Dalları yapabilirsiniz içinde Subversion, ama onlar aslında tüm görünür insanlar etmemektedir bir şube açmasını deneysel çalışma. Benzer şekilde bir DVCS teşvik-işaret kontrol çalışmaları: tamamlanmamış bir değişiklik yapılıyor, bu hatta testleri, derleme geçemez yerel depo. Tekrar edebilirsin bu bir geliştirici dalında yapın Subversion, ama bu aslında dalları paylaşılan bir alan yapar vardır insanlar bunu yapmak için daha az olasıdır.

DVCS basit metin farklar yerine yönelik döngüsel bir grafikte genel benzersiz tanımlayıcı (DAG) değişiklik izleme sağladıkları için esnek bir iş akışı sağlar. Bu onları şeffaf oldukça önemli olan bir değişiklik, kökeni ve geçmişi izlemenize olanak sağlar.

İş akışları

Larry Osterman (Microsoft Windows dev bir ekip üzerinde çalışıyor) Windows takımında kullandıkları iş akışı hakkında great blog post vardır. En önemlisi:

  • Kaliteli temiz kod sadece bir gövde (ana repo)
  • Tüm geliştirme özelliği dallar üzerinde olur
  • Özellik ekip repo var
  • Onların özelliği şubesine girerek en son gövde değişiklikleri düzenli birleştirme yaparlar (İleri Entegre)
  • Tam özellikleri çeşitli kalite gates örneğin gözden geçirmek, kapsama, Q&A (kendi repo) test gerekir
  • Bir özelliği tamamlanmış ve gövde içine birleştirilir kabul edilebilir kalite varsaEntegre Ters)

Bu depoların her biri kendi başlarına yaşamak zorunda gördüğünüz gibi farklı takımlar farklı şekillerde ilerleyen ayrıştır. Ayrıca esnek kaliteli kapı sistemi uygulamak için olasılığı bir CVCS gelen DVCS ayırt eder. Bu seviyede izin sorunlarınızı da çözebilirsiniz. Yalnızca bir avuç insanın ana repo erişim izin verilmelidir. Bu hiyerarşi her seviye için, ilgili erişim politikaları ile ayrı bir repo var. Nitekim, bu yaklaşım takım düzeyinde çok esnek olabilir. Her takım kendi aralarında kendi takım repo paylaşmak istiyorlar Ol ya eğer sadece Ekip Lideri ekip repo taahhüt nerede daha hierachical bir yaklaşım karar vermek için bırakmalıyız.

Hierachical Repositories

(Resim çalıntı ve Joel spolsky Serkan Utku Öztürk tarafından servis edilir hginit.com.)

Bu noktada, DVCS büyük birleştirme yetenekleri sağlar olsa bile, bu söylenecek kalıraslaSürekli Entegrasyon kullanarak yerine. Hatta esneklik büyük bir anlaşma var bu noktada: gövde repo, CI takım için repo, Q&A repo vb CI.

Kurumsal bir çerçevede Mercurial:

Hg flamewar vs git buradan başlamak istemiyorum, zaten DVCS geçiş göz önüne alarak doğru yolda. Burada yerine Mercurial gıt kullanmak için birkaç neden:

  • Tüm çalıştırmak python desteklenen plattforms
  • Tüm büyük plattforms (win/linux/OS X) birinci sınıfta harika araçlar GUI vdiff araç entegrasyon/birleştirme
  • Svn kullanıcıları için çok tutarlı arayüzü, kolay geçiş
  • Git de yapabileceği pek çok şey yapabilir, ama temiz bir soyutlama sağlar. Tehlikeli operasyonlar her zaman açık. Gelişmiş özellikleri açıkça etkinleştirilmesi gerekir ki uzantıları ile sağlanır.
  • Ticari destek selenik kullanılabilir.

Bir kuruluşta DVCS kullanırken Kısacası, önemli olan en az sürtünme getiren bir aracı seçmek olduğunu düşünüyorum. Başarılı olmak için geçiş için özellikle önemli geliştiriciler arasında değişen beceri (VCS açısından) göz önünde bulundurulması gerekir.

Sonunda işaret etmek istiyorum kaynakların bir çift vardır. Joel spolsky Serkan Utku Öztürk son zamanlarda an article bağımsız DVCS aleyhine bir sürü yenerek yazmıştır. Diğerleri kontra-argüman bu uzun zaman önce keşfettim belirtilmelidir. Başka iyi kaynak Obstacles to an enterprise DVCS hakkında bir makale yazdı nereye Lavabo blog Eric.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Peyton

    Peyton

    28 Aralık 2008
  • snookie77

    snookie77

    2 Mart 2006
  • Sparta Spartanutul

    Sparta Spart

    18 HAZİRAN 2013