NUL bytet w dwóch plikach źródłowych, które sprawiły, że git nazwał je binarnymi

Fixkamo-internal
Szycy
6 września 2026 23:56 UTC
Autor
Kamo
Pochęt się
00b2b58

Przyłapany na ostatnim przejściu nad własną pracą: "billingDraft.ts" zaangażowany jako "Bin 0 -> 6882 bajtów". Separator napisany jako spacja dotarł do pliku jako Zamiast tego surowy NUL byte, od skorupy uciekającej w drodze do środka. Udało się. NUL jest doskonale dobrym separatorem, każdy test zdał, a Typchecker nie miał nic do powiedzenia. To, co zepsuł, to czytanie: git traktuje plik z NUL jako binarny, więc nie ma żadnej dyfuzji, winy i nie ma recenzji. Zmiana na to Wyląduj jako nieprzezroczysta plama. „serverTime.ts” miał to samo w kluczu cache do formatowania – wcześniej istniejący, Nie mój, znaleziony przez skanowanie repozytorium dla wzoru po znalezieniu własnego. Ten naprawdę ma być NUL, ponieważ ani lokalna, ani strefa czasowa nie może być w stanie. Zawiera jeden, więc separator jest przechowywany i pisany jako unicode escape zamiast Surowy bajt. Ten sam klucz, ten sam odporny na kolizje, a plik rozproszy się ponownie. Również obecny w README.md, z fragmentu UTF-16 zainamentowanego przez jakiś build-trigger Narzędzie. Pozostawiony sam: jest to 39 bajtów szkód kosmetycznych w pliku, który nie importuje, I to nie jest ta zmiana, żeby posprzątać.

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Każda z tych aktualizacji automatycznie ląduje w miejscu pracy. Zacznij za darmo i obserwuj, jak rośnie tydzień po tygodniu.

Start Free ForeverZobacz ceny