Loss of annotations when syncing DTTG and DT

I just posted a rather lengthy article on file permission issues in the DT section:

[url]File permissions in global inbox]

In short, under certain circumstances, files (e.g. pdf) can end up with the wrong permissions (read only) when imported into DT on a Mac. See details in that post.

This can have some serious ramifications for DTTG syncing, when annotating (or generally modifying) those files on the DTTG side of things. If you are not careful, you can lose a lot of work! In the following I describe the scenario where this hit me (even though I didn’t lose anything in the end, because I noticed right away):

(1) My workflow: One of my favorite aspects of DT is the ability to sync to DTTG and use it as my de-facto file system on iOS devices. An important aspect of my work is the reading, and annotating of scientific literature, mostly in form of pdfs). I love to do this part on my iPad. Everything gets synced to DTTG. From there I open the files in iAnnotate, where I do the annotating. Once I am done, the file gets returned to DTTG and then synced back to the Mac.

(2) The potential problem: As described in the other post, some of these pdfs can have read-only permission on the Mac. However, they will sync without problem to DTTG, so you will not notice. From there the files go to iAnnotate (or Goodreader or whatever), get annotated and then return to DTTG. So far so good. Now, when you sync back to the Mac, because the original file on the Mac is “read-only”, the annotations and other updates cannot get synced back. The problem is that this mechanism fails silently, i.e. everything looks fine, but isn’t. One day, you might delete everything from our iPad, believing that all changes have been properly synced back to the Mac! Annotating literature is one of the most precious, time-consuming activities. The loss would be severe.

The only protection against this is not to have any “read-only” files on the Mac side. The other post explains under what circumstances you create such files and how you can avoid it and/or how you can fix the permissions quickly across a database.

Thanks for the thorough testing and explanation @gg378.