Bir meslektaşım, CI sunucumuzu yapıda başarısız olan işleri geri almak için yapmayı düşündüğünü söyledi, bu yüzden HEAD
giriş master
her zaman kararlıdır (yapıyı en az geçerken olduğu gibi).
Bu en iyi uygulama mı, yoksa master
geliştirici düzeltene kadar kırılmaktan daha mı sorunlu olabilir ?
Benim düşüncem, taahhüdün geri alınmasının, taahhüt ve düzeltmeyi okuma görevini daha karmaşık hale getireceğidir (geliştirici geri döndürmek ve sonra düzeltmeyi yapmak zorunda kalır, ki bu da aynı şekilde dağınıktır git log
) düzeltme. master
Kararlı olmada bazı avantajlar görsem de, bu başarısız taahhütler beni ikna etmiyor.
düzenleme: farketmez master
ya da başka bir geliştirme dalı, farketmez , ancak soru aynı kalır: CI sistemi inşa başarısız oldu bir taahhüt geri dönmeli mi?
başka bir (uzun) düzenleme: Tamam, git
garip bir şekilde kullanıyoruz. Şubeler kavramının gerçek CI'ye aykırı olduğuna inanıyoruz, çünkü bir şubeye bağlı kalmak sizi diğer geliştiricilerden ve değişikliklerinden izole ediyor ve şubenizi yeniden düzenlemek ve olası çatışmalarla baş etmek zorunda olduğunuzda zaman kazandırıyor. Herkes master
bu çatışmayı kabul ederse , en aza indirgenir ve her taahhüt tüm testleri geçer.
Tabii ki, bu sizi yalnızca kararlı bir şekilde itmeye zorlar (ya da yapıyı bozarsınız) ve geriye dönük uyumluluğu bozmamak ya da yeni özellikler eklerken özellik değiştirme yapmak için daha dikkatli bir şekilde programlamanızı sağlar.
Bu şekilde veya bu şekilde CI yaparken travmalar vardır, ancak bu sorunun kapsamı dışındadır ( bununla ilgili soruya bakın ). Tercih ederseniz, soruyu cevaplayabilirim: küçük bir geliştirici ekibi bir özellik dalında birlikte çalışır. Bir geliştirici o dalın yapısını bozan bir şey yaparsa, CI sistemi taahhüdünü geri almalı mı yoksa geri almamalı mı?
master
başlamak için asla ulaşılmamalıydı . Gelişme ve özellik dalları bunun için kullanılır. Bu değişiklikler, daha sonra birkaç geliştiricinin tüm yeni özelliklerinin birlikte çalışıp çalışmayacağını ve yalnızca test edildiğinde ustalaşabileceğini test edebileceğiniz bir entegrasyon dalı gibi bir şeye gider. Ya da en azından bu olası bir iş akışı.