I agree with the stages you outlined - manual first, then automatic, then merging. Also, initially, you'll only be working with two copies - the one on the local machine, and the one on the Server. At some point, though, I'd like to see the ability to define multiple Sync Sites, which means multiple files. Maybe this would be a good time to introduce the concept of 'Profiles', a'la Firefox Profiles. An RDF file could be password protected itself, so there could be 'Joe's Settings' and 'Mary's Settings', and you could only use the Settings for which you knoew the password.
Complexity, complexity...
I know it is hard to keep up with all of these suggestions... but I have mentioned the MD5 shecksums more than once - here's from one of my earlier posts on this topic:
The problem of having inconsistencies should be addressable by using date/time stamps, MD5 checksums, and a synch-session-status file of some sort on the Primary Synch Server. Describing the desired behavior is the easy part - the hard part will be Eric's job - the actual coding. ;)
The 'Sync'Session Status' file I described provide a framework for keeping track of changes in RDF files on theLocal Workstations and the Remote Server(s) in the following manner:
1. The Primary Sync/Session file on the Server would keep up with whether or not a Sync Session (when a new Browser Session Starts (checks for an updated RDF file), and when it stops (uploads a changed RDF file, if the current one in use is newer than the one on the Server).
2. The Local copy of PM would also keep one of these files.
Now, how to work out the logic for each, to best figure out which copy is the most up to date, or what to do when a Sync Session fails or never completes, like, for example,someone leaves a Browser Session running on his home computer and then logs into his computer at work, thus resulting in possible changes he may have made at home not being present in the current file on the Sync/Server? I don't know. Maybe PM could then allow for a 'Syncless' Session (a session that would not result in changes to the RDF file being saved back up to the server), or some maybe give the User the option of calling his wife at home and getting her to close the Browser Session, let it update, and then continue Syncing.
Man, this will be a programming nightmare... I wish I could help, Eric... :(