Git depoları proje için nasıl yapılandırılır?


9

Drupal için bir içerik senkronizasyon modülü üzerinde çalışıyorum. Web sitesinde oturan ve içeriği bir web servisi aracılığıyla gösteren bir sunucu modülü vardır. Farklı bir sitede oturan ve içeriği düzenli aralıklarla alan ve içe aktaran bir istemci modülü de vardır.

Sunucu Drupal 6'da oluşturulur. İstemci Drupal 7'de oluşturulur. Sunucunun Druapl 7 sürümüne ihtiyaç duyulacaktır. Ve gelecek yıl piyasaya sürüldükten sonra hem istemcinin hem de sunucunun Drupal 8 sürümüne ihtiyaç duyulacak.

Git ve kaynak kontrolü için oldukça yeniyim, bu yüzden git depolarını kurmanın en iyi yolunun ne olduğunu merak ediyordum? Her örnek için ayrı bir havuz olması durumunda, yani:

Drupal 6 server = 1 repository
Drupal 6 client = 1 repository
Drupal 7 server = 1 repository
Drupal 7 client = 1 repository
etc 

Yoksa sunucu için bir havuz ve istemci için başka bir havuz olması daha mantıklı mıdır?

Şu anda 2 depo var - biri istemci diğeri sunucu için.

Yanıtlar:


7

Proje gerçekten büyük olmadıkça, sunucu ve istemci için alt dizinleri olan tek bir depoya gidip her sürüm için bir şube oluşturacağım. Aynı anda birden fazla sürüme erişmek istiyorsanız, deponun birden çok kopyasına sahip olabilirsiniz.

Birden çok veri havuzunu koruyarak, aktarım değişikliklerini gereğinden fazla zorlaştıracaksınız (yeniden düzenleme düzeltme ekleri uygulamaktan daha kolay). (İmkansız) durumda, birden fazla sürüme uygulanacak hiçbir değişiklik olmayacak, yine de hiçbir şey kaybetmeyeceksiniz ...

Dahası, her zaman birden fazla depoya geçiş yapabilirsiniz: Sadece repoyu klonlayın ve istemediğiniz dalları kaldırın. Diğer yöne gitmek daha zordur.

Yalnızca sunucu ve istemci hiçbir şey paylaşmıyorsa veya kod gerçekten büyükse birden çok depoya giderdim.


Ben bu şekilde gideceğim çünkü Drupal farklı versiyonları şubeler olarak saklıyor. Ben de +1 ama 15 temsilcisi gerekir!
littledynamo

4

Bu tür varyasyonları gördüm ve üzerinde çalıştım. Sunucu ve istemci için alt klasörlerle veya her birinde bir repo bulunan tek bir klasördeki her şey. Projenin her ana bölümü için tek repoyu tercih ediyorum.

Büyük sürüm değişiklikleri durumunda ben de yeni depolar oluşturabilirim. Kesinlikle onlar için farklı şubeleri yok. Şubeler yeni işlevsellik ve belki de kalıcı bir dağıtım şubesinin uygulanması için güçlü olsa da, her zaman çok fazla şeyin uzun süre paralel çalışmasından kaçınırım. Her zaman onları korumak zorunda kalacaksınız (ana dal değiştiğinde yeniden basma vb.), Bu nedenle temel yapılandırmayı mümkün olduğunca basit tutun. Fazladan bir repoya sahip olmak (alçakgönüllü görüşüme göre), farklı eyaletlerdeki şubeleri dengelemekten daha az acı verici. Özellikle istemci ve sunucu fazla kod paylaşmıyorsa.

Drupal ve sürümler arasındaki farkların ne kadar güçlü olduğu hakkında çok şey bilmiyorum. Bu yüzden farklı depoları tercih etme amacım daha çok Rails deneyimime dayanıyor. Sürümler arasında bazen dosyaların nasıl adlandırıldığı veya klasör yapısı (örneğin varlık boru hattı) gibi şeylerde büyük bir fark vardır ve bu da yeni bir repo oluşturmayı daha rahat hale getirir. Drupal'ın (veya başka bir çerçevenin) daha az farklılığı olabilir, o zaman mevcut repoda devam etmek uygun olacaktır.


1
Teşekkürler. Bu ilginç çünkü Drupal Core modüllerinin ayrı sürümleri şube olarak sakladığını keşfettim. Sanırım bu yapıyı taklit etmek benim için anlamlı. Ben +1 olurdu ama 15 temsilcisi gerekir!
littledynamo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.