ownCloud provides synchronization between different device clients and a server. This way you can synchronize local directories or another device fast and easy. The synchronization process is completed by using a bidirectional file synchronizing tool called csync.
The ownCloud Client software can run on Linux, Windows, and MacOS as it has been written in C++ using the Qt Framework.
The synchronization itself keeps files in two separate repositories the same. When synchronized:
ownCloud is different from other syncing software as both changes to the local files or server will result in other files also being synced until a complete match is available.
During synchronization, ownCloud Client checks both repositories for changes very frequently. The local repository is also monitored, so if you decide to make a change (add, edit or remove data) the sync will immediately begin even if it is not check time.
Previous versions of ownCloud used timestamps as a way of determining which files have been changed. However, as time can be relative to the zone you are currently in this could lead to some unwanted miscommunication between the server and local clients unless you run the NTP (Network Time Protocol) on all participant devices.
That is why a more reliable way of syncing has been created - it involves a unique number that is changed whenever file is changed. In order to match different repositories the platform will have to make sure that all files from the first repository have the same unique number as the ones in the second.