<p>Are there any good references for synchronisation algorithms?</p>

<p>I'm interested in algorithms that synchronize the following kinds of data between multiple users:</p>

<ul>
<li>Calendars</li>
<li>Documents</li>
<li>Lists and outlines</li>
</ul>

<p>I'm not just looking for synchronization of contents of directories <em>a la</em> <a href="http://en.wikipedia.org/wiki/Rsync" rel="nofollow noreferrer">rsync</a>; I am interested in merging the data within individual files.</p>

[{'answer_id': 59527, 'author': 'ColinYounger', 'author_id': 1223, 'author_profile': 'https://Stackoverflow.com/users/1223', 'pm_score': 0, 'selected': False, 'text': '<p>I would have thought that looking at any of the open-source source code control applications would give you the right idea - merging changes between files is exactly what they do...</p>\n'}, {'answer_id': 59540, 'author': 'DGentry', 'author_id': 4761, 'author_profile': 'https://Stackoverflow.com/users/4761', 'pm_score': 3, 'selected': True, 'text': '<p><a href="http://en.wikipedia.org/wiki/SyncML" rel="nofollow noreferrer">SyncML</a> is a standard for data synchronization of things normally associated with someone\'s personal organizer. Nokia and Motorola were both using it heavily a few years ago, but I don\'t know its current state.</p>\n\n<p><a href="http://en.wikipedia.org/wiki/ICalendar" rel="nofollow noreferrer">iCalendar</a> is a calendar synchronization format specification, and <a href="http://en.wikipedia.org/wiki/CalDAV" rel="nofollow noreferrer">CalDAV</a> is an implementation of iCalendar atop the WebDAV protocol. Google searches for <a href="http://en.wikipedia.org/wiki/Calendar_%28application%29" rel="nofollow noreferrer">iCal</a> or iCalendar will likely turn up the iCal application supplied by Apple as part of Mac&nbsp;OS&nbsp;X. Keep looking down the list of results until you see something which looks like a protocol.</p>\n'}, {'answer_id': 276944, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>I believe <a href="http://en.wikipedia.org/wiki/Binary_delta_compression" rel="nofollow noreferrer">Delta Compression</a> is what you are looking for.</p>\n'}, {'answer_id': 2981620, 'author': 'DenNukem', 'author_id': 118878, 'author_profile': 'https://Stackoverflow.com/users/118878', 'pm_score': 4, 'selected': False, 'text': '<p>There\'s a high-level and very broad overview of all synchronisation \nalgorithms in <em><a href="http://www.ece.cmu.edu/~ece845/docs/optimistic-data-rep.pdf" rel="nofollow noreferrer">Optimistic Replication</a></em> (by Yasushi Saito and Marc Shapiro, <a href="http://en.wikipedia.org/wiki/Portable_Document_Format" rel="nofollow noreferrer">PDF</a> format).</p>\n'}]
['https://Stackoverflow.com/questions/59521', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1175/']