Sorun
Yaklaşık 10 geliştiricisi olan bir yazılım projesindeyim, kaynak kodunu Mercurial üzerinden paylaşıyoruz. Her sürüm için bir geliştirme ve üretim şubemiz var. Proje süresince tekrar tekrar bir şubeden kaynak kodu aldık, yani v1 yazılımın daha önceki sürümleri için yama ve bakım dallarına giriyordu, yani v2.
Bu, kodun yanlış şubeye gittiğini fark etmezsek, ya yanlış taahhüdü desteklemeye harcanan zamanla ya da yanlış (muhtemelen QAd olmayan) koda ulaşıp yanlış şubeye dağıtılmasına neden olur.
Şube ve birleştirme tasarımımız / yöntemimiz
v1-test v1-patch1 v1-patch2
^---------^-----------^ v1-prod
/ / \ \
-----------------------/ \ \ v1-dev
\ \ \
--------------------------\ v2-dev
\ \ \
^-------^------------- v2-prod
v2-test v2-patch1
Dolayısıyla, bir sürüm geliştirme dalında, hazır olana kadar , tüm sürümlerin ve bakımın yapıldığı tek bir test / UAT / Üretim dalı için dallayacağız. Etiketler bu şubenin sürümlerini oluşturmak için kullanılır. V1 test edilirken, v2 için bir dal oluşturulacak ve geliştiriciler yeni özellikler üzerinde çalışmaya başlayacak.
Gerçekleşmeye eğilimli olan şey, bir geliştiricinin v2-dev dalı nedeniyle v1-dev veya v1-prod'a iş yapması ya da daha kötüsü, v2-dev'i v1-prod (veya benzer hatalar) ile birleştirmesidir.
Çoğu geliştiriciye -prod dallarına erişmemelerini söyleriz , ancak kod yine de gizlice girer . Bir grup daha üst düzey geliştirici -prod dalına `` bakar ''.
V2 geliştirmeye yeni başlamış olsa da, sorunları düzeltmek için v1'e giren oldukça ağır bazı yamalar olabilir. Yani v1 sadece garip küçük yamayı almıyor olabilir.
Şimdiye kadar denediklerimiz
- Kapı bekçileri ile ayrı bir ürün dalı olması. A-prod şubesi, adı aracılığıyla uyarıları yükseltmelidir ve çoğu geliştiricinin bu şubede olması gerekmez. Bu sorunu gerçekten azaltmadı.
- Geliştiriciler arasında bu sorunun farkındalığını arttırmak, onları daha uyanık hale getirmek için. Yine bu pek başarılı olamadı.
Yanlış branşta çalışan geliştiriciler için gördüğüm olası nedenler
- Çok karmaşık bir şube tasarımı
- Paralel olarak çoklu branşlarda aktif gelişme. (Proje çığ modelini kullanma belirtileri sergilemektedir .)
- Geliştiriciler DVCS'yi yeterince iyi anlamıyor
Biraz alakalı olan okuduğum sorular
Bu soruyu yanlış dallara girmemeye dair okudum ve görsel ipuçlarıyla ilgili cevapların yararlı olabileceğini hissediyorum. Ancak yaşadığımız sorunların daha temel bir sorunun belirtisi olmadığına tamamen ikna olmadım.
Görsel ipuçları sayesinde, bunları komut satırına kolayca dahil edebiliriz, ancak takımın yaklaşık yarısı görsel ipuçlarını nasıl ekleyeceğimi bilmediğim tutulmayı kullanır.
Soru
Yazılımımızı, proje yönetimini veya yönetişim biçimini, zamanımızı alan veya dağıtılan kodumuzu kirleten yanlış şubeye indirgemek (ideal olarak durdurmak) için hangi yöntemleri kullanabiliriz?
Yukarıda belirtildiği gibi katkıda bulunabileceğine inandığım nedenlerle ilgili özel yorum takdir edilecektir, ancak bu yanıtınızı sınırlandırmamalıdır.