pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/net/unison



Module Name:    pkgsrc
Committed By:   wiz
Date:           Fri Nov 20 20:18:47 UTC 2009

Modified Files:
        pkgsrc/net/unison: Makefile distinfo
        pkgsrc/net/unison/patches: patch-aa
Removed Files:
        pkgsrc/net/unison/patches: patch-ab patch-ac

Log Message:
Update to 2.32.52, ok tonio.
Set license.

Changes since 2.32.44:

    * Improvement to the code for resuming directory transfers: (1) make sure 
file information (permissions, ...) has been properly set when using a 
previously transferred temp file (2) make sure previously transferred 
directories are writable (other changes made in the developer version of Unison 
require a protocol change)
    * Got rid of the 16MiB marshalling limit by marshalling to a bigarray
    * Ignore one hour differences for deciding whether a file may have been 
updated. This avoids slow update detection after daylight saving time changes 
under Windows. This makes it slightly more likely to miss an update, but that 
should be safe enough.
    * Improved Unison icon under Windows
    * Case sensitivity information put in the archive (in a backward compatible 
way) and checked when the archive is loaded
    * Uses improved emulation of "select" call provided by Ocaml 3.11 under 
Windows (the GUI does not freeze as much during synchronization)
    * Upgraded to GPL version 3 and added copyright notice to documentation 
files.
    * 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.
    * Text UI
          o During update detection, display status by updating a single line 
rather than generating a new line of output every so often. That should be less 
confusing.
          o In repeat mode, don't save the archives when there is no update. 
Indeed, in this mode, we should minimize the amount of work performed and it is 
unlikely that the archives have changed much.
    * Bugfixes
          o Fixed quotation of paths and names when writing to a preference file
          o Fixed bug resulting in slow performances when transferring a file 
using our rsync implementation from a 64-bit architecture to a 32-bit 
architecture.
          o Fixed bug in Lwt_unix.run which could make it fail with a Not_found 
exception (see [Not_found raised in tryCopyMovedFile] errors)
          o Properly deals with non-conformant AppleDouble files produced by 
Mac OS X.
          o Fixed bug that results in Unison missing ressource fork changes
          o Applied a patch from Karl M to make the GTK2 version build with 
OCaml 3.11 on Windows.
          o Added some extra debugging code to remote.ml to give more 
informative error messages when people encounter the longstanding "assert 
failed during file transfer" bug.
          o Applied patch from Antoine Reilles for NetBSD compilation
          o Resizing the update window vertically no longer moves the status 
label. Fix contributed by Pedro Melo.

Changes since 2.31:

    * Minor fixes and improvements:
          o Ignore one hour differences when deciding whether a file may have 
been updated. This avoids slow update detection after daylight saving time 
changes under Windows. This makes Unison slightly more likely to miss an 
update, but it should be safe enough.
          o Fix a small bug that was affecting mainly windows users. We need to 
commit the archives at the end of the sync even if there are no updates to 
propagate because some files (in fact, if we've just switched to DST on 
windows, a LOT of files) might have new modtimes in the archive. (Changed the 
text UI only. It's less clear where to change the GUI.)
          o Don't delete the temp file when a transfer fails due to a 
fingerprint mismatch (so that we can have a look and see why!) We've also added 
more debugging code togive more informative error messages when we encounter 
the dreaded and longstanding "assert failed during file transfer" bug

Changes since 2.27:

    * If Unison is interrupted during a directory transfer, it will now leave 
the partially transferred directory intact in a temporary location. (This 
maintains the invariant that new files/directories are transferred either 
completely or not at all.) The next time Unison is run, it will continue 
filling in this temporary directory, skipping transferring files that it finds 
are already there.
    * We've added experimental support for invoking an external file transfer 
tool for whole-file copies instead of Unison's built-in transfer protocol. 
Three new preferences have been added:
          o copyprog is a string giving the name (and command-line switches, if 
needed) of an external program that can be used to copy large files 
efficiently. By default, rsync is invoked, but other tools such as scp can be 
used instead by changing the value of this preference. (Although this is not 
its primary purpose, rsync is actually a pretty fast way of copying files that 
don't already exist on the receiving host.) For files that do already exist on 
(but that have been changed in one replica), Unison will always use its 
built-in implementation of the rsync algorithm.
          o Added a "copyprogrest" preference, so that we can give different 
command lines for invoking the external copy utility depending on whether a 
partially transferred file already exists or not. (Rsync doesn't seem to care 
about this, but other utilities may.)
          o copythreshold is an integer (-1 by default), indicating above what 
filesize (in megabytse the external copying utility specified by copyprog. 
Specifying 0 will cause ALL copies to use the external program; a negative 
number will prevent any files from using it. (Default is -1.)
      Thanks to Alan Schmitt for a huge amount of hacking and o an anonymous 
sponsor for suggesting and underwriting this extension.
    * Small improvements:
          o Added a new preference, dontchmod. By default, Unison uses the 
chmod system call to set the permission bits of files after it has copied them. 
Butin some circumstances (and under some operating systems), the chmod call 
always fails. Setting this preference completely prevents Unison from ever 
calling chmod.
          o Don't ignore files that look like backup files if the 
backuplocation preference  set to central
          o Shortened the names of several preferences. The old names are also 
still supported, for backwards compatibility, but they do not appear in the 
documentation.
          o Lots of little documentation tidying. (In particular, preferences 
are separated into Basic and Advanced! This should hopefully make Unison a 
little more approachable for new users.
          o Unison can sometimes fail to transfer a file, giving the unhelpful 
message "Destination updated during synchronization"
#

    * Further improvements to the OS X GUI (thanks to Alan Schmitt and Craig 
Federighi).

# Very preliminary support for triggering Unison from an external 
filesystem-watching utility. The current implementation is very simple, not 
efficient, and almost completely untestedâ??not ready for real users. But if 
someone wants to help improve it (e.g., by writing a filesystem watcher for 
your favorite OS), please make yourself known!

On the Unison side, the new behavior is very simple:

    * use the text UI
    * start Unison with the command-line flag "-repeat FOO", where FOO is name 
of a file where Unison should look for notifications of changes
    * when it starts up, Unison will read the whole contents of this file (on 
both hosts), which should be a newline-separated list of paths (relative to the 
root of the synchronization) and synchronize just these paths, as if it had 
been started with the "-path=xxx" option for each one of them
    * when it finishes, it will sleep for a few seconds and then examine the 
watchfile again; if anything has been added, it will read the new paths, 
synchronize them, and go back to sleep
    * that's it!

To use this to drive Unison "incrementally," just start it in this mode and 
start up a tool (on each host) to watch for new changes to the filesystem and 
append the appropriate paths to the watchfile. Hopefully such tools should not 
be too hard to write.
# Bug fixes:

    * Fixed a bug that was causing new files to be created with permissions 
0x600 instead of using a reasonable default (like 0x644), if the 'perms' flag 
was set to 0. (Bug reported by Ben Crowell.)
    * Follow maxthreads preference when transferring directories.


To generate a diff of this commit:
cvs rdiff -u -r1.36 -r1.37 pkgsrc/net/unison/Makefile
cvs rdiff -u -r1.13 -r1.14 pkgsrc/net/unison/distinfo
cvs rdiff -u -r1.7 -r1.8 pkgsrc/net/unison/patches/patch-aa
cvs rdiff -u -r1.5 -r0 pkgsrc/net/unison/patches/patch-ab \
    pkgsrc/net/unison/patches/patch-ac

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.


Home | Main Index | Thread Index | Old Index