I keep all of my documents, well organized, in one folder. I indexed the folder into DTP. However, I continually add and change documents in that folder. I would like to be able to re-index/sync that folder on an ongoing basis. Is there anyway to do this easily? Ideally what I would like is for DTP to only index the new and changed files. Thanks for any help on this!
Hey that’s a good question!
I think you can use automator (DT Pro comes with some plugins for automator).
But I hope we can get a better answer from Bill or kervos (I think kervos is right spelling? ) or someone else.
A common approach is to attach the “Syncrhonize” trigger script to the top level group of your indexed folder. The script is found in the Extras/Scripts/Examples folder of the DEVONthink installation image.
Select the group to which you want to attach the script. Then, Tools > Show Info. In the Info panel, put the cursor in the Script field and then use the Select… button to browse to the location I mentioned above and select the script.
From that point, each time you select the group that the Synchronize script is attached to, the script will “trigger” and update the indexed files.
Took me longer to type this than it will take you to set it up. It’s easy.
This brings me to another question I have been wanting to ask:
I wonder if it is possible to sync a group in DT pro with a folder on an external drive (like a USB). For instance, notes and bookmarks and PDFs that I import directly into a group in DT Pro (while browsing etc.); is it possible to then sync that group with a folder on my USB?
By “sync” I assume you mean index the folder on the USB drive? Yes, that will work – however, when the USB is not connected, you’ll get a missing-file error if you try to browse that group in DEVONthink.
thanks for the reply.
So, if I have a group with imported data, and other clips from safari, notes and other files imported, then I want to sync the DT group with a folder on my USB- then I do the same procedure you mentioned above? B/C the procedure you mentioned above refers to an “indexed” folder. I am referring to files that have been imported.
Could I use a third party sync app (like SuperFlexibleSynchronizer) to sync a DT folder and a folder on my USB? If I tried I would have to search deep within the DT .dtbase to find the file I want to sync.
Thank you so much Korm! That worked beautifully.
I am guessing I can set this up with any top level folder I bring into DTP correct?
Thanks again. My problem has been solved.
Oh, sorry, I read it the other way round. DT synchronization with external folders is mainly a one-way street (though not entirely): DT assumes the “originals” are outside DT, and it essentially keeps aliases inside the database updated through scripts such as Synchronize, or File > Update Indexed Items. There’s no inbuilt way to have imported data that is stored inside DT sync with an external folder. Could be handled with scripting - if you’re so inclined - but it might be easier just to reverse your data model and put your data outside DT and index it into the database.
Nope. Won’t work. Look into a database package (Show Package Contents, in Finder) and the folder named Files.noindex inside that package. That’s where the imported files are stored. The structure is meaningful to DT, but doesn’t lend itself to synchronizing with your app.
Thanks so much for this tip, Korm. That’s a time saver!
Actually it is not there in the dmg Extras folder so I am wondering where this “Synchronize” script can be found? It is not in the “More scripts…” either.
Is this still the best way to synchronize folders with DTP?
Presently I am using Dropbox and Foxit as an iOS PDF reader for highlighting and notes. Foxit is the only app I’ve found that can do this and SPEAK the PDF text on an iOS device at variable speeds which is great! Once read and with notes my PDF is available on my all my devices through Dropbox.
The script is no longer in the Extras folder as it is no longer needed with later versions of DEVONthink. Indexed groups will now automatically synchronize when selected. There is also a new script that the developer has posted that will synchronize all indexed groups across all open databases when invoked (it is not an attached script as was the case with the synchronize script mentioned in this thread). You can find it here.