Version History and Rollback: Time Travel for Your Dev Environment
Every push creates a snapshot. Every snapshot is restorable. ConfigSync gives you a complete version history of your development environment with one-command rollback.
Every Push Creates a Snapshot
Every time you run configsync push, ConfigSync creates a timestamped snapshot of all your tracked files and stores it in the cloud. This snapshot captures the exact state of your configuration at that moment — every file, every byte, every permission.
Snapshots are immutable. Once created, they cannot be modified or corrupted. They form a linear history of your development environment, similar to git commits for your dotfiles and secrets.
Browsing Your History
View your snapshot history with the history command:
Each snapshot shows its ID, creation timestamp, the machine it was pushed from, and the total size. The ID is what you use to reference a specific snapshot for restore or diff operations.
Filtering History
When you have snapshots from multiple machines, filtering helps you find what you need:
Restoring a Snapshot
To roll back to any previous snapshot, use the --snapshot flag with pull:
This replaces your current local configuration files with the exact contents from snapshot 42. Every tracked file is restored to the state it was in when that snapshot was created. Post-pull hooks still run after a snapshot restore, so any automated setup steps execute as usual.
Preview Before Restoring
Rolling back is a significant action. Before committing to it, preview what would change:
The dry run shows which files would be modified, added, or removed, along with a diff of the changes. This lets you verify that the snapshot contains what you expect before overwriting your current config.
You can also use configsync diff --snapshot 42 to see a detailed diff between your current local files and the snapshot. This is especially useful when you want to compare without any intent to restore.
Use Cases for Version History
Bad config change: You edited .zshrc and broke your shell. Instead of debugging, roll back to the last known good snapshot and your shell works again.
Rollback to yesterday: A tool upgrade modified several config files and introduced issues. Restore yesterday's snapshot to get back to your working state while you investigate.
Compare versions: Something changed but you are not sure when. Use configsync diff --snapshot with different snapshot IDs to pinpoint when a specific change was introduced.
Snapshot Retention
How long snapshots are retained depends on your plan:
| Plan | Retention Period | Max Snapshots |
|---|---|---|
| Free | 7 days | 25 snapshots |
| Pro | 30 days | Unlimited |
| Team | 90 days | Unlimited |
For most developers, the Pro plan's 30-day retention covers any realistic rollback scenario. Teams benefit from 90 days for compliance and audit purposes. Even on the free plan, 25 snapshots with 7-day retention gives you a solid safety net.
Ready to try ConfigSync?
Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.