Menghindari Grid of Doom ™ di Git-Flow

8

Proyek saya mengikuti model percabangan Git Flow . Pengembangan terjadi pada develop, yang digabung ke dalam masterdan ditandai di sana untuk rilis. Perbaikan terbaru terjadi di cabang yang bercabang saat ini master.

Namun, pengembangan saat ini juga membutuhkan perbaikan terbaru, sehingga setiap cabang perbaikan terbaru juga digabung menjadi develop.

Ini membuat grafik revisi yang sangat jelek, terutama pengembangan / perbaikan terbaru sering digabungkan dalam jangka waktu pendek:

Grafik revisi jelek

Apakah ini masalah yang biasanya dialami orang-orang dengan Git-Flow, dan apakah ada perbaikan yang mudah untuk itu?

Hannes Struß
sumber
2
Seberapa sering Anda merilis versi baru dan Anda menggunakan cabang perbaikan terbaru hanya untuk perbaikan yang tidak bisa menunggu sampai rilis yang dijadwalkan berikutnya?
Bart van Ingen Schenau
@ BartartIngenSchenau dapat beberapa kali sehari, tetapi biasanya setiap beberapa hari. Cabang perbaikan terbaru hanya untuk perbaikan yang tidak bisa menunggu, ya.
Hannes Struß
4
Mengapa estetika suatu grafik revisi merupakan masalah?
1
Tidak rebase jenis menyelesaikan masalah ini?
Cuthbert
1
@Cuthbert sampai batas tertentu, tetapi Anda tidak dapat mengubah master kembali ke pengembangan tanpa memaksa, yang tidak ada pilihan.
Hannes Struß

Jawaban:

2

jadi masalah Anda adalah bahwa Anda menggabungkan setiap hot fix dua atau tiga kali? (Pertama untuk menguasai, lalu untuk mengembangkan, terakhir dari mengembangkan untuk menguasai lagi)?

ya, itu dia! Tidak bisa menghindarinya, perbaikan terbaru harus digabungkan menjadi pengembangan

Tentu, tetapi mengapa bergabung dari berkembang menjadi master jika tidak ada yang benar-benar berubah?

Lihatlah salah satu dari master<-develop<-hotfixgabungan tersebut: seharusnya tidak ada perubahan yang sebenarnya di sana (perbaikan terbaru sudah langsung digabungkan untuk dikuasai, setelah semua). Jika tidak ada perubahan, jangan lakukan itu.

Dalam kasus apa pun, menurut dokumen Anda yang ditautkan, satu-satunya penggabungan dari pengembangan menjadi master harus dilakukan melalui cabang rilis. Alih-alih, Anda membuat master tetap sinkron dengan cabang pengembangan (tidak stabil) Anda - jangan.

Tak berguna
sumber