ChronoSync not working to sync database between 2 computers

In the forums folks have suggested using ChronoSync to sync database between two computers – say a MacPro and a Macbook. I have tried that, and I can confirm that, at least with the settings I’ve tried, IT DOES NOT WORK. If I create two groups, one on each computer, and each group contains one item (e.g. plain text doc), after syncing the DEVONthink databases on each computer will only contain the last created item and its group. The two groups and items each had a unique name. I would have expected that after syncing each computer would contain both groups and both items.

If you’re familiar with ChronoSync, here are the most significant settings I used:

  • Bidirectional sync
  • Dissect packages
  • Synchronize deletions

In doing a bit more research, it appears that the problem has something to do with the changes DT makes to a group when data items are added to it, removed from it, or changed within in. If, for instance, the same group exists on two computers, and a different data item is added to the group on each of the computers, that creates a sync conflict because the group itself, not just the data items, is modified on each computer. The sync won’t work if you accept the group on either computer as the one to keep because then the data item on the other computer will be lost.

Does this make any sense? Can anyone offer any suggestions as to how to correctly and reliably synchronize databases using ChronoSync or any other sync utility? It seems like I need a deeper understanding of how DT stores data items within groups to properly configure ChronoSync – if this is even possible.

.

I stil don’t think it’s working for me.

Here’s DEVONthink (DT) setup:

  • I have DT databases on two different machines, Mac1 and Mac2.
  • The database paths are identical on the two machines. They are both “~/Documents/DEVONthink Databases/Test.dtBase2”.
  • On Mac1, I create a single group, “TEST (Mac1)”, with a single file, “test (Mac1)”.
  • On Mac2, I create a single group, “TEST (Mac2)”, with a single file, “test (Mac2)”.

Here’s the Chronosync (CS) setup:

  • Bidirectional synchronization
  • Synchronize deletions
  • Dissect packages
  • Automatically resolve conflicts by using newer

If I then run the synchronization, I end up with a single group, “TEST (Mac2)”, with a single file, “test (Mac2)”, on both machines. In other words, I lose the group and file from Mac1.

Any suggestions?

.

Correct.

Wow! If you don’t use bidirectional syncing, then you have to assume that the database on one computer is the master and the other is the slave. That is not the workflow I would like to use. Also, without dissecting packages you have to copy the entire DT database. That means if you add, edit, or delete a single data item, you have to copy the entire database. Not only is that pretty inefficient, but it also does not work unless, again, you assume a master/slave relationship between databases.

If you aren’t dissecting packages, I’m not sure what the value is in syncing deletions…at least as far as DT databases goes. You are either going to sync the entire database or not, and you won’t have any deletions to deal with unless you delete the entire database…which I never do.

I think you’re on to something here. I did just run verify & repair on my databases, and, sure enough, there were plenty of problem. I can’t say whether or not ChronoSync introduced the problems. In looking in the DT forums it appears that other people have seen this same issue when using ChronoSync.

BOTTOM LINE: It just seems like there isn’t a good way to sync DT databases between machines. I’m not willing to live with a master/slave workflow where only one database is in use at a time. I’m also not happy with a whole-package copy strategy where a single change anywhere in the database causes the entire database to be copied.

Then you bought the wrong product. DEVONthink isn’t designed for simultaneous use on two (or more) machines. It doesn’t do record locking; doesn’t manage user sessions, etc.

I never expected it to support simultaneous use, but I don’t quite understand why it can’t support the following workflow:

  • Create a DT database on Mac1.
  • Add stuff to that database.
  • Copy the database to Mac2.
  • Add stuff to the database on Mac2.
  • Use ChronoSync to sync the Mac1 database with the changes made on Mac2.
  • Add stuff to the database on Mac1.
  • Use ChronoSync to sync the Mac2 database with the changes made on Mac1.
  • etc.

Or even a slightly more complex workflow:

  • Create a DT database on Mac1.
  • Add stuff to that database.
  • Copy the database to Mac2.
  • Add stuff to the database on Mac1.
  • Add stuff to the database on Mac2.
  • Use ChronoSync to sync the the two database on the two machines.

That’s the workflow I’m after, and it seems like ChronoSync using “synchronize”, “dissect packages”, and “resolve using newest” should be able to handle that assuming one is willing to accept that if the same entity is modified on both Mac1 and Mac2 then the last one in wins.

That is not a sync, that is a one-directional, incremental back-up, it is everytime saving the changes from the database you worked with to it’s older adequate on the other Mac.
And there is no problem with that. That is the way I back-up my DT databases everyday - databases closed of course. No matter how many files and gb my databases hold, my back-up app only copies the changes: it copies new added files and the dtmeta-files that changed because of adding files. There is no way that it would ever copy the whole package/database just because I made small changes. I use Synchronize Pro X, but ChronoSync will do the same.

Now that would be a sync.
Problem is that DT on Mac1 with databaseA does not know what you do with databaseB on Mac2 booted from Mac2. And I would not expect a third party app to tell DT that by merging both databases’ indexes, at least I would not trust that concept. Synchronizing the files (no back up, bringing them together instead) that the database holds is one simple thing for any decent back-up application, but making DT aware of that changes is another thing which I would l leave to DT’s sync feature which is in the making and already in internal testing, see [url]Synchronizing on two Macs]

Kind regards,
Bernd