Stratejik dal
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Kaynak kodu, geliştirme çalışmanızda önemli bir varlıktır. Ancak, birden çok geliştirici dosya güncelleştirmelerinde eşzamanlı olarak çalıştığında kaynak dosyaları etkili bir şekilde yönetmek ve geliştirmek zor olabilir. Kaynak kodu paylaşılan depolarda depolamak, paralel geliştirme çalışmalarını yalıtmak, kod değişikliklerini tümleştirmek ve önceki dosya sürümlerini kurtarmak için bir sürüm denetim sistemi kullanabilirsiniz. Sürüm denetimindeki önemli bir öğe, eşzamanlı geliştirmeyi sağlayan dallanmadır. Stratejik olarak dallanırsanız, yazılımınızın birden çok sürümünün sırasını ve tutarlılığını koruyabilirsiniz.
Team Foundation esnek ve güvenilir bir sürüm kontrol sistemi sağlar. Team Foundation sürüm denetimini kullanarak kaynak kodun, belgelerin, iş öğelerinin ve ekibiniz tarafından üzerinde çalışılan diğer kritik bilgilerin geliştirilmesi sırasında birden çok düzeltmeyi yönetebilirsiniz.
Ekibiniz, birkaç proje sürümü aracılığıyla aynı anda birden çok değişiklik yaparken kodu nasıl yönetir?
Bir sürüm denetim sistemiyle çalışırken, bir dal yapısının nasıl ayarlandığını göz önünde bulundurmanız gerekir. Kaynak kod dosyasını yansıtarak bir dal oluşturabilirsiniz. Ardından kaynağı etkilemeden dalı değiştirebilirsiniz. Örneğin, aşağıdaki çizimde yer alan dal yapısında gösterildiği gibi, MAIN dalı tümleştirme testlerini geçmiş tamamlanmış işlevselliği ve GELIŞTIRME dalı da yapım aşamasında olan kodu içerir. GELIŞTIRME dalındaki yeni bir işlev tamamlandığında ve tümleştirme testlerini geçirebildiğinizde, kodu GELIŞTIRME dalından MAIN dalı olarak yükseltebilirsiniz. Bu işlem ters tümleştirme olarak adlandırılır. Buna karşılık, MAIN dalındaki kodu DEVELOPMENT dalı ile birleştirirseniz, işlem ileri tümleştirme olarak adlandırılır.
Kod dalları oluşturma ve birleştirme hakkında daha fazla bilgi için CodePlex Web sitesindeki şu sayfaya bakın: Team Foundation Server Dallanma Kılavuzu 2.0.
Dallanma ve birleştirme aşağıdaki ilkeleri gerektirir:
Her dal, kodu bu dalla tümleştirme hakkında tanımlanmış bir ilkeye sahip olmalıdır. Örneğin, önceki çizimin dal yapısında, MAIN dalı sahibi olması ve yönetmesi için bir ekip üyesi atayabilirsiniz. Bu üye ilk dal işlemini gerçekleştirmekten, GELIŞTIRME dalından MAIN dalı değişiklikleri ters tümleştirmeden ve DEĞIŞIKLIKLERI MAIN dalından GELİşTİrME dalı'na iletmekten sorumludur. İLEtme tümleştirmesi, MAIN dalı diğer dallardaki değişiklikleri de tümleştirdiğinde önemlidir.
MAIN dalı, her zaman yayına hazır olması için tümleştirme testlerini geçmiş kod içermelidir.
Geliştirme (veya iş) dalı sürekli olarak gelişir çünkü ekip üyeleri değişiklikleri düzenli aralıklarla iade eder.
Etiketler, bir daldaki dosyaların belirli bir zamanda anlık görüntüleridir.
Daha fazla bilgi için bkz . Dosyalarınızın anlık görüntüsünü almak için etiketleri kullanma.
Team Foundation Derlemesi, dallarınız için çeşitli derleme türleri arasından seçim yapmanıza olanak tanır: el ile, sürekli, geçitli, sıralı ve zamanlanmış. MAIN dalında geçitli bir iade derleme türü olması önerilir. Bu, ters tümleştirmeyi işleyebilmeniz için ÖNCE GELİrME dalinin MAIN dalı için tüm gereksinimleri geçirmesi gerektiği anlamına gelir. Ekibinizin, geliştirme dalını yeni bir iade etme işleminin ne zaman etkileyeceğini en kısa sürede bilmesi gerektiğinden, GELIŞTIRME dalı sürekli bir derleme türü çalıştırmalıdır.
Ekibinizin ne sıklıkta ters tümleştirmesi ve ileri tümleştirmesi gerekir?
Aşağıdaki çizimde gösterildiği gibi, en azından bir kullanıcı hikayesini tamamladığınızda ters tümleştirme ve ileri tümleştirme gerçekleşmelidir. Her ekip eksiksizliği farklı şekilde tanımlasa da, bir kullanıcı hikayesinin tamamlanması genellikle hem işlevselliği hem de ilgili birim testlerini tamamladığınız anlamına gelir. YALNıZCA birim testleri GELIŞTIRME dalının kararlılığını doğruladıktan sonra MAIN dalı ile ters tümleştirebilirsiniz.
Birden fazla iş (GELIŞTIRME) dalınız varsa, herhangi bir dal MAIN dalı ile tümleştirildikçe tüm iş dallarına iletme tümleştirmesi gerçekleşmelidir. MAIN dalı kararlı tutulduğundan ileriye dönük tümleştirme güvenlidir. İş dallarının kararlı olduğunu garanti edemeyeceğiniz için iş dallarında çakışmalar veya hatalar oluşabilir.
Tüm çakışmaları en kısa sürede çözmeniz önemlidir. MAIN dalı için geçitli bir iade kullanarak ters tümleştirmeyi çok daha kolay hale getirmenize yardımcı olursunuz çünkü kalite geçitleri MAIN dalında çakışmaları veya hataları önlemeye yardımcı olur. Daha fazla bilgi için bkz . Geçitli iade derleme işlemi tarafından denetlenen bir klasöre iade etme.
Ekibiniz farklı kullanıcı hikayeleri uygulayan kaynakları nasıl yönetiyor?
Aşağıdaki çizimde gösterildiği gibi, kullanıcı hikayesini tamamlamak için iş dalındaki değişiklikleri düzenli aralıklarla iade edebilirsiniz. Aynı dalda aynı anda birden çok kullanıcı hikayesi uygulayabilirsiniz. Ancak, YALNıZCA devam eden tüm çalışmayı tamamladığınızda MAIN dalı ile tümleştirmeyi tersine çevirebilirsiniz. Büyük bir kullanıcı hikayesinin çok sayıda küçük hikayenin tümleştirmesini engellemesini istemediğinizden, kullanıcı hikayelerini benzer boyuta göre gruplandırmanızı öneririz. İki kullanıcı hikayesi kümesini iki dala bölebilirsiniz.
Ekip ne zaman dal eklemelidir?
Aşağıdaki durumlarda dallar oluşturmanız gerekir:
Kodu mevcut dallardan farklı bir zamanlama/döngüde serbest bırakmanız gerektiğinde.
Kodunuz farklı bir dal ilkesi gerektirdiğinde. Yeni ilkeye sahip yeni bir dal oluşturursanız projenize stratejik değer ekleyebilirsiniz.
İşlevsellik bir müşteriye sunulduğunda ve ekibiniz planlanan yayın döngüsünü etkilemeyen değişiklikler yapmayı planlıyorsa.
Yüksek tümleştirme maliyeti oluşturduğundan her kullanıcı hikayesi için dallanma oluşturmamalısınız. TFVC dallanmayı kolaylaştırsa da, çok fazla dalınız varsa dalları yönetme yükü önemli hale gelebilir.
Ekip sürümleri sürüm denetimi açısından nasıl yönetir?
Ekibiniz herhangi bir sprint'in sonunda kodu serbest bırakabilmelidir. Team Foundation Server'ı kullanarak, belirli bir noktada kodun anlık görüntüsünü almak için bir dal etiketleyebilirsiniz. Aşağıdaki çizimde gösterildiği gibi, bir yayın için MAIN dalını etiketleyebilirsiniz. Bu, dalını bu noktada durumuna döndürmenizi sağlar.
Sürümlerde güncelleştirmeleri uygulamanız gerektiğinden, bir yayın için dal oluşturmak ekibinizin gelecek sürümlerle çakışma oluşturmadan sonraki sprint'te bağımsız olarak çalışmaya devam etmelerine yardımcı olur. Aşağıdaki çizimde, bir güncelleştirmenin kodunu içeren ve ikinci sprint'in sonundaki bir yayından sonra MAIN dalı ile ters tümleştirilen bir dal gösterilmektedir.
Yayın için bir dal oluşturduğunuzda, bu dalı en kararlı olan MAIN dalından oluşturmanız gerekir. Bir iş dalından yayın için dallanırsanız, iş dallarının kararlılığı garanti edilmediğinden tümleştirme zorluklarına neden olabilir.