Bisect

Git Tingkat Lanjut

Amanda Crawford-Adamo

Software and Data Engineer

Apa itu git bisect?

Alat yang memakai pencarian biner untuk menemukan commit yang memperkenalkan bug

Perintah Git Bisect

git bisect

Tujuan

  1. Temukan commit buruk dengan cepat
  2. Penting untuk debug data
  3. Mempercepat analisis akar masalah
Git Tingkat Lanjut

Bisect - mulai

  1. Mulai sesi git bisect

    git bisect start
    
  2. Tandai keadaan saat ini sebagai buruk

    git bisect bad
    
  3. Tandai keadaan terakhir yang diketahui baik

    git bisect good <commit-hash>
    

Graf commit yang menampilkan dua commit pertama sebagai baik (hijau). Commit terakhir berwarna merah (buruk). Di antaranya ada tiga commit statusnya tidak diketahui (abu-abu). Commit baik terakhir ditandai dengan git bisect good dan commit buruk ditandai dengan git bisect bad.

Git Tingkat Lanjut

Bisect - pencarian

  1. Menandai commit sebagai buruk

    git bisect bad
    
  2. Menandai commit sebagai baik

    git bisect good
    

Graf commit yang menampilkan dua commit pertama sebagai baik (hijau). Commit terakhir berwarna merah (buruk). Di antara commit baik dan buruk ada tiga commit statusnya tidak diketahui (abu-abu). Git bisect memakai pencarian biner, mulai mengecek commit tengah lalu bergerak ke kiri atau kanan.

Git Tingkat Lanjut

Bisect - pencarian otomatis

Memeriksa apakah commit baik atau buruk dengan menjalankan skrip uji otomatis.

git bisect run <script_name>
  • Skrip harus mengembalikan 0 jika tes lulus.
  • Jika tes gagal, kembalikan angka non-nol.

Graf commit yang menampilkan dua commit pertama sebagai baik (hijau). Commit terakhir berwarna merah (buruk). Di antara commit baik dan buruk ada tiga commit statusnya tidak diketahui (abu-abu). Git bisect memakai pencarian biner, mulai mengecek commit tengah lalu bergerak ke kiri atau kanan.

Git Tingkat Lanjut

Bisect - hasil

Contoh keluaran Git Bisect

$ git log
b1a534f adalah commit buruk pertama
commit b1a534f89l2c3d4e5f6g7h8i9j0k1l2m3n4o5p
Author: Jane Doe <[email protected]>
Date:   Thu Mar 14 14:30:00 2024 -0500

Update data transformation logic

Keluar dari proses bisect dan kembali ke HEAD saat ini

git bisect reset
Git Tingkat Lanjut

Kapan memakai git bisect

Kapan digunakan

  1. Temukan regresi di alur kerja data
  2. Pakai skrip uji untuk debug lebih cepat

Tips

  • Otomatiskan pengujian dengan git bisect run <test-script>
  • Gunakan pesan commit yang deskriptif
Git Tingkat Lanjut

Ayo berlatih!

Git Tingkat Lanjut

Preparing Video For Download...