git-who adalah alat CLI untuk menemukan penanggung jawab atas keseluruhan komponen atau subsistem dalam sebuah codebase
- Berbeda dengan
git blame, git-who bekerja pada tingkat pohon file untuk mengidentifikasi penulis kode
- Menyediakan tiga subcommand, dan masing-masing memberikan sudut pandang berbeda terhadap kepengarangan dalam repositori Git
-
table
- Sebagai nilai default, menampilkan tabel yang merangkum kontribusi semua penulis yang melakukan commit di repositori
- Anda dapat menentukan path untuk memfilter hanya commit pada file di path tertentu
- Anda juga dapat menentukan nama branch, nama tag, atau "commit-ish" untuk memfilter hanya commit yang dapat dijangkau dari commit tertentu
- Gunakan flag
-m, -c, -l, -f untuk mengurutkan tabel berdasarkan berbagai metrik
-
tree
- Menampilkan pohon file, dan setiap node menunjukkan penulis dengan kontribusi terbesar pada path tersebut
- Gunakan flag
-a untuk memberi anotasi pada semua file
- Mendukung flag
-l, -f, -m, -c
-
hist
- Menampilkan histogram/timeline aktivitas commit untuk menunjukkan riwayat kontribusi pada repositori
- Mendukung flag
-l dan -f
- Opsi tambahan untuk pemfilteran commit
- Gunakan opsi
--author dan --nauthor untuk menentukan penulis yang ingin disertakan atau dikecualikan
- Gunakan opsi
--since dan --until untuk memfilter commit sebelum atau sesudah tanggal tertentu
- Caching: menyimpan data per repositori di
XDG_CACHE_HOME. Untuk menonaktifkan cache, atur GIT_WHO_DISABLE_CACHE=1
- Jika biner
git-who dipasang di path, Anda dapat menjalankan git who tanpa konfigurasi tambahan. Jika dipasang dengan nama lain atau ingin diatur secara eksplisit, Anda dapat menambahkan alias di konfigurasi Git
- Jika file
.mailmap ada di repositori Git, git who akan menghormatinya sehingga commit dari orang yang sama dihitung bersama
-
Metrik
- Jumlah commit: menunjukkan jumlah commit yang memodifikasi path
- Jumlah file: menunjukkan jumlah file unik yang dimodifikasi oleh penulis
- Jumlah baris yang ditambahkan dan jumlah baris yang dihapus: menunjukkan jumlah baris yang ditambahkan atau dihapus pada path
-
Perbedaan dengan git blame
git blame mengidentifikasi commit yang memperkenalkan setiap baris berdasarkan kode di working tree, sedangkan
git who menelusuri sebagian log commit untuk mengagregasikan kontribusi
- Kedua alat ini bekerja pada tingkat yang berbeda dan memberikan informasi yang berbeda
1 komentar
Komentar Hacker News
Terkait analisis "siapa yang menulis vim", tergantung alur kerja, kontributor internal bisa terlihat seolah berkontribusi lebih banyak
Alat ini benar-benar keren. Saya sempat mencobanya sebentar sebelum mengakhiri hari
Banyak orang salah paham tentang git blame. Ini bukan soal siapa yang melakukannya, melainkan commit mana yang menjadi penyebabnya
git-whobisa dipanggil sebagaigit who. Cukup atur alias di konfigurasi Git globalgit whateverakan mencari dan menjalankangit-whateverdari pathVersi low-tech-nya adalah memakai alias "nerdwars" untuk menjalankan "git shortlog -ns --no-merges". Ini cara yang bagus untuk mengetahui kontributor utama suatu proyek
Gitlab/Github seharusnya menambahkan fitur yang secara otomatis mengirim email kepada penulis terakhir dari baris kode yang dimodifikasi ketika merge request yang diajukan diperbarui
Alat ini hebat. Saya menggunakan akuntansi git-blame untuk melacak jumlah kode yang ditulis AI dan manusia di setiap rilis aplikasi
tigadalah frontend git TUI yang keren, dan memiliki subperintahtig blameyang indahYang kurang dari git bukanlah jumlah baris atau jumlah commit yang ditulis pengembang. Justru yang dibutuhkan adalah hal-hal seperti berikut
Sebagian orang melakukan commit dengan dua alamat email berbeda. Misalnya, mereka memakai email berbeda di komputer rumah dan komputer kantor. Akan bagus jika itu bisa didefinisikan sebagai identitas yang sama