1 puan yazan GN⁺ 2025-01-20 | 1 yorum | WhatsApp'ta paylaş
  • Git otomatik düzeltme özelliği neden fazla hızlı?

    • Git’in otomatik düzeltme özelliği, yanlış girilen komutu çalıştırmadan önce 0,1 saniye bekler.
    • Bu süre, insan gözünün kırpma süresine benzer olduğu için tepki vermesi zordur.
    • Bu özellik, Git bakımcısının önerdiği zaman biriminin yanlış anlaşılması ve hatalı yapılandırmadan kaynaklanır.
  • Bu özellik nasıl tasarlandı?

    • Varsayılan olarak Git, yanlış komutları çalıştırmaz.
    • Benzer komutlar önerip çıkar; varsayılan davranış budur.
    • 2008’de Johannes Schindelin, benzer komutları bulup çalıştıran bir yama sundu.
    • Alex Riesen, bunun help.autocorrect ayarı üzerinden yapılandırılabilmesini sağladı.
    • help.autocorrect değeri 1 olarak ayarlanırsa komut 0,1 saniye sonra çalıştırılır.
  • Uygun ayar değeri nedir?

    • 10 olarak ayarlanırsa 1 saniye bekler.
    • Belgelere göre ayarlanabilecek değerler şunlardır:
      • 0: Önerilen komutu gösterir.
      • Pozitif değer: Belirtilen 0,1 saniyelik sürenin ardından komutu çalıştırır.
      • immediate: Komutu hemen çalıştırır.
      • prompt: Önerilen komutu gösterir ve çalıştırılıp çalıştırılmayacağını soran bir istem gösterir.
      • never: Önerilen komutu ne çalıştırır ne de gösterir.
    • En makul ayar prompt olabilir.
  • Git nasıl tahmin eder?

    • Git, komut tahmini için basitçe değiştirilmiş bir Levenshtein uzaklığı algoritması kullanır.
    • Belirli bir mesafenin üzerindeyse tahminde bulunmaz.
    • Örneğin git bass, rebase olarak tahmin edilir ama bassa tahmin edilmez.
  • Benim küçük düzeltmem

    • 1 değerini "hemen" olarak yorumlayan küçük bir yama yazdım.
    • Git bakımcısı, tüm boolean dize değerlerinin doğru yorumlanmasını istedi.
    • Bu yama uygulanırsa, gelecekteki Git sürümleri artık tepki hızınızı test etmeyecek.

1 yorum

 
GN⁺ 2025-01-20
Hacker News görüşleri
  • Hal Finney'nin 70'lerde Mattel Intellivision sistemi için bir BASIC yorumlayıcısı yazarken hata mesajlarını "EH?" olarak kısaltmış olmasıyla ilgili anekdot eğlenceli

  • Ayar adının net olmaması sorun yaratıyor. help.autocorrect_enabled gibi daha açık bir ada ihtiyaç vardı

    • Ayar adında birim de yer almalı. Örneğin int timeout yerine int timeout_msec olarak adlandırılmalı
  • Kötü bir tasarım gibi görünüyor. Mevcut ayar değerlerini yeniden yorumlayarak değiştirmekten kaçınılmalı

    • help.autocorrect ayar parametresinin standart dışı bir birimle ölçülmesi iyi değil. Boolean ve ondalık değerlerle ayarlanması daha uygun olurdu
  • creeping featurism için iyi bir örnek. Gereksiz karmaşıklığa yol açıyor

  • Desisaniye biriminin kullanımı sorgulanmamış. xmobar da benzer bir sorun yaşıyor

    • Küçük sayılar milisaniye yerine saniye sanılabilir
  • help.autocorrect ayarı 1 yapıldığında 100 ms bekleyip devam ediyor. Yeni bir ayar eklenmeliydi

    • MySQL'deki innodb_flush_log_at_trx_commit de benzer bir hatayı içeriyor
  • autocorrect 3 saniyeye ayarlandığında, tehlikeli davranış ile güvenli davranışı ayırt edemiyor ve yanlış yazılan komutlarla kabuk geçmişini kirletiyor

    • 1 yıl sonra devre dışı bırakmaya karar verilmiş
  • Bir komut yanlış yazıldığında, 100 ms zaman aşımından önce iptal etmek için hemen ctrl-C'ye basılabilir

  • Desisaniye standart dışı bir birim. Gecikmeyi milisaniye ya da saniye cinsinden belirtmek daha yaygın

  • Tepki süresi uyarının türüne göre değişir. İşitsel tepki görselden daha hızlıdır, dokunsal tepki ise en hızlısıdır (90 - 180 ms)