Git Flow gibi bir birleşme stratejisi gerçekten bir kalıp karşıtı mı?


30

Şirketim Git kullanıyor ve kendine özgü bir dallanma şeması kullanıyor - iş master'da yapılıyor ve şubeler sürümlere ayrılıyor. Bu, bir yinelemede yapılan tüm çalışmalar dalda kaldığı sürece iyi çalışır, ancak kritik bir üretim sorunu ortaya çıkarsa, çalışmanın bir şekilde her iki dalda da yapılmasını sağlamalıyız.

Son zamanlarda, bu şubelerle biraz eğleniyoruz. Tüm işlerin her dalda yapılmasını sağlamak bir idari baş ağrısıydı ve bir dalda sabitlenmiş bazı böcekler ilgili olanı belirtene kadar ustalaştırmaz.

Ben rastladım Git Akış bir süre geri ve bunu bizim soruna bir çözüm olacağını hissediyorum - açıklamasına tüm yol sızıntı değil kodunu veya geri aşağı tüm yol. Buradaki tek gelişme, benim öncülüğümün bu tür bir gelişmenin bir anti-patern olduğunu ifade ettiğini gösteriyor - iki hafta boyunca öfkeyle gelişiyor, ardından birleşme çatışmalarını çözmek için üçünü harcıyor.

Tamamen aynı fikirde olduğumdan tam olarak emin değilim ve ortaya çıkardığımdan beri işler normal gibi başladı. Ancak son zamanlarda bununla ilgili bazı önemli acı noktalarımız oldu.

Bilmek istiyorum - neden bu tür bir geliştirme planı bir kalıp karşıtı olarak görülüyor? gerçekten bir anti-desen?


1
Ted Dziuba'nın eski blog yayınından "Kural 3" bölümü, nasıl bir anti-kalıp olabileceğini göstermeye yardımcı olabilir.
Isxek

5
IMO, sürüm kontrolü hakkında ne kadar çok zaman harcıyorsanız, tüm kullanıcı -> araç olgusuyla ilgili her şeyde yanlış olan şey.
Erik Reppen

@ErikReppen: Herkesin aklını sürüm kontrolünden uzaklaştırmak ve herkesin alışabileceği bir sürece sahip olmak istiyorum. Bu şekilde, bunun bir anti-kalıp olup olmadığı gibi şeyler hakkında endişelenmemize gerek yok.
Makoto

6
@Makoto KISS'i ihlal eden her şey bir anti-paterndir, IMO. Burası VCS uzmanı kullanıcıları beni deli etmeye meyillidir.
Erik,

6
"Antipattern" terimi, insanların beyinlerini kapatması için genellikle bir bahane olarak kullanıldığı için "en iyi uygulama" gibi bir şeydir. Lider size hangi deneyimle yaşadığını ve neden kötü olduğunu açıkça söyleyemiyorsa bu görüşü kabul etmeyin.
Kyralessa

Yanıtlar:


30

Çoğunlukla modelin özellik dallarına değiniyor. Özel dallar çok uzun zaman önce dallar aylarca sürdüğü ve versiyon kontrol sistemlerinin hayatlarını kurtarmak için birleşemediği bir anti-patern ilan edildi. Bir veya iki hafta sürecek Özelliği dalları sürekli birleştirme için, özellikle çok az sorunları var dan develop bu süre içinde özellik dalı haline. Bundan daha uzun bir şey hala tavsiye edilmez.

Git akışının özellik dalı tarafını kullanmasanız bile, diğer parçalar temiz birleştirme elde etmenizi sağlamakta ve değişikliklerin doğru yönde yapılmasını sağlar.


3
Özellik dalları ile olan deneyimim ya da onları yapma şeklim, bir yinelemeden daha fazla yaşamalarına izin verilirse onlarla gönül yarası olabileceğidir. Tüm özelliklerin yayınlanmadan önce yinelemeyle birleştirilmesi gerektiğini belirten bir kural, birleşmelerin gönül rahatlığını hafifletmek için iyi olurdu - ve oğlan, bunların arkasında ciddi bir gönül yarası vardı ...
Makoto

6
Tecrübelerime göre, yerel ustaları yakın zamanda bir usta ile bir arada tuttuğunuz ve uygun şekilde geliştirdiğiniz sürece etrafta dolanabilirsiniz.
Jan Hudec

2
@ JaHudec ... ya da etrafta yatmakta olan ve bir şekilde çelişen iki şeye sahip olana kadar. Bunun yapılmasıyla ilgili her zaman bir genel bakışa sahip olmalısınız ...
johannes

5
Biraz okumaya devam ediyor ve Martin Fowler'in referansı , sürekli bir entegrasyon akışında yapılan özellik dallarının çalışabileceğini gösteriyor - eğer çoğu insanın yapmayı düşündüğünden daha küçük ısırıklarla yapılıyorsa. Yani, bir anlamda haklısın - bir özellik dalında yaşama süresi uygun göründüğü için iki haftadan az. Ancak, özellik dallarının kendilerinin nasıl bir model olduğunu görmüyorum.
Makoto

3
Haklısın. Onlar sadece, birleşmeden çok uzun yaşadıklarında bir anti-paterndir. Bazen insanlar, altta yatan nedenleri hatırlamadıkları zaman bir fikre karşı hala rayda kalırlar.
Karl Bielefeldt

21

Birleşme komik bir şey - ne kadar az sıklıkla yapılırsa, o kadar zor, ne kadar çok insan korkarsa o kadar az yapacaktır.

Çözüm, dalların çok fazla sapmasına ya da dalların kullanılmasına izin vermemesidir.

İnsanlar bunu anlarsa, muhtemelen birleşme ile ilgili çok fazla sorun yaşamayacaksınız, olmasa da - dalları eğitimsiz iyi bir fikir olmayabilir.


1
Hayır, dal kullanmamak bir başlangıç ​​değildir. Diğer birincil sorun, işin aynı kodda iki farklı yerde yapılabileceği, bu yüzden de bunu hafifletmek için bir şeyler yapabiliriz.
Makoto

12
@ makoto, koddaki şeyleri sık sık çözmek, çatışmaları daha az sıklıkta yapar. Bir fonksiyonelliğin fonksiyonlara / sınıflara sade bir şekilde ayrılması ya da modüller arasındaki belgelenmemiş varsayımlardan kaçınılarak daha üst düzey olabilir. Ardından değişiklikler daha yerelleşir.
maksim1000

1
@ maxim1000 Katılıyorum. Sanırım biri bir zamanlar "Bir VCS modüler [ayrık] mimariye alternatif bir yoksul adamdır" demişti
8DH

İlk paragraf için +1. Ve evet, eğitim olmadan gitflow benzeri bir çıkmaz
daitangio
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.