AutoSync™
AutoSync is a lightweight C# utility for reliable, reversible synchronisation of large project folders across multiple machines. It combines content hashing, staged commits and a complete undo history to guarantee that a repository is never left in a state nobody can explain.
SOFTWARE DESCRIPTIONS
Housi
12/16/20255 min read


AutoSync: Verifiable Project Synchronisation
AutoSync is a lightweight C# utility for reliable, reversible synchronisation of large project folders across multiple machines. It combines content hashing, staged commits and a complete undo history to guarantee that a repository is never left in a state nobody can explain.
🔧 Features
✅ Two-Phase Sync: Planning and execution are strictly separated. Nothing on the repository is touched until the change set has been reviewed and confirmed.
✅ Content-Hashed Change Detection: Files are compared by xxHash3 fingerprint rather than by timestamp alone, catching rewrites that size and modification time would miss.
✅ Full Pre-Image History: Every push archives the previous version of everything it replaces or removes, making any sync reversible.
✅ Staged Commits with Journal Recovery: Payload is uploaded to a staging area first, and the commit phase is journalled so an interrupted run can be completed rather than guessed at.
✅ Asynchronous Execution: All I/O runs off the UI thread with parallel transfers and graceful cancellation via CancellationToken.
✅ Relative, Portable Exclusions: Filter patterns are stored relative to the project root and shared by every machine using the repository.
✅ Serverless by Design: The repository is a directory. SMB share, NAS, Windows Server or external drive - no service to deploy, no port to open, no daemon to maintain.
🔄 Sync Modes
⬆️ Push (Mirror Up): Makes the repository match this machine. Changed and new files are uploaded to staging, previous versions are moved into a timestamped changeset, and only then does the repository state advance. Protected by an empty-source guard and a sequence check that refuses to write older work over newer work.
⬇️ Pull (Mirror Down): Makes this machine match the repository. Downloads land in a staging folder on the same volume, so applying them is a metadata operation rather than a second copy. Replaced files are archived locally before anything is overwritten.


📝 Detailed Description & Architecture Notes
AutoSync is a high-control synchronisation tool built on C# for Windows, designed for individual creators working across several workstations and for small teams sharing a project store. The architecture enforces a clean separation between planning, transfer and commit so that every failure mode has a defined outcome.
🧠 Three-Manifest Diff
Change detection compares three file tables: the current scan of the local project, the table describing the repository, and the last state this machine confirmed. The third table is what allows AutoSync to distinguish a file deleted elsewhere from a file added here, a distinction that two-way comparison cannot make.
Scanning uses directory pruning, so excluded trees are never entered, and hashing runs in parallel across configurable worker counts.
🛡️ Commit Ordering & Recovery
The commit sequence is fixed and deliberate: payload to staging, abort on any transfer error, write the commit journal, archive pre-images, promote staged files, write the file table, apply retention, and only as the final step advance the repository state.
An interrupted run therefore always leaves a repository whose state is consistent, if slightly stale. The commit journal remains on disk and the next session offers to replay it, with every step checking whether it still has work to do.
🔒 Data Integrity & Refusals
AutoSync refuses rather than guesses. A push whose local side is empty while the repository is populated is rejected as a probable wrong path. Filenames that differ only in casing are rejected outright, because a case-insensitive comparison cannot keep both and silently discarding one is worse than stopping. Any failed transfer aborts the entire sync before the repository is modified.
🏛️ Separation of Concerns
The sync engine performs all I/O through an abstract store interface with no UI dependencies, which keeps the transport decision reversible and makes seeding over an external drive the same code path as a network transfer.
The UI layer reports progress, surfaces settings and relays user intent. It never drives execution directly, and all prompts, warnings and error messages are handled there.
This architecture makes AutoSync suitable for workstations, NAS-backed shares and Windows Servers with Desktop Experience, including Server 2022 and 2025, with no external runtime prerequisites beyond .NET.
Repository & Multi-Machine Support
🆔 Stable Repository Identity: Each repository carries a generated id, and local state is keyed on that id rather than on a path. Remounting a share under a different drive letter costs nothing, while a different repository at a familiar path is detected instead of silently trusted.
📚 Multiple Repositories: Any number of repositories can be configured side by side, each with its own paths, transfer settings and history.
🔀 Machine-Local vs Shared Settings: Paths, bandwidth limits and sync state are per machine. Exclusions, retention and repository identity live in the repository and apply to everyone using it.
🔢 Sequence Tracking: Every push advances a counter written by the machine that made it. Divergence between machines is therefore a single comparison rather than a heuristic.
📐 Layout Versioning: Repositories declare their layout version, and an older client refuses to operate on a newer repository instead of acting on outdated assumptions.
Safety & History
🗂️ Timestamped Changesets: Every push produces a changeset folder (yyyy-MM-dd-HH-mm-ss__Machine) containing a manifest of what changed and the previous version of every replaced or removed file.
🧹 Retention Management: Changesets are pruned by count, by age, by total size, or any combination, with a configurable floor that prevents the undo history being configured away by accident.
🔍 Pre-Flight Review: The confirmation dialog groups pending changes by folder, shows transfer volume, and expands deletions by default so the destructive part of a sync is never the part you scroll past.
⚠️ Explicit Overrides: Warnings that can be bypassed require a separate, deliberate confirmation rather than sharing a button with the normal path.
🔐 RHG Lock Convention: A running commit publishes a .rhglock marker in the repository root, allowing other ReHoGa tools to skip a directory that is mid-write rather than capture it half-finished.
Filtering & Control
🔍 Relative Exclusion Patterns: Patterns without a separator match any path segment, patterns with a separator are anchored at the project root, and wildcards are supported within and across folder levels.
🎯 Folder Picker: Exclusions can be selected from the project tree, with the relative pattern generated automatically.
📋 Template Sets: One-click exclusion defaults for Unreal Engine projects covering derived data, intermediates, build output and logs.
🚀 Bandwidth Throttling: Configurable rate limit per machine, implemented via a token-bucket throttler shared across parallel transfer threads, where 0 means unlimited.
⚙️ Tunable Concurrency: Transfer parallelism is configurable per machine, letting a high-latency link hide round trips that a LAN connection never sees.
Monitoring & Logging
📋 Structured File Logging: Optional log file with automatic size-based rotation, recording sync start, completion, per-file transfer failures and user-initiated aborts.
📊 Byte-Accurate Progress: Progress is measured in bytes rather than file count, so a single large asset does not leave the bar stalled at ninety percent, and phases are reported separately across scan, compare, transfer and commit.
🔔 Windows Balloon Notifications: Optional tray notifications on completion, suppressible in settings.
🔌 Extensible Sink Architecture: Logging is built on an ILogSink interface, ready for additional sinks such as HTTP, Syslog or custom monitoring protocols without touching existing code.
UI & Settings
🌳 Master/Detail Overview: All configured repositories in one view, each showing its remote state, the state this machine last confirmed, and any warning that applies.
🌙 Dark Mode Support
📦 Start in Tray Option: Launch directly to the tray on Windows startup without showing the main window.
⚙️ Autostart Integration: Optional registry entry for automatic startup, configurable directly in settings with no installer required.
🧪 Access Test: Verifies path reachability, repository presence and readability as separate steps, so a failure says which one failed.
♻️ Baseline Reset: Discards this machine's cached comparison state and forces a full compare on the next run, without deleting anything.
💳 License System: Integrated license validation and activation via LiSeGate. Trial mode restricts licensed features, while activation persists across sessions.




Contact
Socials
Need Help?
©2026 ReHoGa Interactive
