Co powoduje, że te dwa pozornie identyczne pliki mają różne skróty?

0

Nie jestem w stanie zrozumieć, dlaczego następujące dwa pliki dają różne skróty (SHA1, CRC32, SHA384, cokolwiek):

https://cdn.jsdelivr.net/npm/[email protected]/dist/jsonify-error.js

https://cdn.jsdelivr.net/npm/[email protected]/dist/jsonify-error.js

Dotychczas wypróbowałem kilka narzędzi różnicowych, ale wszystkie twierdzą, że pliki są identyczne.

Pobrałem oba pliki i sprawdziłem je za pomocą Sublime Text 3 i Visual Studio Code, oba wydają się być UTF-8, CRLF, ale jak tylko otworzę pierwszy i wcisnę na nim Ctrl + S (bez zmiany niczego!) Jego zmiany hash być taki sam jak drugi.

Co tu się dzieje?

EDYTUJ, aby wyjaśnić: chcę wiedzieć, co różni się między plikami. Wiem, że jest to coś z białymi znakami lub zakończeniami linii, ale co? Która linia? Gdzie? Która postać?

Pedro A
źródło

Odpowiedzi:

2

Linia 1 w wersji 1.2.1 zakończyła się jako linux EOL, natomiast wersja 1.2.2 w tej samej linii ma zakończenie linii systemu Windows.
(Linux używa jako separatora linii znaku 0x0A, podczas gdy okna używające 0x0D, 0x0A)

To samo z liniami: 3, 4, 59, 60 i 61.

Narzędziem używanym do wykrycia problemu jest WinMerge.

Alex
źródło
1

Zajrzyj do edytora szesnastkowego: jeden plik używa 0x0a (LF) do oznaczenia końca linii, drugi używa 0x0d0a (CR / LF). Użyj narzędzia takiego jak Notatnik ++ zmienić pliki na to samo konwencja nowej linii , Jeśli musisz.

Hex view of 2 files

DrMoishe Pippik
źródło
Co mnie zaskoczyło, to nie wszystkie linie, ale tylko kilka z nich, prawda? Tylko linie 1, 3, 4, 59, 60 i 61, z jakiegoś dziwnego powodu (jak pokazano w drugiej odpowiedzi)
Pedro A
Być może pliki zostały przeniesione z jednego systemu operacyjnego do drugiego i tam edytowane?
DrMoishe Pippik