Dalam arti umum, untuk proyek jangka panjang yang mungkin memiliki beberapa rilis selama siklus hidup produk dan membutuhkan dukungan produk sebelumnya, apa cara terbaik untuk menangani versi produk dan percabangan basis kode?
Dalam arti yang lebih spesifik, asumsikan bahwa kontrol versi terdistribusi yang tepat sudah ada (yaitu git) dan bahwa tim berukuran kecil hingga besar dan pengembang dapat mengerjakan beberapa proyek sekaligus. Masalah utama yang sedang dihadapi adalah bahwa ada kewajiban kontrak untuk mendukung versi lama seperti yang ada pada saat itu yang berarti bahwa pengembangan baru tidak dapat menambal kode lama (produk Microsoft Office bisa menjadi contoh dari ini, Anda hanya mendapatkan tambalan untuk tahun fitur yang Anda miliki).
Akibatnya, versi produk saat ini adalah sentuhan yang berbelit-belit karena setiap produk utama memiliki banyak ketergantungan, masing-masing dengan versi mereka sendiri yang dapat berubah di antara rilis tahunan. Demikian juga, sementara setiap produk memiliki repositori sendiri, sebagian besar pekerjaan tidak dilakukan pada batang sumber utama melainkan pada cabang untuk tahun itu rilis produk dengan cabang baru yang dibuat ketika produk dilepaskan sehingga produk tersebut dapat didukung. Ini pada gilirannya berarti bahwa mendapatkan basis kode produk bukanlah hal yang mudah seperti yang mungkin dipikirkan orang ketika menggunakan kontrol versi.