[Unison-hackers] [unison-svn] r280 - trunk/src

Benjamin C. Pierce bcpierce at seas.upenn.edu
Fri May 30 07:45:48 EDT 2008


Author: bcpierce
Date: 2008-05-30 07:45:42 -0400 (Fri, 30 May 2008)
New Revision: 280

Modified:
   trunk/src/RECENTNEWS
   trunk/src/files.ml
   trunk/src/mkProjectInfo.ml
   trunk/src/update.ml
Log:
* Unison can sometimes fail to transfer a file, giving the unhelpful
  message "Destination updated during synchronization" even though the
  file has not been changed.  This can be caused by programs that
  change either the file's contents *or* the file's extended
  attributes without changing its modification time.  I'm not sure
  what is the best fix for this -- it is not Unison's fault, but it
  makes Unison's behavior puzzling -- but at least Unison can be more
  helpful about suggesting a workaround (running once with 'fastcheck'
  set to false).  The failure message has been changed to give this
  advice.

Modified: trunk/src/RECENTNEWS
===================================================================
--- trunk/src/RECENTNEWS	2008-05-29 16:08:45 UTC (rev 279)
+++ trunk/src/RECENTNEWS	2008-05-30 11:45:42 UTC (rev 280)
@@ -1,3 +1,16 @@
+CHANGES FROM VERSION 2.28.45
+
+* Unison can sometimes fail to transfer a file, giving the unhelpful
+  message "Destination updated during synchronization" even though the
+  file has not been changed.  This can be caused by programs that
+  change either the file's contents *or* the file's extended
+  attributes without changing its modification time.  I'm not sure
+  what is the best fix for this -- it is not Unison's fault, but it
+  makes Unison's behavior puzzling -- but at least Unison can be more
+  helpful about suggesting a workaround (running once with 'fastcheck'
+  set to false).  The failure message has been changed to give this
+  advice.
+-------------------------------
 CHANGES FROM VERSION 2.28.36
 
 * Transfer changes from 2.27 branch

Modified: trunk/src/files.ml
===================================================================
--- trunk/src/files.ml	2008-05-29 16:08:45 UTC (rev 279)
+++ trunk/src/files.ml	2008-05-30 11:45:42 UTC (rev 280)
@@ -261,9 +261,8 @@
           "The file %s\nhas been modified during synchronization.  \
            Transfer aborted.%s"
           (Fspath.concatToString currfspath path)
-          (if
-             Util.osType = `Win32 && Update.useFastChecking () &&
-             Props.same_time info.Fileinfo.desc archDesc
+          (if    Update.useFastChecking () 
+              && Props.same_time info.Fileinfo.desc archDesc
            then
              "  If this happens repeatedly, try running once with the \
               fastcheck option set to 'no'"

Modified: trunk/src/mkProjectInfo.ml
===================================================================
--- trunk/src/mkProjectInfo.ml	2008-05-29 16:08:45 UTC (rev 279)
+++ trunk/src/mkProjectInfo.ml	2008-05-30 11:45:42 UTC (rev 280)
@@ -67,3 +67,4 @@
 
 
 
+

Modified: trunk/src/update.ml
===================================================================
--- trunk/src/update.ml	2008-05-29 16:08:45 UTC (rev 279)
+++ trunk/src/update.ml	2008-05-30 11:45:42 UTC (rev 280)
@@ -1868,7 +1868,12 @@
   (* ...and check that this is a good description of what's out in the world *)
   let (_, uiNew) = buildUpdateRec archive fspath localPath false in
   if uiNew <> NoUpdates then
-    raise (Util.Transient "Destination updated during synchronization")
+    raise (Util.Transient (
+             "Destination updated during synchronization\n"
+           ^ (if useFastChecking() then
+                "  (if this happens repeatedly on a file that has not been changed, \n"
+              ^ "  try running once with 'fastcheck' set to false)"
+              else "")))
 
 let checkNoUpdatesOnRoot =
   Remote.registerRootCmd



More information about the Unison-hackers mailing list