<br><br><div><span class="gmail_quote">On 6/1/07, <b class="gmail_sendername">Scott Trudeau</b> <<a href="mailto:strudeau@umich.edu">strudeau@umich.edu</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Right. But what happens when a user on the live site adds a new node<br>at the same time I add a new node on the local copy and the node id<br>conflicts? What happens if a user edits a node on the live site that<br>I also edit on the local copy? And that's without getting in to more
<br>comples site configuration syncing issues ...<br><br>Not impossible, but trickier than it might seem.<br><br>And on this same thread, a quick proof-of-concept by a Wordpress<br>developer for syncing Wordpress content offline using Google Gears:
<br><br><a href="http://blog.assembleron.com/2007/05/31/google-gears-caching-of-wordpress-in-php/">http://blog.assembleron.com/2007/05/31/google-gears-caching-of-wordpress-in-php/</a></blockquote><div><br><br>I attended Google Developer day and sat through most of the Google Data API, Mash-up sessions. They resolve conflicts using Optimistic Concurrency. Their API is completely REST so it's something we could also implement in Drupal.
<br><br><a href="http://code.google.com/apis/gdata/reference.html#Optimistic-concurrency">http://code.google.com/apis/gdata/reference.html#Optimistic-concurrency</a><br><br>I assume that Gears makes use of this data API to resolve these issues.
<br><br>Cheers,<br>Kieran<br><br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Scott<br><br>On 6/1/07, Xavier Bestel <<a href="mailto:xavier.bestel@free.fr">
xavier.bestel@free.fr</a>> wrote:<br>> On Fri, 2007-06-01 at 10:37 -0400, Scott Trudeau wrote:<br>> > Theoretically, a way to "sync" Drupal site instances (Google Gears<br>> > aside) would be awesome. Practically, it is a very hard problem to
<br>> > solve since most Drupal sites are in constant flux "in the wild" and<br>> > therefor, once you "copy" a local version of the site and make<br>> > changes, you have two separate branches with many potential
<br>> > opportunities for collision. You can handle some sync collisions<br>> > intelligently but there will always be weird cases. Also, I can't<br>> > even begin to imagine how much more effort it would take to build
<br>> > modules that can handle a sync framework.<br>><br>> And then ? It's the same thing when you take your time to add or edit a<br>> node on a busy site: you've got a "temporarily offline" reference in
<br>> your web browser which is "synced back" to the database when you press<br>> "save".<br>><br>><br>><br></blockquote></div><br><br clear="all"><br>-- <br>To strive, to seek, to find, and not to yield.
<br>