a8eda5c0a2
First slice of Cotejo, a Beyond Compare-style tool for macOS. The engine has no UI dependencies so the same code can back a CLI later. - ZipReader: own central-directory parser (no third-party zip), inflating via the system Compression framework and handling ZIP64. Because the directory already carries每 entry's CRC32 and size, two archives can be compared entry by entry without decompressing anything; bytes are only inflated when an entry is opened. - TreeScanner: folders and archives scan into one tree type, so JAR/EAR/WAR are browsed as directories — nested archives included (EAR -> JAR -> classes). - DirectoryComparer: layered so large trees stay fast. Cheap checks (size, CRC) can prove files identical but never that they differ, since JSON/XML with other bytes may still be equivalent; whatever they can't settle is read, or left pending under a size limit and resolved on demand. - ContentComparer: byte-for-byte, text with configurable tolerances, and semantic equality for JSON (key order irrelevant, array order significant, true != 1) and XML (attribute order and whitespace irrelevant, element order significant). 25 tests, including an EAR containing a JAR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UfhDYRLTpGJSKGP1m3LVJN
5 lines
43 B
Plaintext
5 lines
43 B
Plaintext
.DS_Store
|
|
.build/
|
|
*.xcodeproj
|
|
DerivedData/
|