Repository navigation
fix!: complete and faithful lossless output - #217
Merged
Merged
Conversation
- Explode PersistentStoreCatalog (FileMaker 2026) into persistent_stores - Keep carriage returns and the indentation of calculation text - Keep the XML declaration in the skeleton - Write each modified field of a FileMaker 20-22 export to its own file; they all overwrote one file per table, so most of them were missing - Escape file names derived from the content, like all other file names BREAKING CHANGE: modified fields of FileMaker 20-22 exports move from tables__modify_action/<table> - ID <id>.xml to tables__modify_action/<table> - ID <id>/<field> - ID <id>.xml. The first run after upgrading changes many files once, mostly by adding the fields that were missing until now.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--losslessis meant to keep everything in the export. Rebuilding exports from lossless output (see the follow-up PR) showed where it didn't:PersistentStoreCatalog, FileMaker 2026, SaXML 2.3.0.0) weren't exploded, so their values were lost. They now go topersistent_stores/.prepare_xml_contentsplit withstr::lines().ModifyActionsection of these exports has oneFieldCatalogper field. All of them were written totables__modify_action/<table> - ID <id>.xml, so each overwrote the previous one and only the last field of each table survived. They're now written totables__modify_action/<table> - ID <id>/<field> - ID <id>.xml, and the skeleton names the field as well, so the order is kept./in such a name made the write fail, so the file was missing.Breaking change
Marked
fix!because the output layout changes for FileMaker 20–22 exports: modified fields move from one file per table to one file per field. Anything that readstables__modify_action/<table> - ID <id>.xmlby path needs to follow. The first run after upgrading produces a large one-time diff, mostly fields that were missing until now: in one real-world export, about 1,500 new field files. Releasing this as 0.10.0 rather than a patch might be the clearer signal.Other one-time changes on upgrade:
persistent_stores/appears for FileMaker 2026 exports that have persistent stores.skeleton.xmlgains the declaration line (lossless only).\r.|or?are renamed, e.g.|becomes_.Testing
--losslessand rebuilt each from the output: all identical to the originals.