Cabang harus bekerja dengan baik, berdasarkan pengalaman saya menggunakannya dalam ulasan pra-komit di pekerjaan sebelumnya.
Perhatikan saat itu, kami menggunakan ulasan pra-komit hanya untuk tambalan penting untuk kode kandidat rilis produksi, jadi tidak ada banyak cabang (perubahan rutin dilewatkan melalui ulasan pasca-komit).
Karena Anda tampaknya akan menggunakan ulasan pra-komit untuk semua perubahan, Anda mungkin perlu mengelola sejumlah besar cabang. Jika Anda mengharapkan pengembang membuat satu perubahan "dapat ditinjau" per minggu, Anda akan memiliki sekitar 50 cabang setiap tahun untuk setiap pengembang dalam tim. Jika Anda menggunakan potongan pekerjaan yang lebih kecil - seperti yang membutuhkan waktu 1, 2, 3 ... hari - kalikan 50 dengan 2, 3, 5 ....
Berikut adalah beberapa pertimbangan lain yang perlu dipertimbangkan jika Anda menginginkannya dengan cara terbaik .
1. menangani kasus ketika kode blokir tertunda diperlukan untuk anggota tim lain
Menetapkan, memantau, dan menyelesaikan konflik terkait tenggat waktu tinjauan kode. Per ingatan saya akan ulasan pra-komitmen terhadap perubahan rutin yang saya tangani di salah satu proyek sebelumnya, tenggat waktu yang wajar adalah sekitar 3 hari dan waktu untuk mulai mengkhawatirkan adalah ketika tinjauan tidak selesai lebih dari 1 hari setelah pengiriman.
Sebagai perbandingan, pada ulasan pasca-komitmen, persyaratan ini jauh lebih santai (saya menggunakan tenggat waktu 2 minggu dan mulai mengkhawatirkan setelah 1 minggu) - tetapi karena Anda menargetkan ulasan pra-komitmen, ini mungkin tidak menarik.
2. menggabungkan konflik ketika mengirimkan kode yang ditinjau
Apa yang harus dilakukan jika komit untuk kode yang ditinjau diblokir oleh perubahan yang bertentangan yang dilakukan oleh orang lain saat kode menunggu tinjauan?
Beberapa opsi yang perlu dipertimbangkan adalah
- gulung balik ke awal dan mengharuskan pengembang menerapkan kembali dan meninjau kembali perubahan
Untuk kasus itu Anda mungkin perlu mengatasi dampak negatif pada semangat tim yang mungkin (akan!) miliki.
- meneruskan tanggung jawab penggabungan kepada anggota tim lain ("master gabungan")
Untuk kasus itu, Anda juga perlu memutuskan apakah penggabungan per se harus melalui peninjauan pra-komitmen atau tidak - dan jika ya, lalu apa yang harus dilakukan jika yang bergabung pada gilirannya bertemu dengan konflik lain.
- abaikan perubahan yang dilakukan terhadap kode yang ditinjau pada tahap penggabungan.
Untuk itu Anda mungkin perlu mengatasi dampak negatif terhadap semangat tim terkait dengan fakta bahwa kode yang dilakukan berbeda dari yang telah ditinjau.
- menemukan cara untuk menghindari konflik.
Pendekatan langsung adalah memungkinkan hanya satu pengembang pada saat yang sama untuk memodifikasi set file tertentu - meskipun ini tidak akan melindungi Anda dari jenis perubahan yang tidak memodifikasi file secara langsung, tetapi berdampak pada mereka melalui perubahan API internal. . Anda mungkin juga menemukan bahwa "penguncian pesimistis" semacam ini membuat perubahan di seluruh sistem dan refactoring yang dalam cukup merepotkan.
Sebagai perbandingan, tidak akan ada masalah seperti itu dalam ulasan pasca-komit (karena kesepakatan ini dengan kode yang sudah digabungkan menurut definisi) - tetapi karena Anda menargetkan ulasan pra-komit, ini mungkin tidak menarik.
3. memuat pengembang yang sedang menunggu peninjauan
Menetapkan kebijakan eksplisit untuk apakah pengembang yang mengirimkan ulasan harus beralih ke tugas baru atau melakukan sesuatu yang lain (seperti misalnya mengejar resensi).
Sebagai perbandingan, ulasan pasca-komitmen hampir tidak memerlukan kebijakan eksplisit (karena itu wajar untuk melanjutkan ke tugas berikutnya setelah Anda melakukan kode dan mempertimbangkan tenggat waktu ulasan adalah satu atau dua minggu) - tetapi karena Anda menargetkan ulasan pra-komitmen, ini mungkin tidak menarik.