Versiyon kontrol yazılımında mevcut gelişimi bakım gelişiminden ayırmanın önerilen yolu nedir?


10

Git'i kullanarak yönetilen bazı yazılım uygulamalarım var. Sadece uzun vadede sürdürmeyi planladığım yeni bir sürüm 2.x yayınladım (çoğunlukla hata düzeltmeleri). Bu arada, sürüm 3.x üzerinde çalışmaya başlamak istiyorum. Bunu yönetmenin önerilen yolu nedir? 2.x sürümü için bir şube oluşturmalı ve master üzerinde 3.x geliştirmesi yapmalı mıyım? ya da başka bir yol?


Gelişme ve istikrar için farklı şubeler var.
Oded

Peki ana dalda genellikle ne olur? (şimdiye kadar her zaman orada her şeyi yaparım)
laurent

Ne masterdemek istediğine karar vermelisin . Bu sadece bir etiket.
Oded

Yanıtlar:


13

Burada bir şeyler yapmanın çok ilginç bir yolu tarif edildi: Başarılı bir Git dallanma modeli

Çok ilginç buldum, ama henüz kullanmadım.

Çok iyi, istendiği gibi makalenin söylediklerinin (çok) kısa bir toplamı:

  • Ana dal yalnızca her biri bitmiş kilometre taşlarını temsil eder (yani Sürüm 1.0, 1.1, 1.2 vb.)
  • Geliştirme kendi dalında yapılır (uygun olarak "geliştirme" olarak adlandırılır, kim düşünebilirdi?). Bir özellik tam sürümü her yapıldığında geliştirme dalı Ana dalda birleştirilir.
  • Gelişimden ayrılmak, özellik dallarıdır. Bunlar, bir sonraki (veya gelecekteki) sürüm için tek özellikleri temsil eder. Geliştirme dalıyla birleşirler.
  • Gelişimden gelen bir diğer dal "serbest bırakma" dalıdır. Bu, yalnızca küçük ayrıntıların temizlenmesi gereken neredeyse eksiksiz bir sürüm temsil eden bir daldır. Geliştirme dalıyla ve sonuçta Ana dalla birleşir
  • Sürümlerinizden birinde ciddi bir hata bulursanız, ana daldan "Düzeltme" dalları dalı (yani "Kullanım konami koduna girerse, programımız ana sabit diski yeniden biçimlendirir ..."). Buggy salınımından dallar ve düzeltme bittiğinde ana dal VE VE devlok dalına geri birleştirilir.

Kısaca bu, ama bana güvenin, makaleyi daha ayrıntılı bir şekilde açıklıyor ve yararlı görselleştirme grafiğiyle anlamak çok daha kolay.


2
Cevabınızdaki öneriniz hakkında biraz açıklama yapmalısınız, tercihen insanlar model hakkında genel bir fikir edinmek için bağlantıyı takip etmek zorunda kalmayacaklardır. Bağlantılar awol gitme alışkanlığına sahiptir ve cevaplar kendi başlarına durmalıdır ...
yannis

+1 İş yerinde kullandığımız hemen hemen bu ve gerçekten işe yarıyor.
Ed James

1
Bunun yaygın olarak "kararlı gövde" veya "özellik dalı" modeli olarak adlandırıldığına inanıyorum.
sleske

"Ana dal yalnızca her biri bitmiş kilometre taşlarını temsil eder (yani Sürüm 1.0, 1.1, 1.2 vb.)" Sürüm 1.0, 1.1, 1.2, 2.0, 1.3, 2.1, 1.4, 2.2, 3.0, 1.5 bu düzen, bu gerçekten kafa karıştırıcı olurdu. Benim tahminim, bültenlerin yapıldığı en fazla bir akım olduğu konusunda örtük bir varsayım olduğu, benim pratiğimde durum böyle değil. Erken evlat edinenler ve daha istikrarlı bir şeyler isteyen insanlar var.
AProgrammer

Uzun vadede bir dal, orada neler olduğunu bilmenizi kolaylaştırmak için bir etiketten başka bir şey değildir. Yani bu şekilde sevmiyorsanız, Master şubesini sadece belediye başkanının kararlı sürümleri için kullanmaktan ve daha küçük artımlı sürümler için bir "Deneme" Şubesine (ya da ne demek istersen) sahip olmaktan alıkoyan hiçbir şey yoktur.
Sorcy

5

Benim ilkem, şube ne kadar kısa vadeli olursa, şube yapısında o kadar derin olması ve isminin o kadar belirgin olmasıdır. Şube ne kadar uzun olursa, şube yapısında o kadar sığ olur ve adı daha genel olur.

Böylece ustanızı daha uzun vadeli (3.X) sürüm için tutarsınız ve bu dalı belirli bir adla değil (sürüm kodu adı veya daha da kötü sürüm numaraları ile) genel bir adla (master, trunk, devel, ...) adlandırmaya devam edersiniz. uygulamada geç pazarlık kararına çok fazla bağımlı olan)

Şubeler için düz bir isim alanına sahip olan ve şubelerin eşdeğer olduğu git gibi bir sistemde çok önemli değil. Şubeler için hiyerarşik bir ad alanına sahip olan clearcase gibi bir sistemle daha fazla önemlidir (V4 şubesinin tam adı ana / v1 / v2 / v3 / v4 ...


+1 ama bu bağlamda derin ve sığ gerçekte ne anlama geldiğini bilmiyorum, belki bu terimleri biraz genişletebilirsiniz?
Michael Durrant

Bir ağaç yapma dalları düşünüyor. Bagajdan veya başka bir şubeden çıkabilirler. Sığ dal ve gövde arasındaki dallanma adımı sayısının az olduğu, derin dallanma adımı sayısının önemli olduğu anlamına gelir. Küçük ve önemli olan çoğunlukla görecelidir, ancak her yeni sürümün gövdeden öncekinden bir adım daha uzak olduğu şemaları gördüm. Düz bir ad alanı kullanıyorsanız, bu o kadar da kötü değil. Ad alanı hiyerarşikse (açık harf, CVS, RCS, Perforce de bu şekilde kullanılabilir), daha uzun ve daha uzun adlar alırsınız.
AProgrammer
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.