-
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
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ğlenceliAyar adının net olmaması sorun yaratıyor.
help.autocorrect_enabledgibi daha açık bir ada ihtiyaç vardıint timeoutyerineint timeout_msecolarak 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.autocorrectayar parametresinin standart dışı bir birimle ölçülmesi iyi değil. Boolean ve ondalık değerlerle ayarlanması daha uygun olurducreeping featurismiçin iyi bir örnek. Gereksiz karmaşıklığa yol açıyorDesisaniye biriminin kullanımı sorgulanmamış. xmobar da benzer bir sorun yaşıyor
help.autocorrectayarı 1 yapıldığında 100 ms bekleyip devam ediyor. Yeni bir ayar eklenmeliydiinnodb_flush_log_at_trx_commitde benzer bir hatayı içeriyorautocorrect 3 saniyeye ayarlandığında, tehlikeli davranış ile güvenli davranışı ayırt edemiyor ve yanlış yazılan komutlarla kabuk geçmişini kirletiyor
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)