Pembangun menyiasat pepijat dengan sejarah Git

Fungsi carian bekerja pada bulan lalu tetapi rosak sekarang. Di antara dua tarikh itu ada puluhan commit. Membuka setiap commit satu persatu boleh memakan masa, apatah lagi jika perubahan datang daripada beberapa orang. git bisect membantu mencari commit yang mula memperkenalkan masalah dengan membahagi ruang carian.

Anda perlukan satu commit yang diketahui baik dan satu yang diketahui rosak. Bisect akan memilih titik tengah; anda uji, tandakan baik atau rosak, dan ulang sehingga ruang semakin kecil. Ujian boleh manual jika langkahnya ringkas, tetapi skrip yang memberi hasil jelas lebih konsisten. Pastikan persekitaran ujian sama, kerana data atau konfigurasi luar boleh membuat commit baik kelihatan rosak.

Selepas menemui calon punca

Commit yang ditunjukkan bukan semestinya satu-satunya sebab. Baca diff, fahami niat asal dan uji hipotesis. Mungkin perubahan itu mendedahkan andaian lama yang memang rapuh. Selepas selesai, tamatkan sesi bisect supaya checkout kembali ke keadaan biasa. Catat langkah mengulang pepijat dalam tiket atau ujian yang sesuai.

Langkah ujian yang baik perlu mempunyai hasil ya atau tidak yang jelas. “Halaman terasa perlahan” sukar ditandakan ketika bisect, sedangkan “carian untuk kata X memulangkan sifar hasil” boleh diuji berulang. Perjelas gejala dahulu; alat sejarah menjadi lebih berkesan apabila soalan yang diberi kepadanya tepat.

Bisect tidak menggantikan pemantauan dan ujian. Ia alat yang sangat berguna apabila kita tahu masalah ada dalam sejarah kod tetapi belum tahu di mana hendak memulakan siasatan.