Loading ...
Sorry, an error occurred while loading the content.

49[unison-users] New beta-release (2.27)

Expand Messages
  • Benjamin Pierce
    Apr 15, 2007
      [A better-formatted version of the announcement... -B]

      On behalf of all the Unison developers and contributors, I am
      delighted to announce a new beta-release. Sources are now available
      from the download page, together with precompiled binaries for some


      This release has one known issue at this time: The 'fastcheck' option
      does not appear to be working reliably under windows. Once this is
      resolved, 2.27 will be promoted to stable status.

      - Benjamin


      Changes since 2.17:

      * 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 Unison home page:


      * Several small fixes to the GTK2 UI to make it work better
      under Windows [thanks to Karl M for these].

      * 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.

      * Some important safety improvements:

      + Added a new mountpoint preference, which can be used
      to specify a path that must exist in both replicas at
      the end of update detection (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.

      + The confirmation of "big deletes" is now controlled
      by a boolean preference confirmbigdeletes. Default is
      true, which gives the same behavior as
      previously. (This functionality is at least partly
      superceded by the mountpoint preference, but it has
      been left in place in case it is useful to some

      + 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. This avoids a potentially dangerous
      situation where a followed symlink points to an
      external filesystem that might be offline when Unison
      is run (whereupon Unison would cheerfully delete the
      corresponding files in the other replica!).

      * Smaller changes:

      + Added forcepartial and preferpartial preferences,
      which behave like force and prefer but can be
      specified on a per-path basis. [Thanks to Alan
      Schmitt for this.]

      + 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

      + 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.

      + Removed mergebatch preference. (It never seemed very
      useful, and its semantics were confusing.)

      + Rewrote some of the merging functionality, for better
      cooperation with external Harmony instances.

      + Changed the temp file prefix from .# to .unison.

      + Compressed the output from the text user interface
      (particularly when run with the -terse flag) to make
      it easier to interpret the results when Unison is run
      several times in succession from a script.

      + Diff and merge functions now work under Windows.

      + Changed the order of arguments to the default diff
      command (so that the + and - annotations in diff's
      output are reversed).

      + Added .mpp files to the "never fastcheck" list (like
      .xls files).

      * Many small bugfixes, including:

      + Fixed a longstanding bug regarding fastcheck and
      daylight saving time under Windows when Unison is set
      up to synchronize modification times. (Modification
      times cannot be updated in the archive in this case,
      so we have to ignore one hour differences.)

      + Fixed a bug that would occasionally cause the
      archives to be left in non-identical states on the
      two hosts after synchronization.

      + Fixed a bug that prevented Unison from communicating
      correctly between 32- and 64-bit architectures.

      + On windows, file creation times are no longer used as
      a proxy for inode numbers. (This is unfortunate, as
      it makes fastcheck a little less safe. But it turns
      out that file creation times are not reliable under
      Windows: if a file is removed and a new file is
      created in its place, the new one will sometimes be
      given the same creation date as the old one!)

      + Set read-only file to R/W on OSX before attempting to
      change other attributes.

      + Fixed bug resulting in spurious "Aborted" errors
      during transport (thanks to Jerome Vouillon)

      + Enable diff if file contents have changed in one
      replica, but only properties in the other.

      + Removed misleading documentation for 'repeat'

      + Fixed a bug in merging code where Unison could
      sometimes deadlock with the external merge program,
      if the latter produced large amounts of output.

      + Workaround for a bug compiling gtk2 user interface
      against current versions of gtk2+ libraries.

      + Added a better error message for "ambiguous paths".

      + Squashed a longstanding bug that would cause file
      transfer to fail with the message "Failed: Error in
      readWrite: Is a directory."

      + Replaced symlinks with copies of their targets in the
      Growl framework in src/uimac. This should make the
      sources easier to check out from the svn repository
      on WinXP systems.

      + Added a workaround (suggested by Karl M.) for the
      problem discussed on the unison users mailing list
      where, on the Windows platform, the server would hang
      when transferring files. I conjecture that the
      problem has to do with the RPC mechanism, which was
      used to make a call back from the server to the
      client (inside the Trace.log function) so that the
      log message would be appended to the log file on the
      client. The workaround is to dump these messages
      (about when xferbycopying shortcuts are applied and
      whether they succeed) just to the standard output of
      the Unison process, not to the log file.

      Changes since 2.13:

      * The features for performing backups and for invoking
      external merge programs have been completely rewritten by
      Stephane Lescuyer (thanks, Stephane!). The user-visible
      functionality should not change, but the internals have
      been rationalized and there are a number of new
      features. See the manual (in particular, the description
      of the backupXXX preferences) for details.

      * 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.)

      * Fixed off by one error in month numbers (in printed dates)
      reported by Bob Burger