[Unison-hackers] [unison-svn] r321 - in trunk: doc src
Benjamin C. Pierce
bcpierce at seas.upenn.edu
Fri May 1 22:30:33 EDT 2009
Author: bcpierce
Date: 2009-05-01 22:30:31 -0400 (Fri, 01 May 2009)
New Revision: 321
Modified:
trunk/doc/changes.tex
trunk/src/RECENTNEWS
trunk/src/mkProjectInfo.ml
trunk/src/strings.ml
Log:
* Move descriptions of recent changes to documentation.
Modified: trunk/doc/changes.tex
===================================================================
--- trunk/doc/changes.tex 2009-05-02 01:57:23 UTC (rev 320)
+++ trunk/doc/changes.tex 2009-05-02 02:30:31 UTC (rev 321)
@@ -1,24 +1,142 @@
+\begin{changesfromversion}{2.31}
+\item Small user interface changes
+\begin{itemize}
+\item Small change to text UI "scanning..." messages, to print just
+ directories (hopefully making it clearer that individual files are
+ not necessarily being fingerprinted).
+\end{itemize}
+\item Minor fixes and improvements:
+\begin{itemize}
+\item 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.
+\item 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.)
+\item 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
+\end{itemize}
+\end{changesfromversion}
+
+\begin{changesfromversion}{2.27}
+\item 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.
+\item 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:
+\begin{itemize}
+\item {\tt 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.
+\item 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.)
+\item {\tt copythreshold} is an integer (-1 by default), indicating above what
+filesize (in megabytes) Unison should use 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.)
+\end{itemize}
+Thanks to Alan Schmitt for a huge amount of hacking and to an anonymous
+sponsor for suggesting and underwriting this extension.
+\item Small improvements:
+\begin{itemize}
+\item Added a new preference, {\tt dontchmod}. By default, Unison uses the
+{\tt chmod} system call to set the permission bits of files after it has
+copied them. But in some circumstances (and under some operating systems),
+the chmod call always fails. Setting this preference completely prevents
+Unison from ever calling {\tt chmod}.
+\item Don't ignore files that look like backup files if the {\tt
+ backuplocation} preference is set to {\tt central}
+\item Shortened the names of several preferences. The old names are also
+still supported, for backwards compatibility, but they do not appear in the
+documentation.
+\item 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.
+\item 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 \emph{or} the file's extended attributes without changing
+its modification time. It's not clear 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 {\tt fastcheck} set to false). The failure message has been changed to
+give this advice.
+\item Further improvements to the OS X GUI (thanks to Alan Schmitt and Craig
+Federighi).
+\end{itemize}
+\item 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:
+ \begin{itemize}
+ \item use the text UI
+ \item start Unison with the command-line flag "-repeat FOO",
+ where FOO is name of a file where Unison should look
+ for notifications of changes
+ \item 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
+ \item 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
+ \item that's it!
+ \end{itemize}
+ 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.
+\item Bug fixes:
+\begin{itemize}
+\item 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.)
+\item Follow maxthreads preference when transferring directories.
+\end{itemize}
+\end{changesfromversion}
+
\begin{changesfromversion}{2.17}
\item Major rewrite and cleanup of the whole Mac OS X graphical user
interface by Craig Federighi. Thanks, Craig!!!
-
\item Small fix to ctime (non-)handling in update detection under windows
with fastcheck.
-\end{changesfromversion}
-
-\begin{changesfromversion}{2.17}
\item Several small fixes to the GTK2 UI to make it work better under
Windows [thanks to Karl M for these].
-
\item The backup functionality has been completely rewritten. The external
interface has not changed, but numerous bugs, irregular behaviors, and
cross-platform inconsistencies have been corrected.
-
\item The Unison project now accepts donations via PayPal. If you'd like to
donate, you can find a link to the donation page on the
\URL{http://www.cis.upenn.edu/~bcpierce/unison/lists.html}{Unison home
page}.
-
\item Some important safety improvements:
\begin{itemize}
\item Added a new \verb|mountpoint| preference, which can be used to specify
@@ -26,13 +144,11 @@
(otherwise Unison aborts). This can be used to avoid potentially dangerous
situations when Unison is used with removable media such as external hard
drives and compact flash cards.
-
\item The confirmation of ``big deletes'' is now controlled by a boolean preference
\verb|confirmbigdeletes|. Default is true, which gives the same behavior as
previously. (This functionality is at least partly superceded by the
\verb|mountpoint| preference, but it has been left in place in case it is
useful to some people.)
-
\item If Unison is asked to ``follow'' a symbolic link but there is
nothing at the other end of the link, it will now flag this path as an
error, rather than treating the symlink itself as missing or deleted.
@@ -47,37 +163,28 @@
\item Added \verb|forcepartial| and \verb|preferpartial| preferences, which
behave like \verb|force| and \verb|prefer| but can be specified on a
per-path basis. [Thanks to Alan Schmitt for this.]
-
\item A bare-bones self test feature was added, which runs unison through
some of its paces and checks that the results are as expected. The
coverage of the tests is still very limited, but the facility has already
been very useful in debugging the new backup functionality (especially in
exposing some subtle cross-platform issues).
-
\item Refined debugging code so that the verbosity of individual modules
can be controlled separately. Instead of just putting '-debug
verbose' on the command line, you can put '-debug update+', which
causes all the extra messages in the Update module, but not other
modules, to be printed. Putting '-debug verbose' causes all modules
to print with maximum verbosity.
-
\item Removed \verb|mergebatch| preference. (It never seemed very useful, and
its semantics were confusing.)
-
\item Rewrote some of the merging functionality, for better cooperation
with external Harmony instances.
-
\item Changed the temp file prefix from \verb|.#| to \verb|.unison|.
-
\item Compressed the output from the text user interface (particularly
when run with the \verb|-terse| flag) to make it easier to interpret the
results when Unison is run several times in succession from a script.
-
\item Diff and merge functions now work under Windows.
-
\item Changed the order of arguments to the default diff command (so that
the + and - annotations in diff's output are reversed).
-
\item Added \verb|.mpp| files to the ``never fastcheck'' list (like
\verb|.xls| files).
\end{itemize}
@@ -134,24 +241,20 @@
internals have been rationalized and there are a number of new features.
See the manual (in particular, the description of the \verb|backupXXX|
preferences) for details.
-
\item Incorporated patches for ipv6 support, contributed by Samuel Thibault.
(Note that, due to a bug in the released OCaml 3.08.3 compiler, this code
will not actually work with ipv6 unless compiled with the CVS version of the
OCaml compiler, where the bug has been fixed; however, ipv4 should continue
to work normally.)
-
\item OSX interface:
\begin{itemize}
\item Incorporated Ben Willmore's cool new icon for the Mac UI.
\end{itemize}
-
\item Small fixes:
\begin{itemize}
\item Fixed off by one error in month numbers (in printed dates) reported
by Bob Burger
\end{itemize}
-
\end{changesfromversion}
\begin{changesfromversion}{2.12.0}
@@ -169,14 +272,11 @@
(without changing the major version number) and new tarballs re-released as
needed. When this process converges, the patched beta version will be
dubbed stable.
-
\item Warning (failure in batch mode) when one path is completely emptied.
This prevents Unison from deleting everything on one replica when
the other disappear.
-
\item Fix diff bug (where no difference is shown the first time the diff
command is given).
-
\item User interface changes:
\begin{itemize}
\item Improved workaround for button focus problem (GTK2 UI)
@@ -197,7 +297,6 @@
\item Include profile name in the GTK2 window name
\item Added bindings ',' (same as '<') and '.' (same as '>') in the GTK2 UI
\end{itemize}
-
\item Mac GUI:
\begin{itemize}
\item actions like < and > scroll to the next item as necessary.
@@ -214,8 +313,6 @@
\item Size of left and right columns is now large enough so that
"PropsChanged" is not cut off.
\end{itemize}
-
-
\item Minor changes:
\begin{itemize}
\item Disable multi-threading when both roots are local
@@ -241,12 +338,10 @@
they occur in the diff preference
\item Improvements to syncing resource forks between Macs via a non-Mac system.
\end{itemize}
-
\end{changesfromversion}
\begin{changesfromversion}{2.10.2}
\item \incompatible{} Archive format has changed.
-
\item Source code availability: The Unison sources are now managed using
Subversion. One nice side-effect is that anonymous checkout is now
possible, like this:
@@ -257,7 +352,6 @@
(modulo one day) sources in the web export directory. To receive commit logs
for changes to the sources, subscribe to the \verb|unison-hackers| list
(\ONEURL{http://www.cis.upenn.edu/~bcpierce/unison/lists.html}).
-
\item Text user interface:
\begin{itemize}
\item Substantial reworking of the internal logic of the text UI to make it
@@ -266,7 +360,6 @@
the client is running on a Unix system and the {\tt EMACS} environment
variable is set to anything other than the empty string.
\end{itemize}
-
\item Native OS X gui:
\begin{itemize}
\item Added a synchronize menu item with keyboard shortcut
@@ -274,7 +367,6 @@
\item Fixes to compile for Panther
\item Miscellaneous improvements and bugfixes
\end{itemize}
-
\item Small changes:
\begin{itemize}
\item Changed the filename checking code to apply to Windows only, instead
@@ -316,9 +408,7 @@
Warning: the new merging functionality is not completely compatible with
old versions! Check the manual for details.
-
\item Files larger than 2Gb are now supported.
-
\item Added preliminary (and still somewhat experimental) support for the
Apple OS X operating system.
\begin{itemize}
@@ -341,7 +431,6 @@
\item Minor functionality changes:
\begin{itemize}
-
\item Added an {\tt ignorelocks} preference, which forces Unison to override left-over
archive locks. (Setting this preference is dangerous! Use it only if you
are positive you know what you are doing.)
@@ -357,7 +446,6 @@
{\tt assumeContentsAreImmutableNot}, which overrides the first, similarly
to {\tt ignorenot}. (Later amendment: these preferences are now called
{\tt immutable} and {\tt immutablenot}.)
-
\item The {\tt ignorecase} flag has been changed from a boolean to a three-valued
preference. The default setting, called {\tt default}, checks the operating systems
running on the client and server and ignores filename case if either of them is
@@ -365,40 +453,33 @@
this behavior. If you have been setting {\tt ignorecase} on the command
line using {\tt -ignorecase=true} or {\tt -ignorecase=false}, you will
need to change to {\tt -ignorecase true} or {\tt -ignorecase false}.
-
\item a new preference, 'repeat', for the text user interface (only). If 'repeat' is set to
a number, then, after it finishes synchronizing, Unison will wait for that many seconds and
then start over, continuing this way until it is killed from outside. Setting repeat to true
will automatically set the batch preference to true.
-
\item Excel files are now handled specially, so that the {\tt fastcheck}
optimization is skipped even if the {\tt fastcheck} flag is set. (Excel
does some naughty things with modtimes, making this optimization
unreliable and leading to failures during change propagation.)
-
\item The ignorecase flag has been changed from a boolean to a three-valued
preference. The default setting, called 'default', checks the operating systems
running on the client and server and ignores filename case if either of them is
OSX or Windows. Setting ignorecase to 'true' or 'false' overrides this behavior.
-
\item Added a new preference, 'repeat', for the text user interface (only,
at the moment). If 'repeat' is set to a number, then, after it finishes
synchronizing, Unison will wait for that many seconds and then start over,
continuing this way until it is killed from outside. Setting repeat to
true will automatically set the batch preference to true.
-
\item The 'rshargs' preference has been split into 'rshargs' and 'sshargs'
(mainly to make the documentation clearer). In fact, 'rshargs' is no longer
mentioned in the documentation at all, since pretty much everybody uses
ssh now anyway.
\end{itemize}
-
\item Documentation
\begin{itemize}
\item The web pages have been completely redesigned and reorganized.
(Thanks to Alan Schmitt for help with this.)
\end{itemize}
-
\item User interface improvements
\begin{itemize}
\item Added a GTK2 user interface, capable (among other things) of displaying filenames
@@ -412,7 +493,6 @@
\item Several small improvements to the text user interface, including a
progress display.
\end{itemize}
-
\item Bug fixes (too numerous to count, actually, but here are some):
\begin{itemize}
\item The {\tt maxthreads} preference works now.
@@ -432,7 +512,6 @@
\item Incorporated a fix by Dmitry Bely for setting utimes of read-only files
on Win32 systems.
\end{itemize}
-
\item Installation / portability:
\begin{itemize}
\item Unison now compiles with OCaml version 3.07 and later out of the box.
@@ -491,11 +570,11 @@
Unix
\item Small improvements:
\begin{itemize}
- \item If neither the {\\tt USERPROFILE} nor the {\\tt HOME} environment
+ \item If neither the {\tt USERPROFILE} nor the {\tt HOME} environment
variables are set, then Unison will put its temporary commit log
- (called {\\tt DANGER.README}) into the directory named by the
- {\\tt UNISON} environment variable, if any; otherwise it will use
- {\\tt C:}.
+ (called {\tt DANGER.README}) into the directory named by the
+ {\tt UNISON} environment variable, if any; otherwise it will use
+ {\tt C:}.
\item alternative set of values for fastcheck: yes = true; no = false;
default = auto.
\item -silent implies -contactquietly
@@ -549,7 +628,7 @@
update detection are now noted in the log file.
\item \verb|[END]| messages in log now use a briefer format
\item Changed the text UI startup sequence so that
- {\\tt ./unison -ui text} will use the default profile instead of failing.
+ {\tt ./unison -ui text} will use the default profile instead of failing.
\item Made some improvements to the error messages.
\item Added some debugging messages to remote.ml.
\end{itemize}
Modified: trunk/src/RECENTNEWS
===================================================================
--- trunk/src/RECENTNEWS 2009-05-02 01:57:23 UTC (rev 320)
+++ trunk/src/RECENTNEWS 2009-05-02 02:30:31 UTC (rev 321)
@@ -1,527 +1,6 @@
-CHANGES FROM VERSION 2.32.6
+CHANGES FROM VERSION 2.32.7
-* Update copyright notices and add GPLv3 boilerplate to .ml files
- (.mli files are left with a short copyright line, to reduce clutter)
+* Move descriptions of recent changes to documentation.
--------------------------------
-CHANGES FROM VERSION 2.32.5
-* Update copyright notices and add GPLv3 boilerplate to .ml files
- (.mli files are left with a short copyright line, to reduce clutter)
-
-* 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.
-
-CHANGES FROM VERSION 2.32.4
-
-* Text UI now includes the current time in its completion message
-
-* 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.)
-
-* Small improvement to text UI "scanning..." messages, to print just
- directories (hopefully making it clearer that individual files are
- not necessarily being fingerprinted).
-
-
-------------------------------
-CHANGES FROM VERSION 2.32.2
-
-* 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!)
-
--------------------------------
-CHANGES FROM VERSION 2.32.1
-
-* Applied a patch from Karl M to make the GTK2 version build with
- OCaml 3.11 on Windows.
-
-* Don't use shortcuts or external copy programs to transfer
- zero-length files (to avoid confusing status messages about
- shortcut-copying completely unrelated files that happen to also have
- zero length!).
-
--------------------------------
-CHANGES FROM VERSION 2.32.0
-
-* Bumped version number to reflect newly added preference
-
--------------------------------
-CHANGES FROM VERSION 2.31.11
-
-* 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.)
-
-* 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. But in some circumstances (and under some operating
- systems), the chmod call always fails. Setting this preference
- completely prevents Unison from ever calling chmod.
-
-* Add some suggestions to TODO file
-
--------------------------------
-CHANGES FROM VERSION 2.31.10
-
-* Another slight tweak.
-
--------------------------------
-CHANGES FROM VERSION 2.31.9
-
-* Slight tweak to the last commit, suggested by Rasmus.
-
--------------------------------
-CHANGES FROM VERSION 2.31.8
-
-* (Forgot to add a couple of new files.)
-
--------------------------------
-CHANGES FROM VERSION 2.31.5
-
-* A special hack for Rasmus, who has a special situation that requires
- the utimes-setting program to run 'setuid root' (and we do not want
- all of Unison to run setuid, so we just spin off an external utility
- to do it). This functionality is disabled by default and requires
- editing the source code (changing 'false' to 'true' on line 496 of
- props.ml) and recompiling to enable. If there are other people that
- want it, we can easily make it accessible using a preference
- instead, but I prefer not to add a preference until someone else
- requests it, to avoid creating an incompatible version.
-
-* Logging tweak.
-
--------------------------------
-CHANGES FROM VERSION 2.31.5
-
-* A special hack for Rasmus, who has a special situation that requires
- the utimes-setting program to run 'setuid root' (and we do not want
- all of Unison to run setuid, so we just spin off an external utility
- to do it). This functionality is disabled by default and requires
- editing the source code (changing 'false' to 'true' on line 496 of
- props.ml) and recompiling to enable. If there are other people that
- want it, we can easily make it accessible using a preference
- instead, but I prefer not to add a preference until someone else
- requests it, to avoid creating an incompatible version.
-
-* Logging tweak.
-
-* Resizing the update window vertically no longer moves the status
- label. Fix contributed by Pedro Melo.
-
--------------------------------
-
-CHANGES FROM VERSION 2.31.4
-
-* Don't ignore files that look like backup files if the {\\tt
- backuplocation} preference is set to {\\tt central}
-
--------------------------------
-CHANGES FROM VERSION 2.31.3
-
-* Updated documentation with recently added preferences.
-
-* Applied patch from Antoine Reilles for NetBSD compilation
-
-* Makefile tidying
-
--------------------------------
-CHANGES FROM VERSION 2.31.2
-
-* Added a bit of debugging code for Alan.
-
--------------------------------
-CHANGES FROM VERSION 2.31.1
-
-* Fixed a small bug with resuming interrupted file transfers when both
- replicas are local.
--------------------------------
-CHANGES FROM VERSION 2.31.-1
-
-* Fixed a couple of file-transfer bugs. (One was about copying
- resource forks. Another was about restarting interrupted transfers
- on files where exactly zero bytes had been transferred so far and
- the file had been created with null permissions -- believe it or
- not, this is possible with rsync!) This required a protocol change,
- so I'm also bumping the version number.
-
--------------------------------
-CHANGES FROM VERSION 2.30.4
-
-* Work on text UI to prepare for new filesystem watcher functionality
-
-* Record some current TODO items
-
--------------------------------
-CHANGES FROM VERSION 2.30.3
-
-* Update docs
-
--------------------------------
-CHANGES FROM VERSION 2.30.2
-
-fix quoting for Unix
-
--------------------------------
-CHANGES FROM VERSION 2.30.1
-
-- Fixed handling of paths containing spaces when using rsync
-- Better error report for fingerprint mismatch
--------------------------------
-CHANGES FROM VERSION 2.30.0
-
-* A better fix for the "single file transfer failed in large directory" issue.
-
--------------------------------
-CHANGES FROM VERSION 2.29.9
-
-* Trying a possible fix for the "assert failure in remote.ml" bug
- (thanks Jerome!)
-
--------------------------------
-CHANGES FROM VERSION 2.29.8
-
-* Updated documentation.
-
-* Shortened the names of several preferences. The old names are also
- still supported, for backwards compatibility, but they do not appear
- in the documentation.
-
--------------------------------
-CHANGES FROM VERSION 2.29.7
-
-* Squashed a bug in transferring partially transferred directories
- containing symlinks.
-
-* Squashed some more bugs in partial rsync transfers (rsync, oddly,
- creates files with zero permissions and then on the next run
- discovers that it cannot write to the file it partially wrote
- before!).
-
-* 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.)
-
--------------------------------
-CHANGES FROM VERSION 2.29.7
-
-* Squashed a bug in transferring partially transferred directories
- containing symlinks.
-
-* Squashed some more bugs in partial rsync transfers (rsync, oddly,
- creates files with zero permissions and then on the next run
- discovers that it cannot write to the file it partially wrote
- before!).
-
-* 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.)
-
--------------------------------
-CHANGES FROM VERSION 2.29.6
-
-* Fix a small bug in the external copyprog setup.
-
--------------------------------
-CHANGES FROM VERSION 2.29.5
-
-* Lots of little documentation tidying. (In particular, I finally
- spent the time to separate preferences into Basic and Advanced!
- This should hopefully make Unison a little more approachable for new
- users.)
-
--------------------------------
-CHANGES FROM VERSION 2.29.4
-
-* When using the internal transfer method, remove any temp file on the
- destination (which may be left over from a previous interrupted run
- of Unison) before starting the transfer.
-
-* Fixed (hopefully!) the bug causing Unison to backup the new archive
- version after a (partially or fully) successful merge.
-
-* Updated copyright notices to 2008. :-)
-
--------------------------------
-CHANGES FROM VERSION 2.29.3
-
-* Updated documentation to describe new features
-
-* Changed units of copythreshold to kilobytes
-
-* Added -z to flags for external rsync program
--------------------------------
-CHANGES FROM VERSION 2.29.2
-
-* Automatically supply "user@" in argument to external copy program.
-
--------------------------------
-CHANGES FROM VERSION 2.29.1
-
-Follow maxthreads preference when transferring directories.
--------------------------------
-CHANGES FROM VERSION 2.29.0
-
-This version introduces some pretty big changes, by BCP in
-collaboration with Alan Schmitt. We've tested them minimally, but
-this version should be considered "only for the adventurous" for the
-moment.
-
-* Added some more debugging code to remote.ml to give more informative
- error messages when we encounter the (dreaded and longstanding)
- "assert failed during file transfer" bug
-
-* Experimental support for invoking an external file transfer tool for
- whole-file copies instead of Unison's built-in transfer protocol.
-
- Two new preferences have been added:
-
- - 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.
-
- - copythreshold is an integer (-1 by default), indicating above
- what filesize (in megabytes) Unison should use 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.)
-
-* 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.
-
--------------------------------
-CHANGES FROM VERSION 2.28.51
-
-* Propagating changes from 2.27 branch
-
--------------------------------
-CHANGES FROM VERSION 2.28.51
-
-* Propagating changes from 2.27 branch
-
-
--------------------------------
-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.
-
-* Upgraded to GPL version 3 and added copyright notice to
- documentation files.
-
--------------------------------
-CHANGES FROM VERSION 2.28.36
-
-* Transfer changes from 2.27 branch
-
--------------------------------
--------------------------------
-CHANGES FROM VERSION 2.28.29
-
-* Propagage changes from 2.27 branch.
-
-
--------------------------------
-CHANGES FROM VERSION 2.28.23
-
-* Small improvement to error message when no archive files are
- found (thanks to Norman Ramsey).
-
-* Patch from Karl M for GTK2 UI:
- 1) reverts the problematic (when no profile is used)
- reloadProfile on the restart button.
- 2) it adds a reloadProfile call after the detectCmd for
- rescanning unsynchronized items.
- 3) it turns off confirmBigDeletes on a rescan and checks it
- before issuing a warning popup.
- 4) it adjusts the status results width so that everything fits.
-
--------------------------------
-CHANGES FROM VERSION 2.28.17
-
-* Applying a patch from Karl M to make the Restart button reload the
- profile in the uigtk2 UI.
-
-* Fixed a bug in the merge code (new archive was not being backed up).
- Minor improvements to the merge code to make it say more about what
- it's doing and why.
-
-
--------------------------------
-CHANGES FROM VERSION 2.28.16
-
-More Mac UI improvements
-* Revert the combo ProgressIndicator / status message (couldn't get the flicker to go away...)
-* Improved file change icons
- - Lighter color / slight gradient wash
- - Icons for Absent (opposite side of an add) and Unmodified (opposite side of a one sided change) -- these give the line balance
-* Display panel for errors occuring during Connecting... phase
-
--------------------------------
-CHANGES FROM VERSION 2.28.15
-
-Test commit.
-
--------------------------------
-CHANGES FROM VERSION 2.28.13
-
-* Roll back non-fix for GTK2 UI
-
--------------------------------
-CHANGES FROM VERSION 2.28.11
-
-* Added some files left out of the previous commit.
-
-* Fix for GTK2 UI, suggested by Karl M
-
--------------------------------
-CHANGES FROM VERSION 2.28.9
-
-* More Mac GUI goodness from Craig.
-
-Enhancements:
- - Default table layout is now outline view (middle choice in outline control)
- - Outline layout initial does "smart expand" to open one screen full
- - Action icons - Lighter parent icons
- - Icons for Left / Right work (Added, Modified, Deleted)
-
-Bug Fixes:
- - Fix problem with file Details not showing
- - Sort by Action not working
- - Missing status for some items (on right)
- - Reset view contents (clear recon items) when re-syncing
- - Action icons -- Fix upside-down question mark
- - Fix centering of "Connecting..." message when panel is resized
- - Force to progress to 100% when done
-
-Known Issues:
-
-1) The most controversial "enhancement" here is the replacement of the
- text for Left / Right (e.g. "Modified", "Deleted") with more
- compact / colorful icons. These icons are perhaps was too "loud",
- but Craig thinks that if he can tone them down a bit that this will
- be an improvement. [Actually, I like them pretty well as-is.]
-
- Any icon artists out there?
-
-2) The rendering of the status message in the main ProgressIndicator
- is currently leading to flicker.
-
--------------------------------
-CHANGES FROM VERSION 2.28.8
-
-* Some more files needed for Craig's updated Mac GUI.
-
--------------------------------
-CHANGES FROM VERSION 2.28.6
-
-* More improvements to the OSX GUI from Craig Federighi, including a very
- nice new "nested directory" display style and per-file progress bars. Any
- unison hackers using Macs are invited to check out the new UI and post
- any bugs or suggestions for improvement to the unison-hackers list.
-
- (There is one known issue that sometimes causes the list of changes to be
- redisplayed incorrectly after an Ignore command.)
-
--------------------------------
-CHANGES FROM VERSION 2.28.5
-
-* Add couple of missing files.
-
--------------------------------
-CHANGES FROM VERSION 2.28.4
-
-* Apply experimental patch from Craig Federighi, which seems to fix
- the deadlocks and crashes in new OSX UI. (Actually, this is a major
- rewrite and cleanup of the whole Cocoa UI.) Thanks, Craig!!!
-
- It would be great if some Mac users could help stress-test this fix.
-
--------------------------------
-CHANGES FROM VERSION 2.28.4
-
-* Apply experimental patch from Craig Federighi, which seems to fix
- the deadlocks and crashes in new OSX UI. (Actually, this is a major
- rewrite and cleanup of the whole Cocoa UI.) Thanks, Craig!!!
-
- It would be great if some Mac users could help stress-test this fix.
-
--------------------------------
-CHANGES FROM VERSION 2.28.3
-
-* Another fix to ctime (non-)handling
-
--------------------------------
-CHANGES FROM VERSION 2.28.1
-
-* Small fix to ctime (non-)handling in update detection under windows
- with fastcheck. This *might* fix the bug that Karl M. has reported.
- (Copying fix into trunk.)
-
--------------------------------
-CHANGES FROM VERSION 2.28.-2
-
-* 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 me improve it (e.g.,
- by writing a filesystem watcher for your favorite OS), please let
- me know.
-
- On the Unison side, the new behavior is incredibly 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.
-
- Since I'm an OSX user, I'm particularly interested in writing a
- watcher tool for this platform. If anybody knows about
- programming against the Spotlight API and can give me a hand,
- that would be much appreciated.
-
--------------------------------
Modified: trunk/src/mkProjectInfo.ml
===================================================================
--- trunk/src/mkProjectInfo.ml 2009-05-02 01:57:23 UTC (rev 320)
+++ trunk/src/mkProjectInfo.ml 2009-05-02 02:30:31 UTC (rev 321)
@@ -104,3 +104,4 @@
+
Modified: trunk/src/strings.ml
===================================================================
--- trunk/src/strings.ml 2009-05-02 01:57:23 UTC (rev 320)
+++ trunk/src/strings.ml 2009-05-02 02:30:31 UTC (rev 321)
@@ -4,7 +4,7 @@
let docs =
("about", ("About Unison",
"Unison File Synchronizer\n\
- Version 2.32.1\n\
+ Version 2.32.7\n\
\n\
"))
::
@@ -1154,7 +1154,7 @@
\032-debug xxx debug module xxx ('all' -> everything, 'verbose' -> more)\n\
\032-diff xxx command for showing differences between files\n\
\032-dontchmod When set, never use the chmod system call\n\
- \032-dumbtty do not change terminal settings in text UI (default true)\n\
+ \032-dumbtty do not change terminal settings in text UI\n\
\032-fastcheck xxx do fast update detection (true/false/default)\n\
\032-forcepartial xxx add a pattern to the forcepartial list\n\
\032-height n height (in lines) of main window in graphical interface\n\
@@ -1458,7 +1458,7 @@
\032 that may have been left over from a previous run of Unison that\n\
\032 was interrupted while reading or writing archive files; by\n\
\032 default, when Unison sees these lock files it will stop and\n\
- \032 request manualintervention. This option should be set only if\n\
+ \032 request manual intervention. This option should be set only if\n\
\032 you are positive that no other instance of Unison might be\n\
\032 concurrently accessing the same archive files (e.g., because\n\
\032 there was only one instance of unison running and it has just\n\
@@ -2582,16 +2582,133 @@
\n\
"))
::
- ("news", ("Changes in Version 2.32.1",
- "Changes in Version 2.32.1\n\
+ ("news", ("Changes in Version 2.32.7",
+ "Changes in Version 2.32.7\n\
\n\
+ \032 Changes since 2.31:\n\
+ \032 * Small user interface changes\n\
+ \032 + Small change to text UI \"scanning...\" messages, to print just\n\
+ \032 directories (hopefully making it clearer that individual\n\
+ \032 files are not necessarily being fingerprinted).\n\
+ \032 * Minor fixes and improvements:\n\
+ \032 + Ignore one hour differences when deciding whether a file may\n\
+ \032 have been updated. This avoids slow update detection after\n\
+ \032 daylight saving time changes under Windows. This makes Unison\n\
+ \032 slightly more likely to miss an update, but it should be safe\n\
+ \032 enough.\n\
+ \032 + Fix a small bug that was affecting mainly windows users. We\n\
+ \032 need to commit the archives at the end of the sync even if\n\
+ \032 there are no updates to propagate because some files (in\n\
+ \032 fact, if we've just switched to DST on windows, a LOT of\n\
+ \032 files) might have new modtimes in the archive. (Changed the\n\
+ \032 text UI only. It's less clear where to change the GUI.)\n\
+ \032 + Don't delete the temp file when a transfer fails due to a\n\
+ \032 fingerprint mismatch (so that we can have a look and see\n\
+ \032 why!) We've also added more debugging code togive more\n\
+ \032 informative error messages when we encounter the dreaded and\n\
+ \032 longstanding \"assert failed during file transfer\" bug\n\
+ \n\
+ \032 Changes since 2.27:\n\
+ \032 * If Unison is interrupted during a directory transfer, it will now\n\
+ \032 leave the partially transferred directory intact in a temporary\n\
+ \032 location. (This maintains the invariant that new files/directories\n\
+ \032 are transferred either completely or not at all.) The next time\n\
+ \032 Unison is run, it will continue filling in this temporary\n\
+ \032 directory, skipping transferring files that it finds are already\n\
+ \032 there.\n\
+ \032 * We've added experimental support for invoking an external file\n\
+ \032 transfer tool for whole-file copies instead of Unison's built-in\n\
+ \032 transfer protocol. Three new preferences have been added:\n\
+ \032 + copyprog is a string giving the name (and command-line\n\
+ \032 switches, if needed) of an external program that can be used\n\
+ \032 to copy large files efficiently. By default, rsync is\n\
+ \032 invoked, but other tools such as scp can be used instead by\n\
+ \032 changing the value of this preference. (Although this is not\n\
+ \032 its primary purpose, rsync is actually a pretty fast way of\n\
+ \032 copying files that don't already exist on the receiving\n\
+ \032 host.) For files that do already exist on (but that have been\n\
+ \032 changed in one replica), Unison will always use its built-in\n\
+ \032 implementation of the rsync algorithm.\n\
+ \032 + Added a \"copyprogrest\" preference, so that we can give\n\
+ \032 different command lines for invoking the external copy\n\
+ \032 utility depending on whether a partially transferred file\n\
+ \032 already exists or not. (Rsync doesn't seem to care about\n\
+ \032 this, but other utilities may.)\n\
+ \032 + copythreshold is an integer (-1 by default), indicating above\n\
+ \032 what filesize (in megabytes) Unison should use the external\n\
+ \032 copying utility specified by copyprog. Specifying 0 will\n\
+ \032 cause ALL copies to use the external program; a negative\n\
+ \032 number will prevent any files from using it. (Default is -1.)\n\
+ \032 Thanks to Alan Schmitt for a huge amount of hacking and to an\n\
+ \032 anonymous sponsor for suggesting and underwriting this extension.\n\
+ \032 * Small improvements:\n\
+ \032 + Added a new preference, dontchmod. By default, Unison uses\n\
+ \032 the chmod system call to set the permission bits of files\n\
+ \032 after it has copied them. But in some circumstances (and\n\
+ \032 under some operating systems), the chmod call always fails.\n\
+ \032 Setting this preference completely prevents Unison from ever\n\
+ \032 calling chmod.\n\
+ \032 + Don't ignore files that look like backup files if the\n\
+ \032 backuplocation preference is set to central\n\
+ \032 + Shortened the names of several preferences. The old names are\n\
+ \032 also still supported, for backwards compatibility, but they\n\
+ \032 do not appear in the documentation.\n\
+ \032 + Lots of little documentation tidying. (In particular,\n\
+ \032 preferences are separated into Basic and Advanced! This\n\
+ \032 should hopefully make Unison a little more approachable for\n\
+ \032 new users.\n\
+ \032 + Unison can sometimes fail to transfer a file, giving the\n\
+ \032 unhelpful message \"Destination updated during\n\
+ \032 synchronization\" even though the file has not been changed.\n\
+ \032 This can be caused by programs that change either the file's\n\
+ \032 contents or the file's extended attributes without changing\n\
+ \032 its modification time. It's not clear what is the best fix\n\
+ \032 for this - it is not Unison's fault, but it makes Unison's\n\
+ \032 behavior puzzling - but at least Unison can be more helpful\n\
+ \032 about suggesting a workaround (running once with fastcheck\n\
+ \032 set to false). The failure message has been changed to give\n\
+ \032 this advice.\n\
+ \032 + Many improvements to the OS X GUI (thanks to Alan Schmitt and\n\
+ \032 Craig Federighi), including a very nice new \"nested\n\
+ \032 directory\" display style and per-file progress bars.\n\
+ \032 * Very preliminary support for triggering Unison from an external\n\
+ \032 filesystem-watching utility. The current implementation is very\n\
+ \032 simple, not efficient, and almost completely untested--not ready\n\
+ \032 for real users. But if someone wants to help improve it (e.g., by\n\
+ \032 writing a filesystem watcher for your favorite OS), please make\n\
+ \032 yourself known!\n\
+ \032 On the Unison side, the new behavior is very simple:\n\
+ \032 + use the text UI\n\
+ \032 + start Unison with the command-line flag \"-repeat FOO\", where\n\
+ \032 FOO is name of a file where Unison should look for\n\
+ \032 notifications of changes\n\
+ \032 + when it starts up, Unison will read the whole contents of\n\
+ \032 this file (on both hosts), which should be a\n\
+ \032 newline-separated list of paths (relative to the root of the\n\
+ \032 synchronization) and synchronize just these paths, as if it\n\
+ \032 had been started with the \"-path=xxx\" option for each one of\n\
+ \032 them\n\
+ \032 + when it finishes, it will sleep for a few seconds and then\n\
+ \032 examine the watchfile again; if anything has been added, it\n\
+ \032 will read the new paths, synchronize them, and go back to\n\
+ \032 sleep\n\
+ \032 + that's it!\n\
+ \032 To use this to drive Unison \"incrementally,\" just start it in this\n\
+ \032 mode and start up a tool (on each host) to watch for new changes\n\
+ \032 to the filesystem and append the appropriate paths to the\n\
+ \032 watchfile. Hopefully such tools should not be too hard to write.\n\
+ \032 * Bug fixes:\n\
+ \032 + Fixed a bug that was causing new files to be created with\n\
+ \032 permissions 0x600 instead of using a reasonable default (like\n\
+ \032 0x644), if the 'perms' flag was set to 0. (Bug reported by\n\
+ \032 Ben Crowell.)\n\
+ \032 + Follow maxthreads preference when transferring directories.\n\
+ \n\
\032 Changes since 2.17:\n\
\032 * Major rewrite and cleanup of the whole Mac OS X graphical user\n\
\032 interface by Craig Federighi. Thanks, Craig!!!\n\
\032 * Small fix to ctime (non-)handling in update detection under\n\
\032 windows with fastcheck.\n\
- \n\
- \032 Changes since 2.17:\n\
\032 * Several small fixes to the GTK2 UI to make it work better under\n\
\032 Windows [thanks to Karl M for these].\n\
\032 * The backup functionality has been completely rewritten. The\n\
@@ -3017,13 +3134,10 @@
\032 * Fixed potential deadlock when synchronizing between Windows and\n\
\032 Unix\n\
\032 * Small improvements:\n\
- \032 + If neither the\n\
- \032 tt USERPROFILE nor the\n\
- \032 tt HOME environment variables are set, then Unison will put\n\
- \032 its temporary commit log (called\n\
- \032 tt DANGER.README) into the directory named by the\n\
- \032 tt UNISON environment variable, if any; otherwise it will use\n\
- \032 tt C:.\n\
+ \032 + If neither the USERPROFILE nor the HOME environment variables\n\
+ \032 are set, then Unison will put its temporary commit log\n\
+ \032 (called DANGER.README) into the directory named by the UNISON\n\
+ \032 environment variable, if any; otherwise it will use C:.\n\
\032 + alternative set of values for fastcheck: yes = true; no =\n\
\032 false; default = auto.\n\
\032 + -silent implies -contactquietly\n\
@@ -3070,9 +3184,8 @@
\032 + Paths that are not synchronized because of conflicts or\n\
\032 errors during update detection are now noted in the log file.\n\
\032 + [END] messages in log now use a briefer format\n\
- \032 + Changed the text UI startup sequence so that\n\
- \032 tt ./unison -ui text will use the default profile instead of\n\
- \032 failing.\n\
+ \032 + Changed the text UI startup sequence so that ./unison -ui\n\
+ \032 text will use the default profile instead of failing.\n\
\032 + Made some improvements to the error messages.\n\
\032 + Added some debugging messages to remote.ml.\n\
\n\
More information about the Unison-hackers
mailing list