Short: Synchronise two folders automagically! Author: Chris S Handley (NOspam@chris.s.handleyATbtinternet.com) Uploader: Chris S Handley (NOspam chris s handleyATbtinternet com) Type: util/dir Version: v1.3 Architecture: m68k-amigaos The purpose of FolderSync is to allow one set of files to be shared by two separate people (computers), and occasionally update BOTH people's copies of the files with the changes that the other has done (this is called synchronisation). Neither person has priority, because FolderSync just 'mirrors' what one person has done on to the other's copy (of the files), as if both were working on just a single set of files. It does NOT run in the background, but is run by the user when needed; only at these points of synchronisation does the Amiga need to be able to access both folders (probably on separate drives). Synchronisation is done at the level of whole files, rather than somehow updating a part of a file (as might happen with Address Book sync s/w). It can sync between an Amiga disk & a FAT (Windows) disk quite happily. I wrote FolderSync to allow me to carry 15,000 of my Amiga's files (800Mb) around with me on my Psion 7 (a 'minature laptop'), without having to worry about remembering what changes I had done on either my Psion or my Amiga, and without having to synchronise every time I switched between Amiga or Psion. It can also be made to backup the changes in one folder to another, which I use to keep a daily up-to-date backup of my Workench partition (in case I do something silly, like formatting it). You can probably think up more uses! Having spent so much effort making FolderSync very fast & reliable, I though I ought to make it publically available :-) I am not aware of any other program that does anything vaguely similar (on the Amiga anyway), and if there is, then I doubt it is written as well! I am quite proud of how well it works, given the apparent difficulty due to lack of support by filing system design. Note that it is a CLI (Shell) program, and should probably only be used by someone with some experience of the technical side of computers - which probably covers a lot of the surviving Amiga users. NOTICE: Major update! Seriously improved program. New beginners guide :-) . Much more robust, etc. NOTICE: Should now work fully with the FFS filingsystem! If someone had reported the problem sooner, then it would have been fixed sooner. NOTICE: Unless automatic mounting of FAT drives is disabled under Amithlon, it will use it's internal copy of FAT95, which is v2.17. Unfortunately, you need v2.18+ for FolderSync to work. If you have trouble manually mounting FAT partitions, ask me for an easy guide (with pre-made dosdriver icons). NOTICE: Previous version of FolderSync would (I think) have cleared the Archive bit of any *folders* that were examined, not just those changed. Accidentally fixed as a side-effect! Probably no-one noticed this problem :-) NOTICE: You must follow the upgrade procedure if you have used a previous version for synchronisation (not backup). History +++++++ Key: For each version, the top entries are the oldest. - entry = bug fixed. (N.B. bug = accidental dangerous/bad feature) + entry = feature added/changed, or a non-bug-related change. v1.3 (20.12.2002) + Changed version numbering system (e.g. v1.3 not v1.03). + Added algorithm to detect renaming/moving of files, instead of performing the slower (but equivalent) copy & delete. FolderSync now fully meets my original design specification (and then some:-) + Refactored finding-tweaks algorithm into a separate procedure, which made it easy to tweak files that are also being renamed/moved. The core algorithm is now easy to read again, so I can finally consider releasing the source code. + Shortened output notices which mentioned both mirror folders (since you should know what the other folder is). + When the safety limit is exceeded, it now outputs the proposed changes to a text file that the user can read before commiting. + Improved underlying class to do file copy using OS calls, rather than using the DOS copy command! May be faster, certainly more reliable; no problems now when syncing files with pattern-matching characters in their name, and the rare 'bugs' from the hackish TrueMultiAssigns is no-longer an issue. Later I removed silly memory usage & speeded-up thanks to Ron Stein spotting a symptom. + Added the TruncateLength argument for Ron Stein. - Fixed a silly bug which could prevent FolderSync working if the A & P folder path names were of a different length. Symptom found by Ron Stein. - Fixed ANOTHER silly little bug where dir name truncation would fail. Symptom found by Ron Stein. + Discovered that before FAT v2.18, it did not support resizing files, and therefore will not work with FolderSync. Sadly Amithlon v1 forces it's internal v2.17 if you use it's auto-mount feature. + Added the log file feature. - Fixed a small pre-2000 time bug in underlying file class which probably never caused problems. (I think this is the opposite of a Y2K bug :-) However, a new lastsync file must be created, so I have upped the internal file version. + Major reworking of the underlying file/dir classes to cope much better with any foreign filing system (inc. removing FAT kludges), which should also make the source code more readable. - Improved underlying file/dir classes to always have correct time & archive bit status. May not affect FolderSync. - Forgot to mention earlier: Removed creation from 'destructive changes' count, as well as fixed minor 'destructive changes' counting bug. + Changed safety limit equality so 0 always asks user permission. + Added info on what is being tweaked. + Added meaningful failure codes to underlying file/dir classes. + Used meaningful failure codes in reporting of warnings. + Added argument array size check that would have caught the bug fixed in v1.01. But it is disabled for public versions, since SnoopDos seems to do something "illegal" which can wrongly trigger this warning. + Added warning when files have different sizes but same time-stamp, which should catch many cases of file corruption (which might happen if there is a system crash while FolderSync is running). + Some spelling mistakes fixed in docs & FolderSync. + Automated lots of bug checking, so now FolderSync should be VERY robust. - Created directories now have their comment copied. Thanks to Özmen Yaman for helping me notice this. - Setting comments now works with FFS. Symptom found by Özmen Yaman. - Fixed a probably non-damaging array-too-small bug when writing lastsync file. + Improved synchronisation for when a file is replaced by one with an older time-stamp. And added warnings for situations which are even more tricky, so the user knows he might loose data. Now it should be virtually impossible for FolderSync to act unexpectedly (at least without warning you). + A super-duper Beginners Guide has been written by Ron Stein. Thanks! + Second Aminet release. Very major update :-)