Dengan git dan github biasa saya bisa melakukan review kode hanya dengan membuat permintaan tarik dari cabang fitur yang saya kerjakan ke cabang utama. Bagaimana saya melakukan review kode dengan git-flow? Dengan alur kerja seperti "fitur git flow selesai, saya bingung di mana ulasan kode benar-benar terjadi dan bagaimana git-flow atau git dapat memfasilitasi tinjauan itu.
43
Jawaban:
Kami menemukan masalah persis ini baru-baru ini. Kami sangat suka aliran git, karena menggunakan tingkat semantik yang baik (menggunakan tingkat yang sama yang Anda gunakan dalam diskusi tim: "Saya akan mulai fitur A" lebih dari "Saya akan membuat cabang, checkout itu"), sementara git sangat "implementasi" tingkat (yang baik dan bermanfaat juga, tetapi berbeda).
Masalah yang kita miliki adalah
git feature finish
, ketika menggabungkan cabang ke dalam pengembangan, sementara kami ingin permintaan tarik dikirim dan (ini penting) digabung oleh reviewer , bukan committer, untuk menekankan kepemilikan tim.Solusi kami saat ini:
Ini konsisten dengan praktik kami, dengan kelemahan mengharuskan kami untuk menghapus cabang sendiri (karena kami tidak mendapatkan penyelesaian alur). Langkah selanjutnya kita mungkin akan menerapkan kembali beberapa bagian dari aliran git (karena ini terutama tentang perintah chaining git) untuk memperhitungkan ini (memiliki bagian "pembersihan" dari akhir, tanpa penggabungan).
sumber
Proses tim saya bekerja dengan menggunakan untuk ini adalah sebagai berikut:
git flow feature start module_1
develop
dan cabang fiturmodule_1
git flow feature finish module_1
develop
cabang didorong ke GitHub (GitHub otomatis akan menandai permintaan tarik sebagai / tertutup digabungkan ketika hal ini terjadi)Biasanya semua proses ini dilakukan oleh penulis asli tetapi itu tidak diperlukan. Siapa pun di tim kami dapat ikut serta dan mengambil proses ini kapan saja. Yang harus mereka lakukan adalah checkout cabang fitur dan melanjutkan proses. Siapa yang pernah menjalankan
git flow feature finish module_1
akan mengalami kemewahan cabang fitur lokal mereka dihapus tetapi siapa pun yang memeriksa cabang harus melakukan ini secara manual jika mereka ingin menggunakan sesuatu sepertigit branch -D feature/module_1
.Untuk perbaikan terbaru kami menggunakan pendekatan serupa dan membuat permintaan tarik di GitHub sebelum kami menyelesaikan perbaikan terbaru.
sumber
Jika Anda melakukan tinjauan kode, maka saya akan menganggap bahwa Anda memiliki repositori pusat yang berisi kode "resmi". Pengembang menarik dari dan mendorong ke repositori pusat ini.
Saat Anda menggunakan Gerrit , Gerrit sendiri menjadi repositori pusat (memiliki SSH dan server HTTP bawaan yang memungkinkan pengguna berinteraksi dengannya pada dasarnya dengan cara yang sama seperti sebelumnya). Saat menggunakan Gerrit, alur kerjanya menjadi:
Saat menggunakan repositori pusat, pengembang lain dapat melihat perubahan yang dikirimkan setelah langkah 2. Gerrit memperkenalkan alur kerja tinjauan kode, dan karenanya pengembang lain hanya melihat perubahan yang dikirimkan setelah langkah 5.
Ini berfungsi baik dengan git-flow (atau skema percabangan lainnya) karena Gerrit mendukung peninjauan perubahan yang dibuat pada cabang mana pun.
sumber
Ini saran lain.
sumber