Path to this page:
Subject: CVS commit: pkgsrc/net/unison
From: Thomas Klausner
Date: 2009-11-20 21:18:47
Message id: 20091120201848.0AACC175DD@cvs.netbsd.org
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.
Files: