Git: İki dalı etkileyen bir hatayı düzeltme


16

Git depomu başarılı bir Git dallandırma modeline dayandırıyorum ve bu duruma sahipseniz ne olacağını merak ediyordum:

resim açıklamasını buraya girin

Diyelim ki A ve B olmak üzere iki özellik dalında gelişiyorum ve B, A'dan kod gerektiriyor. X düğümü, A özelliğinde B dalını etkileyen bir hata veriyor ancak bu A ve B özelliğinin birleştirildiği ve Y düğümünde ve test tekrar dallanmadan ve bir sonraki yineleme üzerinde çalışmadan önce yapılmıştır.

Sonuç olarak, hata Z düğümünde B özelliği üzerinde çalışan kişiler tarafından bulunur. Bu aşamada bir hata düzeltmesi gerektiğine karar verilir. Bu düzeltme her iki özelliğe de uygulanmalıdır, çünkü A özelliğinde çalışan kişiler, özelliklerinin bir parçası olduğundan, düzeltilen hataya da ihtiyaç duyarlar.

En son A düğümünden (Y düğümünden dallanan) bir hata düzeltme dalı oluşturulmalı ve daha sonra A özelliği ile birleştirilmeli mi? Bundan sonra her iki özellik de yeniden gelişir ve dallanmadan önce test edilir?

Buradaki problem, sorunu çözmek için her iki şubenin de birleştirilmesini gerektirmesidir. B özelliği A özelliğindeki koda dokunmadığından, düzeltmeyi uygulayarak ve yine de özellik B dalının birleştirilmemiş kalmasına ve A özelliğinden sabit kodu almasına izin vererek Y düğümündeki geçmişi değiştirmenin bir yolu var mı?

Hafifçe ilişkili: Git böcek dallanma kuralı


6
Sadece 'geliştirme' dalındaki hatayı düzeltemez ve sonra A ve B özelliklerinin her ikisinde birleştiremez misiniz?
tdammers

Hmm, en iyisi gibi görünüyor. A özelliğinde birleşme çatışmaları olabilir ama bence bu kaçınılmaz.
Aram Kocharyan

'Geliştirme' dalında daha fazla geliştirme yapmadıysanız ve bugfix 'özellik A' dalında herhangi bir değişiklikle çakışmazsa, herhangi bir çakışma olmaz.
tdammers

Yanıtlar:



5

Muhtemelen, A veya X'de hiçbir hata yoktur. B dalında bulunduğu hatayı düzeltin. Düzeltme normal olaylarda X ve A'ya yayılır.


Teşekkürler, bu hata A özelliğini etkilemediği sürece de mümkündür
Aram Kocharyan

0

Popüler bir iş akışı olmasa da git, Mercurial'da popüler olan bir iş akışı revizyona güncellemek X, hatayı orada düzeltmek ( X2 olarak ) ve daha sonra birleştirmeyi Y(Mercurial'da bir çift birleşim olurdu ) yeniden yapmak olacaktır.

Aslında, bu iş akışı içinde daha kolay githerkesin geçirildikten sonra yana Yüzere Y2'ye sonra orijinal hakemler Ykaybolacak ve sonunda çöp toplanacaktır. In hgsize manuel depo çeki düzen vermek için bu teslimleri şerit olurdu.

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.