Ekibimiz FogBugz & Fırın / Mercurial'dan Jira & Stash / Git'e geçti. Git Flow modelini dallanma için kullanıyoruz, özellik dallarından alt görev dalları ekliyoruz (Jira özelliklerinin Jira alt görevleri ile ilgili). Üst şubeye geri birleştirmek için bir çekme isteği oluşturduğumuzda (genellikle geliştirir, ancak özellik dalına geri giden alt görevler için) bir gözden geçiren atamak için Stash'ı kullanırız.
Bulduğumuz sorun, özellik durumlarının en iyi planlanması ve dökümü ile bile, birden fazla geliştirici aynı özellik üzerinde birlikte çalışırken, ön uçta ve arka uçta, bağımsız bir kod üzerinde çalışıyorlarsa, ayrı dallarda bir geliştirici diğerini bloke eder.
Biz geliştikçe birbirimizin dalları arasında çekmeyi denedik. Ayrıca, her geliştiricinin, geliştirilirken entegrasyonu test etmek için birden çok daldan alabileceği yerel entegrasyon dalları oluşturmayı denedik. Son olarak ve bu şimdiye kadar bizim için muhtemelen en iyi şekilde çalışıyor gibi görünüyor, ancak biraz daha fazla yük ile, özellik dalından hemen yarasadan bir entegrasyon dalı oluşturmayı denedik. Bir alt görev dalı (özellik dalının dışında) çekme isteği ve kod incelemesi için hazır olduğunda, bu değişiklik kümelerini el ile bu özellik entegrasyon dalında birleştiririz. Daha sonra, ilgilenen tüm geliştiriciler bu entegrasyon dalından diğer bağımlı alt görev dallarına çekebilirler. Bu, herkesin bağımlı olduğu herhangi bir şubeyi kod incelemesini geçmesini beklemesini önler.
Bunun mutlaka bir Git sorunu olmadığını biliyorum - kendi iş sürecimiz ve kültürümüzle karışık, birden çok dalda birbirine bağlı kod üzerinde çalışmakla ilgili. Geliştirmek için katı kod inceleme politikamız yoksa (gerçek entegrasyon dalı) geliştirici 1, geliştirici 2'nin geliştirmesi için geliştirmek üzere birleştirilebilir. Diğer bir komplikasyon da, özelliği QA'ya teslim etmeden önce kod inceleme sürecinin bir parçası olarak bazı ön testler yapmamız gerektiğidir. Bu, ön uç geliştirici 1, doğrudan arka uç geliştirici 2'nin kolundan git, eğer arka uç geliştirici 2 biterse ve çekme isteği bir hafta boyunca kod incelemesinde oturuyorsa, ön uç geliştirici 2 teknik olarak çekme isteğini / kod incelemesini oluşturamaz çünkü kod inceleyicisi test çünkü arka uç geliştirici 2 '
Sonuç olarak, bu durumda hangi rotaya gittiğimize bağlı olarak kendimizi paralel bir yaklaşımdan çok daha seri bir şekilde buluyoruz ve bundan kaçınmak için kullanılacak bir süreç bulmak istiyoruz.
Bahsettiğim son şey, kodu incelenmemiş ve sonlandırılmamış dallar arasında kod paylaşarak gerçekleştirmemizdir, ancak özünde başkalarının beta kodunu kullanıyoruz. Bir dereceye kadar bundan kaçınabileceğimizi sanmıyorum ve bunu bir dereceye kadar kabul etmeye hazırız.