I finally gave up on SOHO Notes, thanks to the awful support and termite infestation of the code. My favorite feature - though it didn’t work - was sync.
Since EF uses the finder to store it’s database, can I simply run EF on my iMac and Macbook and then use a program like ChronoSync to synchronize the folders? I notice that you say not to change the folder contents in the finder. I suppose I could just test this, but what happens if I do?
why would one-way sync not be bad for the database? Wouldn’t I be making finder-based modifications to the destination database that way?
Also, would only adding items to a single folder in Eagle on the destination machine work? Here’s the scenario:
MAIN MACHINE contains main database.
DESTINATION MACHINE is initially containing a duplicate of the MAIN database.
Items are added to a “Transport” in Eagle on the destination machine.
When back at home, the transport folder is manually imported into the MAIN database.
The imported items are moved to other folders in the main database.
The transport folder on the destination machine is emptied.
The main database is resynced with the destination database.
The workaround would be to synchronize the new files/folders manually, by importing them into EagleFiler on the other machine. That way the database would stay up-to-date, whereas it wouldn’t if you added or removed files behind its back.
Because a one-way sync is just a more efficient way of replacing one library with the other. You’d be copying a consistent library (collection of files, indexes, and database) from one Mac to the other.
The database wouldn’t be modified; it would simply be copied from one Mac to the other.
Yes, this is essentially what I was suggesting in the previous post. It will work because the changes are going through EagleFiler, so it will keep the database up to date. The only catch is that if you had added any tags or notes to the new items in the Transport folder, those would be lost when you import the files into the main library. In the future, it will be possible to move/copy items between libraries, which would solve that problem.
Here, I would (one-way) sync the main library onto the other library. That is, bring all the files up to date, not just the database.
When you create a library using File > New Library, it creates a folder containing a Files folder, a Notes folder, and a .eflibrary package. When I say “library” I mean the outer folder that contains these three items. The database file is inside the .eflibrary package, along with indexes and a few other files.
Is it safe to use ChronoSync to synchronise the entire library, not just the Files portion? That way, the database file is getting updated between machines, as well as the constituent files. It seems like that would solve the problem of changing file and folder structure behind the database’s back. Theoretically, it would be just like grabbing the whole library folder and copying it to another computer—only in this case, only the parts that have changed are being transferred via some delivery mechanism (like a thumb drive).
Machine A (most recent version of library)
Run ChronoSync, it copies the modified database file, and all changed files to thumb drive (which contains a complete copy of the library matching Machine B at this point, which is how changes are determined).
Machine B (obsolete version of library)
Run ChronoSync, modified database from thumb drive overwrites Machine B version, and file folder structure is updated accordingly (as thumb drive library now precisely matches Machine A state).
Yes, it’s fine to use a syncing program or a SuperDuper Smart Update to do a fast copy from one drive to another, only copying the files that are actually different. What you should not do is make one change on machine A, make another change on machine B, and then use a “sync” program that tries to merge the changes, copying files in both directions at once.
Yes, that makes perfect sense. I only intend to keep three machines up to date and use the thumb drive as a way of providing changes to each machine. If you sync when you sit down and when you leave, that problem shouldn’t come up. Thanks.
I’ve been using Unison for quite a while doing this, and things have always worked well. I just need to remember to quit EF before synchronizing, but as I have several apps with the same requirement (such as VoodooPad or OmniFocus), this works fine.
ChronoSync and Empty Folders
There is one caveat about ChronoSync: if a (Finder) folder is empty, it doesn’t copy or synchronize it.
All the means is that if your EagleFiler Sources hierarchy every contains an empty folder - e.g. as a placeholder; or from which you have deleted every item, but not (yet) deleted the (‘parent’) folder itself, it will not be copied/synched by ChronoSync.
This might particularly apply to an emptied Trash.
Make sure that you have a folder called “Trash” inside of the “Files” folder in the Finder.
The specific “Missing File” errors can be resolved in one of two ways:
Use “Reveal in Library” to see where EagleFiler expects the file to be, then manually change the files/folders in the Finder to match.
Delete the file/folder in EagleFiler and then empty its trash so that it stops looking for a file that isn’t there.
I’ve never found a “syncing” utility that I was totally happy with in terms of features, speed, and reliability. However, if all you need is a one-directional “sync,” i.e. make Folder A look like Folder B without copying the stuff that hasn’t changed (which is what I recommend for EagleFiler, anyway), then SuperDuper is very, very good. It normally copies whole disks, but it’s possible to set it up to just Smart Update particular folders.
So - just this once - it was safe to ‘mess’ with the Finder hierarchy because I was reproducing exactly that EF expected, was it?
I ran Update Checksums then Verify and get no more red cross errors in the Errors window.
So should I be OK?
Another warning for ChronoSync users: I also found that ChronoSync must fail to copy files preceded with a period: I had a .procmail webarchive that was also reported missing after synching; I had to drop that into the corresponding Finder without the period and mv it to add the ‘.’ in Terminal.
I use SuperDuper every day to clone volumes. Shall look into it do copy subfolders, if I get no joy with Econ. Thanks!
Right. The reason I say not to mess with the hierarchy in the Finder is because that would get it out of sync with what EagleFiler expects. But if it’s already out of sync, that’s the only way to fix it.
No more “Missing File” errors is good. That means that EagleFiler can find everything. You shouldn’t need to use Update Checksum unless you’ve modified the contents of the files without EagleFiler’s knowledge.
ChronoSync and Empty Folders
There is a setting in ChronoSync, Options > Special File/Folder Handling that means when data is copied from one source to another, empty folders are included:
uncheck ‘Prune folders’
Then to uncheck ‘Ignore invisibles’ would allow any EF notes that begin with a period to be copied between volumes as well. The downside of this, presumably, is that System files (e.g. .DSStore) would also be copied into EF’s Files structure.