Genel anlamda, ürünlerin yaşam döngüsü boyunca birden fazla sürüm alabilen ve önceki ürünlerin desteğini gerektiren uzun vadeli projeler için, ürün sürümlerini ve kod tabanının dallanmasını ele almanın en iyi yolu nedir?
Daha spesifik olarak, uygun dağıtılmış sürüm kontrolünün (yani git) yerinde olduğunu ve ekiplerin küçükten büyüğe kadar olduğunu ve geliştiricinin aynı anda birden fazla proje üzerinde çalıştığını varsayalım. Karşılaşılan en büyük sorun, eski sürümleri destekleme konusunda sözleşmeye bağlı bir zorunluluk olduğu ve yeni geliştirmelerin eski kodları yamalayamayacağı anlamına gelir (Microsoft Office ürünleri bunun bir örneği olabilir, yalnızca sahip olduğunuz yıl).
Sonuç olarak, mevcut ürün versiyonlaması, her ana ürünün, her biri yıllık sürümler arasında değişebilen kendi versiyonlarına sahip birden fazla bağımlılığa sahip olduğu için kıvrımlı bir dokunuş. Benzer şekilde, her ürünün kendi havuzu olmasına rağmen, işin çoğu ana kaynak gövdesinde değil, o yıl için bir ürün dalında, ürün piyasaya sürüldüğünde yeni bir dal ile desteklenebilmesi için yapılır. Bu, bir ürünün kod tabanını almanın, sürüm kontrolünü kullanırken düşünebileceği gibi basit bir mesele olmadığı anlamına gelir.