Alex wrote:- First, despite rebooting, copying QRecall.app around, etc. I can't get LaunchServices to see the new "QRecall Capture Preferences" service. I do have "Capture to QRecall Archive", etc.
You might have to explicitly enable these new services in Finder > Services > Services Preferences…. If they're not listed there, you might have a "stuck" copy of the old services in ~/Library/Services/. Delete the QRecallService.service package from this directory and launch the QRecall app again. QRecall will reinstall the new service and notify OS X that it is available. Afterwards, it should appear in your Services Preferences.
- While I understand the value of exclusion filesystem attributes for items that may move, I'm actually much more concerned about never capturing items at particular paths. These are folders that may be deleted and recreated, and thus attributes will be lost. The good news here is that per-archive exclusions may work, except...
- The loss of exclusions per capture mean that one cannot set independent schedules for an item that is a subitem of a larger capture. For example, I backup my boot drive frequently, but exclude a subdirectory of VM images. However, previously the VM images could be captured on a separate event by a capture with a different exclusion set.
This is exactly the "mistake" that the new exclusion arrangement is designed to prevent you from making.
Here's the problem with the way it works in QRecall 1.2:
You capture your home folder every hour, but exclude you VM folder.
Every evening, you capture your home folder but do not exclude your VM folder.
The problem with this arrangement is that your VM folder alternately appears, and then disappears, from your archive. After the first capture your VM folder would not be captured. After the second, it would. If your repeat the first capture again it's gone again. If your hard drive crashes and you restore from the latest capture, your VM folder
would not be restored—because, as far as QRecall is concerned, it didn't exist when the third layer was captured.
The second problem this creates is that your VM folder get repeated captured in its entirely, rather than intelligently capturing just the changes. When the second capture runs, the VM folder doesn't exist in the archive history, so all of the files are captured as if they were brand new. After the third capture (that excludes the VM folder), the VM folder is erased in that layer. The next capture of the VM folder starts over from scratch because7mdash;again, from QRecall's perspective—all of the files are new.
What you really want to do is use the Ignore Changes feature. Set your VM folder to ignore changes for 20 hours or so. During the day, your startup volume or home folder can be quickly captured without trying to recapture your VM folder.
You can then create a second capture action to capture just your VM folder at the end of the day, or trigger that to run when your VM application quits.
Tip: I'd also suggest setting the "Deep Scan" option for the VM folder capture action, as VM packages (particularly Parallels) are notorious for tricking the filesystem change history into not seeing all of the changes.
Note that the "Ignore changes" option for capture preferences is not a good replacement, as it forces me to only ignore on a schedule whose timeline is opaque, I can't force a capture on an event (say, when VMWare quits).
Good point.
That's exactly why there's an exception to the rule: an ignore preference set on a folder is ignored when that folder is explicitly a target of a capture action. In other words, the per-item ignore preference only applies to items
contained in an item being captured, never
to the items listed in the capture action.
Finally a couple of UI issues:
- The exclusions scroll view in Archive settings is small, and cannot be resized. For exclusions inside ~/Library or long lists it's a frustrating interface to verify that all the items you want are present. This was not an issue with the prior interface in the capture action.
I've added this to the to-do list for QRecall 2.1, which will be a major UI facelift.
- If one does choose to use capture preferences as extended attributes, there's no simple UI to actually see what's excluded. Again this is necessary to verify you haven't missed something that should be excluded.
You can do this with the command-line tool. For example, this command will list all of the items contained in your home folder that have capture preferences set:
qrecall captureprefs list --recursive --skipnormal ~