Skip to content

Copy saves between Mac and iPhone over the cable - #19

Merged
kanapitsas merged 4 commits into
mainfrom
feat/save-sync
Nov 7, 2026
Merged

kanapitsas merged 4 commits into
mainfrom
feat/save-sync

Conversation

@kanapitsas

Copy link
Copy Markdown
Owner

Copy saves between the Mac and the iPhone over the cable: tools/ios_device.sh saves status|pull|push [--force] [--dry-run].

  • Only portal2/SAVE/<id>/*.sav and *.tga; device-specific cfg files are left alone.
  • A file changed on the destination, or on both sides, is kept unless --force; anything overwritten is backed up first. Deletions are never synced.
  • The decision logic is in tools/save_sync.py, with 16 unit tests on fake devicectl listings.

Not tested on a device yet: the date field of devicectl device info files is guessed (the tool stops with an error and keeps the listing if it cannot parse it).

🤖 Generated with Claude Code

kanapitsas and others added 4 commits November 6, 2026 23:13
The comparison and the copy plan live in Python so they can be tested
with fake devicectl listings: only portal2/SAVE/<id>/*.sav and *.tga,
three-way comparison against the last recorded sync, never overwriting
a newer or doubly changed file without --force, backups before any
overwrite, and pulled files moved into place only once complete, with
the iPhone's date so the game keeps its save order.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Thin devicectl layer around tools/save_sync.py: one timestamped listing,
the planned copies, then a fresh listing so only the copies that landed
are recorded, even when a copy fails midway.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Explains what is copied and what stays per device (cfg, video modes),
how conflicts and backups work, why it never competes with Steam
Cloud, and that an iCloud version would need a paid developer account.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kanapitsas
kanapitsas merged commit ff66935 into main Nov 7, 2026
3 checks passed
@kanapitsas
kanapitsas deleted the feat/save-sync branch November 7, 2026 22:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant