If you open two databases in keepass, and click tools->sync both databases get merged into the one online database. I believe if they are both setup for sync then they should sync to their respective online addresses.
Clarification on this issue - it happens when database tab has been changed while sync is running in the background.
The issue is in the thread_sync(), MergeIn() and MergeOut() which are executed in separate thread by Sync(true) in OnFileSaved. All functions are getting current database by calling to m_Host.Database, while it can change if user change the tab; thus causing two database to merge in by MergeOut call which merging online database with a current database, that has been changed now.
The proper approach
-to save m_host.Database value and use stored value in all these functions
-do not use async synchronization
-track database change event
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Anonymous
Anonymous
-
2015-07-13
Post awaiting moderation.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Clarification on this issue - it happens when database tab has been changed while sync is running in the background.
The issue is in the thread_sync(), MergeIn() and MergeOut() which are executed in separate thread by Sync(true) in OnFileSaved. All functions are getting current database by calling to m_Host.Database, while it can change if user change the tab; thus causing two database to merge in by MergeOut call which merging online database with a current database, that has been changed now.
The proper approach
-to save m_host.Database value and use stored value in all these functions
-do not use async synchronization
-track database change event