git-who, kod tabanının genel bileşenleri veya alt sistemleri için sorumluları bulmaya yarayan bir CLI aracıdır
git blame'in aksine git-who, dosya ağacı düzeyinde çalışarak kod yazarlarını tanımlar
- Üç alt komut sunar; her biri Git deposundaki katkı sahipliğine farklı bir açıdan bakar
-
table
- Varsayılan olarak depoya commit yapan tüm yazarların katkılarını özetleyen bir tablo yazdırır
- Belirli bir yolun dosyalarına ait commit'leri filtrelemek için yol belirtilebilir
- Belirli bir commit'ten erişilebilen commit'leri filtrelemek için branch adı, tag adı veya "commit-ish" belirtilebilir
-m, -c, -l, -f bayrakları kullanılarak tablo farklı metriklere göre sıralanabilir
-
tree
- Dosya ağacını yazdırır ve her düğümde o yola en çok katkı yapan yazarı gösterir
-a bayrağıyla tüm dosyalar açıklamalı olarak gösterilebilir
-l, -f, -m, -c bayraklarını destekler
-
hist
- Commit etkinliğinin histogramını/zaman çizelgesini yazdırarak depoya katkı geçmişini gösterir
-l ve -f bayraklarını destekler
- Commit filtreleme için ek seçenekler
--author ve --nauthor seçenekleriyle dahil edilecek veya hariç tutulacak yazarlar belirtilebilir
--since ve --until seçenekleriyle belirli bir tarihten önceki veya sonraki commit'ler filtrelenebilir
- Önbellekleme: Verileri depo bazında
XDG_CACHE_HOME altında önbelleğe alır. Önbelleği devre dışı bırakmak için GIT_WHO_DISABLE_CACHE=1 ayarlanabilir
git-who ikili dosyası PATH'e kurulursa ek ayar gerekmeden git who çalıştırılabilir. Farklı bir adla kurmak veya açıkça yapılandırmak için Git ayarlarına alias eklenebilir
- Git deposunda
.mailmap dosyası varsa git who buna uyar ve aynı kişiye ait commit'leri birlikte sayar
-
Metrikler
- Commit sayısı: Yolu değiştiren commit sayısını gösterir
- Dosya sayısı: Yazarın değiştirdiği benzersiz dosya sayısını gösterir
- Eklenen satır sayısı ve kaldırılan satır sayısı: Yola eklenen veya yoldan kaldırılan satır sayısını gösterir
-
git blame ile farkları
git blame, çalışma ağacındaki koda göre her satırı hangi commit'in eklediğini belirlerken
git who, commit logunun bir bölümünü tarayarak katkıları toplulaştırır
- İki araç farklı seviyelerde çalışır ve farklı bilgiler sunar
1 yorum
Hacker News görüşleri
"vim'i kim yazdı" analizine ilişkin olarak, iş akışına bağlı olarak iç katkıcılar daha fazla katkı yapmış gibi görünebilir
Bu araç gerçekten harika. Günü bitirmeden önce kısa bir süre denedim
git blame birçok kişi tarafından yanlış anlaşılıyor. Kimin yaptığından ziyade, hangi commit'in sebep olduğuyla ilgilidir
git-who,git whoolarak çağrılabilir. Global Git ayarlarında bir takma ad tanımlamak yeterligit whatever, path içindegit-whateverı bulup çalıştırırDaha düşük teknolojili sürüm olarak "nerdwars" adlı bir takma ad kullanıp "git shortlog -ns --no-merges" çalıştırıyorum. Bu, bir projenin ana katkıcılarını anlamanın iyi bir yolu
Gitlab/Github, gönderilen merge request'ler değiştirilen kod satırlarının son yazarına otomatik olarak e-posta gönderen bir özellik eklemeli
Bu araç mükemmel. Uygulamanın her sürümünde yapay zeka ve insanlar tarafından yazılan kod miktarını takip etmek için git-blame muhasebesi kullanıyorum
tig, harika bir TUI git frontend'idir ve çok güzel birtig blamealt komutuna sahiptirGit'te eksik olan şey, geliştiricinin yazdığı satır sayısı veya commit sayısı değil. Daha ziyade şu tür şeylerdir
Bazı insanlar iki farklı e-posta ile commit atıyor. Örneğin ev bilgisayarı ve iş bilgisayarında farklı e-posta kullanıyorlar. Bunları aynı kişi olarak tanımlayabilmek güzel olurdu