Git-flow, birden fazla ana sürümün korunduğu bir projede nasıl etkili bir şekilde kullanılabilir?


18

Projelerimin birkaçını git akışı iş akışına taşıdım ve çok seviyorum. Ancak, aynı anda birden fazla ana sürümün korunduğu bir projeyle çalışırken, işlerin sorunsuz akmasını sağlayan en iyi uygulama bulamadım.

Özellikle, "ücretsiz sürüm" ve "ücretli sürüm" veya başka bir paralel model sürdürmüyorum, Sürüm 1'in yayınlandığı ve küçük sürümlerle (1.1, 1.2, vb. .) Sürüm 3 piyasaya sürülünceye kadar, bu noktada 2 ve 3'ün bakımının yapılacağı, 4 sürümün yayınlanmasına kadar ... fikri anlarsınız.

Gitflow iş akışında bir projenin iki veya daha fazla desteklenen sürümünü aynı anda nasıl tutuyorsunuz veya tutuyorsunuz?


Herhangi bir örnek atm yok, ama bildiğim projeler farklı büyük sürümler için ayrı depolar ve birinden diğerine backport yamaları kullandı.
ProdigySim

@ProdigySim: Veri noktası için teşekkürler, ama sadece ben mi yoksa izlemek ve yönetmek için belirli bir miktar ek yük ekler misiniz?
HedgeMage

@ProdigySim Bu projelerin git'in dallanma ve birleştirme özelliklerine sahip bir araç kullanmadığından şüpheleniyorum.
Rein Henrichs

@Rein Mercurial kullanıyorlar. Yazılımın paralel büyük sürümlerini izlemek açısından dallamanın çok temiz olacağını düşünmüyorum.
ProdigySim

Sonra şüphem doğruydu. Ve evet, aracınız düzgün bir şekilde destekliyorsa oldukça temiz. git ve Linux çekirdeği bu şekilde yapar.
Rein Henrichs

Yanıtlar:


10

man gitworkflows'git flow' iş akışının büyük babası, genel git iş akışı yönergelerini açıklar; kullanımı pu, next, masterve maintdalları; ve nasıl maintyönetilir. Birden bakım şubesi varsa, onlara isim, örneğin, olabilir maint/1.x, maint/2.xvb.

Anahtar git komutlarının nasıl kullanılacağı değil, makul bir sürecin nasıl oluşturulacağıdır. Sizin için hangi şeylerin önemli olduğuna karar verin (backporting kolaylığı?) Ve bu kısıtlamaları karşılayan bir iş akışı oluşturun.


Ama bu soruya cevap veriyor mu? Yani, git-flow soruda açıklandığı gibi esnek bir serbest bırakma modelini destekliyor mu veya temel git komutlarına geri dönülüyor mu? ("gitworkflows", temel git iş akışı kullanımını, git-git-akışını açıklar.) Git-akış, git birleştirme / dal işlemlerini basitleştirmek için (görünüşte) gittiği için ekipler (değişen derecelerde git-fu kahramanlığı olan) kodlamaya odaklanabilir ve zaman alan "yanlış birleşme" hatalarından kaçının. Git-flow w / git-flow v1.2. {1,2,3, ..} 'i v2.5. {1,2,3, ...} ile aynı zamanda korumak ve geliştirmek mümkün müdür? Belki uzun vadeli serbest bırakma dalları var? Veya master1, master2, ...?
michael

0

Temel olarak, çoğaltmak master, releaseve developsen muhafaza edilir her büyük versiyonu için dalları. Birbirleriyle nasıl etkileştikleri aynı kalır. İçin featuredallar, sadece dalına emin dan geri birleştirmek niyetinde eski şube içine önler istenmeyen bağımlılıkları çekerek,. Daha sonra featureşubenizi tekrar birleştirdiğinizde, uygun her yeni ana sürüm dalına ek birleştirme yaparsınız.


1
Master'ın tüm konusu, yayınlanan her sürümü içermiyor mu?
HedgeMage

@HedgeMage, daha doğrusal bir serbest bırakma döngüsünde böyledir, ancak paralel büyük sürümler için son derece pratik değildir.
Karl Bielefeldt

Düzeltmeler veya farkında değilim kullanarak bazı denenmiş ve gerçek bir hile yoksa bu en pratik çözüm gibi görünüyor. Git-flow'u tanıtmanın bir yolunu arıyordum ve hala (talihsiz bir ön koşul olarak) mevcut sürüm modelimizi koruyabiliyoruz, burada eski sürümleri korumak / geliştirmek zorundayız (sadece düzeltmeler değil). Böylece v5.1.x, v6.1.x yayınlandıktan birkaç yıl sonra (yeni özellikler eklendi, hatalar düzeltildi vb.) Herhangi bir zamanda yaklaşık 2-3 ana sürüm desteklenir ve geliştirilir. Ancak, hata düzeltmelerinin, hatanın bulunduğu her sürüme uygulanması gerekir.
michael
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.