The bloat fear is a very real one, given that DT is overwhelming for a newbie as is. Not to mention that more features means more code, which means more bugs and more testing, which in turn mean longer delays between versions and increased clost.
It seems that Christian is solving a lot of feature requests with scripts. This makes me wonder if it would be worth adding a single feature that would allow the user to invoke specific scripts from the Toolbar, Context Menu, and from user-specified hotkeys. That way “features” could be added or enabled through configuration, rather than increasing the size of the codebase.
Regarding versioning, I’m generally for it. I would much rather have the contents of the DT db checked into cvs or subversion, which should work fine with the 2.0 plans for a filesystem-based db.
At least the scripts menu can be already added to the toolbar. And it’s possible to define shortcuts by modifying the filename of the scripts - just add three underscores and the desired shortcut. For example “Demo___Cmd+Ctrl+A.scpt” gets the shortcut Cmd-Ctrl-A.
Another possibility to define shortcuts is of course to use System Preferences > Keyboard & Mouse > Shortcuts.
To put it more simple, what about the History function of the Zope zodb database: hold let’s say 10 versions listed with date/time of the last change, every list item a hyperlink to the full entry, plus a possibility to compare two of the versions (diff-like), plus a possibility to copy one of the older versions to the recent one.
This would be a medium between the scripts Christian presented and a full fledged versioning system, which maybe would be too complicated for the average user.
I have a time machine backup drive. In that drive, it’s possible to navigate through the folders for a given backup and double-click the backed up DevonThink database. This opens the database, but in read-only mode because the time machine drive is read-only. From here, it’s possible to navigate the DT database and drag-and-drop individual files to the desktop
tell application id "DNtp"
repeat with theRecord in theRecords
-- code goes here
on error error_message number error_number
if the error_number is not -128 then display alert "DEVONthink" message error_message as warning