Subversion'da Git Flow'u kullanmanın önündeki engeller


10

İşteki ekibim Subversion'u VCS olarak kullanarak yeni bir projeye başlıyor (bu soruyu amacı için bu seti taş olarak düşünebilirsiniz). Hala projenin erken aşamalarındayız ve bir dallanma modeli üzerinde anlaşmaya çalışıyoruz. Önceki projemiz, mevcut sürümlere yönelik düzeltmeleri ve yamaları yönetirken sorunlara yol açan standart olmayan bir sürüm modeline dayanıyordu.

Farklı dallanma modellerinin oldukça karmaşık olduğunu gördüm, ancak oldukça açık bir şekilde anladığım bir model git akışı . Subversion'da bunun bir varyasyonunu uygulamanın ne kadar zor / istenmeyen olacağını merak ediyorum. Açıkçası, dallarda işbirliği yapan insanlar açısından bazı farklar olacaktır. Özellik dalları, yerel depolarla sınırlı olmak yerine merkezileştirilmelidir, ancak modelin diğer kavramlarının anladığım kadarıyla Subversion'da çoğaltılabilir olması gerekir.

Bu yaklaşımın dezavantajları veya zorlukları neler olacaktır. Duyduğum şey SVN'de Git'e göre "birleştirme pahalı". Ancak bunun pratikte ne anlama geldiği veya dallanma modeli gibi bir git akışını kullanma yeteneğimizi nasıl etkileyeceği konusunda net değilim.

Bu yaklaşımla ilgili en büyük endişe ne olacaktır. Subversion'da daha doğal olan benzer açık bir yaklaşım var mı?

Yanıtlar:


12

Gitflow en iyi kaynak kodu sürümlendirme ve dallandırma uygulamalarına dayanır. Bu konuda çok iyi bir makale Gelişmiş SCM Dallanma Stratejileri

Vance'in bağlantılı makalede vurguladığı nokta, farklı dalların farklı rollere sahip olmasıdır . Şunların rollerini tanımlar:

  1. Mainline (buradan tüm şubeler)
  2. Geliştirme (geliştirme çalışmalarının yapıldığı yer)
  3. Bakım (bakım işinin yapıldığı yer)
  4. Birikim (Serbest bırakılmaya hazırlanırken işleri bir araya getirme)
  5. Paketleme (serbest bırakma için yapıyı paketleme)

Gitflow'da bunlar:

  1. Geliştirmek
  2. özellik dalları
  3. Düzeltme dalları
  4. Serbest bırakma dalları
  5. Usta

Dallanma makalesi Perforce düşünülerek yazılmıştır. Performans, svn gibi merkezi bir VCS'dir. Mükemmel tanımladığı dallanma örüntüleri svn.

Fark edilmesi gereken anahtar, gitflow'un svn'ye nasıl taşındığı değil, aynı temel dallanma kavramlarının ve dalların rollerinin farklı VCS yapılarına nasıl uygulanacağıdır.

Ben ediyorum şiddetle bunu çok fazla kredi yapamaz, makale okuma önerilir. Orada tarif edilen şeyler svn eşlemek kolay bulacaksınız bir gövde / ana hat inşa felsefesi dayanmaktadır.


1
Gitflow tasarımını yönlendiren fikirlere geri dönmek, orijinal sorunun akıllıca bir geliştirmesidir!
user40989

@ user40989 Vincent Driessen'in (nvie) bu dallanma kavramını ortaya koyduğundan ya da okumadığından ya da kendi başına yeniden keşfettiğinden emin değilim. Her iki durumda da, sürüm kontrolü yoluyla bir çalışma akışı için gerekli rollerin tanınması, yaklaşımlar ve en iyi uygulamalar arasındaki benzerlikleri görmeyi kolaylaştırır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.