Saya baru-baru ini menemukan sebuah artikel MSDN tentang percabangan dan penggabungan dan SCM: Branching and Merging Primer - Chris Birmele .
Dalam artikel tersebut mereka mengatakan 'big bang merge' adalah antipattern yang menggabungkan:
Big Bang Merge - menunda cabang yang bergabung ke akhir upaya pengembangan dan berusaha menggabungkan semua cabang secara bersamaan.
Saya menyadari bahwa ini sangat mirip dengan apa yang dilakukan perusahaan saya dengan semua cabang pengembangan yang diproduksi.
Saya bekerja di perusahaan yang sangat kecil dengan satu orang yang bertindak sebagai peninjau akhir + otoritas gabungan trunk. Kami memiliki 5 pengembang (termasuk saya), masing-masing dari kami akan diberi tugas / bug / proyek terpisah dan kami masing-masing akan bercabang dari trunk saat ini (subversi) dan kemudian melakukan pekerjaan pengembangan di cabang kami, menguji hasilnya, menulis dokumentasi jika perlu, lakukan peer review dan loop umpan balik dengan pengembang lain, dan kemudian kirim cabang untuk ditinjau + bergabung pada perangkat lunak manajemen proyek kami.
Bos saya, satu-satunya otoritas di repositori trunk, sebenarnya akan menunda semua ulasan cabang sampai satu titik waktu di mana ia akan melakukan review sebanyak yang dia bisa, beberapa cabang akan dilempar kembali untuk peningkatan / perbaikan, beberapa cabang akan bergabung ke dalam bagasi, beberapa cabang akan terlempar ke belakang karena konflik, dll.
Ini tidak biasa bagi kita untuk memiliki 10-20 cabang aktif yang duduk dalam antrian tinjauan akhir untuk digabung menjadi bagasi.
Kami juga sering harus menyelesaikan konflik dalam tahap peninjauan akhir dan penggabungan karena dua cabang dibuat dari trunk yang sama tetapi memodifikasi bagian kode yang sama. Biasanya kita menghindari ini dengan hanya menata kembali batang pohon dan menerapkan kembali perubahan kita dan menyelesaikan konflik kemudian mengirimkan cabang baru untuk ditinjau (orang miskin rebase).
Beberapa pertanyaan langsung yang saya miliki adalah:
- Apakah kita menunjukkan pola yang sangat anti yang digambarkan sebagai 'big bang merge'?
- Apakah beberapa masalah yang kita lihat adalah hasil dari proses penggabungan ini?
- Bagaimana kita bisa meningkatkan proses penggabungan ini tanpa meningkatkan hambatan pada bos saya?
Sunting: Saya ragu bos saya akan melonggarkan cengkeramannya di repositori trunk, atau membiarkan pengembang lain bergabung ke trunk. Tidak yakin apa alasannya tetapi saya tidak benar-benar berencana untuk mengangkat topik karena sudah diangkat sebelumnya dan ditembak jatuh lebih cepat. Saya pikir mereka hanya tidak mempercayai kami, yang tidak masuk akal karena semuanya dilacak pula.
Wawasan lain apa pun tentang situasi ini akan dihargai.