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 HEADgiriş masterher zaman kararlıdır (yapıyı en az geçerken olduğu gibi).
Bu en iyi uygulama mı, yoksa mastergeliş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. masterKararlı olmada bazı avantajlar görsem de, bu başarısız taahhütler beni ikna etmiyor.
düzenleme: farketmez masterya 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, gitgarip 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 masterbu ç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ı?
masterbaş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ışı.