Başarılı bir Git Dallanma Modeli olan bu makalenin deneyimli DVCS kullanıcıları arasında çok iyi bilindiğini düşünüyorum.
Kullandığım hg
çoğunlukla, ama bu tartışma hiç DVCS için gayet iddia ediyorum.
Mevcut iş akışımız her geliştirici ana depoyu klonlar. Kendi yerel depomuza kod yazıyoruz, testleri gerçekleştiriyor ve eğer her şey yolunda giderse ustaya itiliyor.
Bu yüzden Jenkins gibi CI sunucularını kurmak ve gelecekteki hazırlık sistemi (şef, kukla, ansible, vb.) İle iş akışımızı iyileştirmek istiyoruz.
Gerçek kısım
Yukarıdaki model güzel çalışıyor ancak şubeler CI'yi kırabilir. Özellik dalı, development
CI ve birleştirmeyi düzgün hale getirmek için orijiyle senkronize edilmelidir (makaleye göre, şube olacaktır ), değil mi?
Diyelim Alice ve Bob iki özellik üzerinde çalışıyorlar. Ama Alice ertesi gün yapılır. Bob'un özelliği bir hafta sürüyor. Bob bittiğinde, değişiklikleri eskimiş (belki Alice bazı sınıfları yeniden düzenledi / yeniden adlandırdı).
Bir çözüm, her sabah geliştiricilerin master/origin
herhangi bir değişiklik olup olmadığını kontrol etmek için çekmesi gerektiğidir . Alice söz verirse, Bob çalışma alanına çekilmeli ve özellik dalının güncel olmasını sağlamalıdır.
- Bu iyi bir yol mu?
- Bu dallar ana repoda mı bulunmalı (yerel klonda değil mi?) Her geliştiricinin yeni bir dal oluşturabilmeleri için GitHub / Bitbucket'teki ana repoya ayrıcalık vermesi gerekir mi? Yoksa bu yerel olarak mı yapılır?
- Son olarak, dalları ile senkronize değilse makale tarafından sunulan model CI kırmak gerekir
origin/master
. Her gece inşa etmek istediğimizden, geliştiriciler işten ayrılmadan önce çekilmeli ve birleşmeli ve her özellik dalında da CI çalıştırılmalı mı?