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

Unison 2.5 (stable release) now available

Expand Messages
  • Benjamin C. Pierce
    Last week s beta-release didn t turn up any major issues, so we re promoting this version (plus a few more cosmetic improvements that people have been
    Message 1 of 1 , Sep 25, 2000
    • 0 Attachment
      Last week's beta-release didn't turn up any major issues, so we're
      promoting this version (plus a few more cosmetic improvements that
      people have been requesting) to a stable release.

      Get it from here:
      http://www.cis.upenn.edu/~bcpierce/unison/download.html

      Please let us know if you notice any problems.

      Enjoy,

      The Unison Team
      (Jerome, Trevor, and Benjamin)

      ---------------------------------------------------------------------------

      The current version of Unison is 2.5.1.

      Changes since 2.4.1:
      * Added a number of 'sorting modes' for the user interface. By
      default, conflicting changes are displayed at the top, and the
      rest of the entries are sorted in alphabetical order. This
      behavior can be changed in the following ways:
      + Setting the sortnewfirst preference to true causes newly
      created files to be displayed before changed files.
      + Setting sortbysize causes files to be displayed in increasing
      order of size.
      + Giving the preference sortfirst=<pattern> (where <pattern> is
      a path descriptor in the same format as 'ignore' and 'follow'
      patterns, causes paths matching this pattern to be displayed
      first.
      + Similarly, giving the preference sortlast=<pattern> causes
      paths matching this pattern to be displayed last.
      The sorting preferences are described in more detail in the user
      manual. The sortnewfirst and sortbysize flags can also be accessed
      from the 'Sort' menu in the grpahical user interface.
      * Added two new preferences that can be used to change unison's
      fundamental behavior to make it more like a mirroring tool instead
      of a synchronizer.
      + Giving the preference prefer with argument <root> (by adding
      -prefer <root> to the command line or prefer=<root>) to your
      profile) means that, if there is a conflict, the contents of
      <root> should be propagated to the other replica (with no
      questions asked). Non-conflicting changes are treated as
      usual.
      + Giving the preference force with argument <root> will make
      unison resolve all differences in favor of the given root,
      even if it was the other replica that was changed.
      These options should be used with care! (More information is
      available in the manual.)
      * Small changes:
      + Changed default answer to 'Yes' in all two-button dialogs in
      the graphical interface (this seems more intuitive).
      + The rsync preference has been removed (it was used to
      activate rsync compression for file transfers, but rsync
      compression is now enabled by default).
      + In the text user interface, the arrows indicating which
      direction changes are being propagated are printed
      differently when the user has overridded Unison's default
      recommendation (====> instead of ---->). This matches the
      behavior of the graphical interface, which displays such
      arrows in a different color.
      + Carriage returns (Control-M's) are ignored at the ends of
      lines in profiles, for Windows compatibility.
      + All preferences are now fully documented in the user manual.

      Changes since 2.3.12:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * New/improved functionality:
      + A new preference -sortbysize controls the order in which
      changes are displayed to the user: when it is set to true,
      the smallest changed files are displayed first. (The default
      setting is false.)
      + A new preference -sortnewfirst causes newly created files to
      be listed before other updates in the user interface.
      + We now allow the ssh protocol to specify a port.
      + Incompatible change: The unison: protocol is deprecated, and
      we added file: and socket:. You may have to modify your
      profiles in the .unison directory. If a replica is specified
      without an explicit protocol, we now assume it refers to a
      file. (Previously "//saul/foo" meant to use SSH to connect to
      saul, then access the foo directory. Now it means to access
      saul via a remote file mechanism such as samba; the old
      effect is now achieved by writing ssh://saul/foo.)
      + Changed the startup sequence for the case where roots are
      given but no profile is given on the command line. The new
      behavior is to use the default profile (creating it if it
      does not exist), and temporarily override its roots. The
      manual claimed that this case would work by reading no
      profile at all, but AFAIK this was never true.
      + In all user interfaces, files with conflicts are always
      listed first
      + A new preference 'sshversion' can be used to control which
      version of ssh should be used to connect to the server. Legal
      values are 1 and 2. (Default is empty, which will make unison
      use whatever version of ssh is installed as the default 'ssh'
      command.)
      + The situation when the permissions of a file was updated the
      same on both side is now handled correctly (we used to report
      a spurious conflict)
      * Improvements for the Windows version:
      + The fact that filenames are treated case-insensitively under
      Windows should now be handled correctly. The exact behavior
      is described in the cross-platform section of the manual.
      + It should be possible to synchronize with Windows shares,
      e.g., //host/drive/path.
      + Workarounds to the bug in syncing root directories in
      Windows. The most difficult thing to fix is an ocaml bug:
      Unix.opendir fails on c: in some versions of Windows.
      * Improvements to the GTK user interface (the Tk interface is no
      longer being maintained):
      + The UI now displays actions differently (in blue) when they
      have been explicitly changed by the user from Unison's
      default recommendation.
      + More colorful appearance.
      + The initial profile selection window works better.
      + If any transfers failed, a message to this effect is
      displayed along with 'Synchronization complete' at the end of
      the transfer phase (in case they may have scrolled off the
      top).
      + Added a global progress meter, displaying the percentage of
      total bytes that have been transferred so far.
      * Improvements to the text user interface:
      + The file details will be displayed automatically when a
      conflict is been detected.
      + when a warning is generated (e.g. for a temporary file left
      over from a previous run of unison) Unison will no longer
      wait for a response if it is running in -batch mode.
      + The UI now displays a short list of possible inputs each time
      it waits for user interaction.
      + The UI now quits immediately (rather than looping back and
      starting the interaction again) if the user presses 'q' when
      asked whether to propagate changes.
      + Pressing 'g' in the text user interface will proceed
      immediately with propagating updates, without asking any more
      questions.
      * Documentation and installation changes:
      + The manual now includes a FAQ, plus sections on common
      problems and on tricks contributed by users.
      + Both the download page and the download directory explicitly
      say what are the current stable and beta-test version
      numbers.
      + The OCaml sources for the up-to-the-minute developers'
      version (not guaranteed to be stable, or even to compile, at
      any given time!) are now available from the download page.
      + Added a subsection to the manual describing cross-platform
      issues (case conflicts, illegal filenames)
      * Many small bug fixes and random improvements.

      Changes since 2.3.1:
      * Several bug fixes. The most important is a bug in the rsync module
      that would occasionally cause change propagation to fail with a
      'rename' error.

      Changes since 2.2:
      * The multi-threaded transport system is now disabled by default.
      (It is not stable enough yet.)
      * Various bug fixes.
      * A new experimental feature:
      The final component of a -path argument may now be the wildcard
      specifier *. When Unison sees such a path, it expands this path on
      the client into into the corresponding list of paths by listing
      the contents of that directory.
      Note that if you use wildcard paths from the command line, you
      will probably need to use quotes or a backslash to prevent the *
      from being interpreted by your shell.
      If both roots are local, the contents of the first one will be
      used for expanding wildcard paths. (Nb: this is the first one
      after the canonization step -- i.e., the one that is listed first
      in the user interface -- not the one listed first on the command
      line or in the preferences file.)

      Changes since 2.1:
      * The transport subsystem now includes an implementation by Sylvain
      Gommier and Norman Ramsey of Tridgell and Mackerras's rsync
      protocol. This protocol achieves much faster transfers when only a
      small part of a large file has been changed by sending just diffs.
      This feature is mainly helpful for transfers over slow links---on
      fast local area networks it can actually degrade performance---so
      we have left it off by default. Start unison with the -rsync
      option (or put rsync=true in your preferences file) to turn it on.
      * ``Progress bars'' are now diplayed during remote file transfers,
      showing what percentage of each file has been transferred so far.
      * The version numbering scheme has changed. New releases will now be
      have numbers like 2.2.30, where the second component is
      incremented on every significant public release and the third
      component is the ``patch level.''
      * Miscellaneous improvements to the GTK-based user interface.
      * The manual is now available in PDF format.
      * We are experimenting with using a multi-threaded transport
      subsystem to transfer several files at the same time, making much
      more effective use of available network bandwidth. This feature is
      not completely stable yet, so by default it is disabled in the
      release version of Unison.
      If you want to play with the multi-threaded version, you'll need
      to recompile Unison from sources (as described in the
      documentation), setting the THREADS flag in Makefile.OCaml to
      true. Make sure that your OCaml compiler has been installed with
      the -with-pthreads configuration option. (You can verify this by
      checking whether the file threads/threads.cma in the OCaml
      standard library directory contains the string -lpthread near the
      end.)

      Changes since 1.292:
      * Reduced memory footprint (this is especially important during the
      first run of unison, where it has to gather information about all
      the files in both repositories).
      * Fixed a bug that would cause the socket server under NT to fail
      after the client exits.
      * Added a SHIFT modifier to the Ignore menu shortcut keys in GTK
      interface (to avoid hitting them accidentally).

      Changes since 1.231:
      * Tunneling over ssh is now supported in the Windows version. See
      the installation section of the manual for detailed instructions.
      * The transport subsystem now includes an implementation of the
      rsync protocol, built by Sylvain Gommier and Norman Ramsey. This
      protocol achieves much faster transfers when only a small part of
      a large file has been changed by sending just diffs. The rsync
      feature is off by default in the current version. Use the -rsync
      switch to turn it on. (Nb. We still have a lot of tuning to do:
      you may not notice much speedup yet.)
      * We're experimenting with a multi-threaded transport subsystem,
      written by Jerome Vouillon. The downloadable binaries are still
      single-threaded: if you want to try the multi-threaded version,
      you'll need to recompile from sources. (Say make THREADS=true.)
      Native thread support from the compiler is required. Use the
      option -threads N to select the maximal number of concurrent
      threads (default is 5). Multi-threaded and single-threaded
      clients/servers can interoperate.
      * A new GTK-based user interface is now available, thanks to Jacques
      Garrigue. The Tk user interface still works, but we'll be shifting
      development effort to the GTK interface from now on.
      * OCaml 3.00 is now required for compiling Unison from sources. The
      modules uitk and myfileselect have been changed to use labltk
      instead of camltk. To compile the Tk interface in Windows, you
      must have ocaml-3.00 and tk8.3. When installing tk8.3, put it in
      c:\Tcl rather than the suggested c:\Program Files\Tcl, and be sure
      to install the headers and libraries (which are not installed by
      default).
      * Added a new -addversionno switch, which causes unison to use
      unison-<currentversionnumber> instead of just unison as the remote
      server command. This allows multiple versions of unison to coexist
      conveniently on the same server: whichever version is run on the
      client, the same version will be selected on the server.

      Changes since 1.219:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * This version fixes several annoying bugs, including:
      + Some cases where propagation of file permissions was not
      working.
      + umask is now ignored when creating directories
      + directories are create writable, so that a read-only
      directory and its contents can be propagated.
      + Handling of warnings generated by the server.
      + Synchronizing a path whose parent is not a directory on both
      sides is now flagged as erroneous.
      + Fixed some bugs related to symnbolic links and nonexistant
      roots.
      o When a change (deletion or new contents) is propagated
      onto a 'follow'ed symlink, the file pointed to by the
      link is now changed. (We used to change the link itself,
      which doesn't fit our assertion that 'follow' means the
      link is completely invisible)
      o When one root did not exist, propagating the other root
      on top of it used to fail, becuase unison could not
      calculate the working directory into which to write
      changes. This should be fixed.
      * A human-readable timestamp has been added to Unison's archive
      files.
      * The semantics of Path and Name regular expressions now correspond
      better.
      * Some minor improvements to the text UI (e.g. a command for going
      back to previous items)
      * The organization of the export directory has changed --- should be
      easier to find / download things now.

      Changes since 1.200:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * This version has not been tested extensively on Windows.
      * Major internal changes designed to make unison safer to run at the
      same time as the replicas are being changed by the user.
      * Internal performance improvements.

      Changes since 1.190:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * A number of internal functions have been changed to reduce the
      amount of memory allocation, especially during the first
      synchronization. This should help power users with very big
      replicas.
      * Reimplementation of low-level remote procedure call stuff, in
      preparation for adding rsync-like smart file transfer in a later
      release.
      * Miscellaneous bug fixes.

      Changes since 1.180:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * Fixed some small bugs in the interpretation of ignore patterns.
      * Fixed some problems that were preventing the Windows version from
      working correctly when click-started.
      * Fixes to treatment of file permissions under Windows, which were
      causing spurious reports of different permissions when
      synchronizing between windows and unix systems.
      * Fixed one more non-tail-recursive list processing function, which
      was causing stack overflows when synchronizing very large
      replicas.

      Changes since 1.169:
      * The text user interface now provides commands for ignoring files.
      * We found and fixed some more non-tail-recursive list processing
      functions. Some power users have reported success with very large
      replicas.
      * INCOMPATIBLE CHANGE: Files ending in .tmp are no longer ignored
      automatically. If you want to ignore such files, put an
      appropriate ignore pattern in your profile.
      * INCOMPATIBLE CHANGE: The syntax of ignore and follow patterns has
      changed. Instead of putting a line of the form

      ignore = <regexp>
      in your profile (.unison/default.prf), you should put:

      ignore = Regexp <regexp>
      Moreover, two other styles of pattern are also recognized:

      ignore = Name <name>
      matches any path in which one component matches <name>, while

      ignore = Path <path>
      matches exactly the path <path>.
      Standard ``globbing'' conventions can be used in <name> and
      <path>:
      + a ? matches any single character except /
      + a * matches any sequence of characters not including /
      + [xyz] matches any character from the set {x, y, z }
      + {a,bb,ccc} matches any one of a, bb, or ccc.
      See the user manual for some examples.

      Changes since 1.146:
      * Some users were reporting stack overflows when synchronizing huge
      directories. We found and fixed some non-tail-recursive list
      processing functions, which we hope will solve the problem. Please
      give it a try and let us know.
      * Major additions to the documentation.

      Changes since 1.142:
      * Major internal tidying and many small bugfixes.
      * Major additions to the user manual.
      * Unison can now be started with no arguments -- it will prompt
      automatically for the name of a profile file containing the roots
      to be synchronized. This makes it possible to start the graphical
      UI from a desktop icon.
      * Fixed a small bug where the text UI on NT was raising a 'no such
      signal' exception.

      Changes since 1.139:
      * The precompiled windows binary in the last release was compiled
      with an old OCaml compiler, causing propagation of permissions not
      to work (and perhaps leading to some other strange behaviors we've
      heard reports about). This has been corrected. If you're using
      precompiled binaries on Windows, please upgrade.
      * Added a -debug command line flag, which controls debugging of
      various modules. Say -debug XXX to enable debug tracing for module
      XXX, or -debug all to turn on absolutely everything.
      * Fixed a small bug where the text UI on NT was raising a 'no such
      signal' exception.

      Changes since 1.111:
      * INCOMPATIBLE CHANGE: The names and formats of the preference files
      in the .unison directory have changed. In particular:
      + the file ``prefs'' should be renamed to default.prf
      + the contents of the file ``ignore'' should be merged into
      default.prf. Each line of the form REGEXP in ignore should
      become a line of the form ignore = REGEXP in default.prf.
      * Unison now handles permission bits and symbolic links. See the
      manual for details.
      * You can now have different preference files in your .unison
      directory. If you start unison like this

      unison profilename
      (i.e. with just one ``anonymous'' command-line argument), then the
      file ~/.unison/profilename.prf will be loaded instead of
      default.prf.
      * Some improvements to terminal handling in the text user interface
      * Added a switch -killServer that terminates the remote server
      process when the unison client is shutting down, even when using
      sockets for communication. (By default, a remote server created
      using ssh/rsh is terminated automatically, while a socket server
      is left running.)
      * When started in 'socket server' mode, unison prints 'server
      started' on stderr when it is ready to accept connections. (This
      may be useful for scripts that want to tell when a socket-mode
      server has finished initalization.)
      * We now make a nightly mirror of our current internal development
      tree, in case anyone wants an up-to-the-minute version to hack
      around with.
      * Added a file CONTRIB with some suggestions for how to help us make
      Unison better.



      News

      The current version of Unison is 2.5.1.

      Changes since 2.4.1:
      * Added a number of 'sorting modes' for the user interface. By
      default, conflicting changes are displayed at the top, and the
      rest of the entries are sorted in alphabetical order. This
      behavior can be changed in the following ways:
      + Setting the sortnewfirst preference to true causes newly
      created files to be displayed before changed files.
      + Setting sortbysize causes files to be displayed in increasing
      order of size.
      + Giving the preference sortfirst=<pattern> (where <pattern> is
      a path descriptor in the same format as 'ignore' and 'follow'
      patterns, causes paths matching this pattern to be displayed
      first.
      + Similarly, giving the preference sortlast=<pattern> causes
      paths matching this pattern to be displayed last.
      The sorting preferences are described in more detail in the user
      manual. The sortnewfirst and sortbysize flags can also be accessed
      from the 'Sort' menu in the grpahical user interface.
      * Added two new preferences that can be used to change unison's
      fundamental behavior to make it more like a mirroring tool instead
      of a synchronizer.
      + Giving the preference prefer with argument <root> (by adding
      -prefer <root> to the command line or prefer=<root>) to your
      profile) means that, if there is a conflict, the contents of
      <root> should be propagated to the other replica (with no
      questions asked). Non-conflicting changes are treated as
      usual.
      + Giving the preference force with argument <root> will make
      unison resolve all differences in favor of the given root,
      even if it was the other replica that was changed.
      These options should be used with care! (More information is
      available in the manual.)
      * Small changes:
      + Changed default answer to 'Yes' in all two-button dialogs in
      the graphical interface (this seems more intuitive).
      + The rsync preference has been removed (it was used to
      activate rsync compression for file transfers, but rsync
      compression is now enabled by default).
      + In the text user interface, the arrows indicating which
      direction changes are being propagated are printed
      differently when the user has overridded Unison's default
      recommendation (====> instead of ---->). This matches the
      behavior of the graphical interface, which displays such
      arrows in a different color.
      + Carriage returns (Control-M's) are ignored at the ends of
      lines in profiles, for Windows compatibility.
      + All preferences are now fully documented in the user manual.

      Changes since 2.3.12:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * New/improved functionality:
      + A new preference -sortbysize controls the order in which
      changes are displayed to the user: when it is set to true,
      the smallest changed files are displayed first. (The default
      setting is false.)
      + A new preference -sortnewfirst causes newly created files to
      be listed before other updates in the user interface.
      + We now allow the ssh protocol to specify a port.
      + Incompatible change: The unison: protocol is deprecated, and
      we added file: and socket:. You may have to modify your
      profiles in the .unison directory. If a replica is specified
      without an explicit protocol, we now assume it refers to a
      file. (Previously "//saul/foo" meant to use SSH to connect to
      saul, then access the foo directory. Now it means to access
      saul via a remote file mechanism such as samba; the old
      effect is now achieved by writing ssh://saul/foo.)
      + Changed the startup sequence for the case where roots are
      given but no profile is given on the command line. The new
      behavior is to use the default profile (creating it if it
      does not exist), and temporarily override its roots. The
      manual claimed that this case would work by reading no
      profile at all, but AFAIK this was never true.
      + In all user interfaces, files with conflicts are always
      listed first
      + A new preference 'sshversion' can be used to control which
      version of ssh should be used to connect to the server. Legal
      values are 1 and 2. (Default is empty, which will make unison
      use whatever version of ssh is installed as the default 'ssh'
      command.)
      + The situation when the permissions of a file was updated the
      same on both side is now handled correctly (we used to report
      a spurious conflict)
      * Improvements for the Windows version:
      + The fact that filenames are treated case-insensitively under
      Windows should now be handled correctly. The exact behavior
      is described in the cross-platform section of the manual.
      + It should be possible to synchronize with Windows shares,
      e.g., //host/drive/path.
      + Workarounds to the bug in syncing root directories in
      Windows. The most difficult thing to fix is an ocaml bug:
      Unix.opendir fails on c: in some versions of Windows.
      * Improvements to the GTK user interface (the Tk interface is no
      longer being maintained):
      + The UI now displays actions differently (in blue) when they
      have been explicitly changed by the user from Unison's
      default recommendation.
      + More colorful appearance.
      + The initial profile selection window works better.
      + If any transfers failed, a message to this effect is
      displayed along with 'Synchronization complete' at the end of
      the transfer phase (in case they may have scrolled off the
      top).
      + Added a global progress meter, displaying the percentage of
      total bytes that have been transferred so far.
      * Improvements to the text user interface:
      + The file details will be displayed automatically when a
      conflict is been detected.
      + when a warning is generated (e.g. for a temporary file left
      over from a previous run of unison) Unison will no longer
      wait for a response if it is running in -batch mode.
      + The UI now displays a short list of possible inputs each time
      it waits for user interaction.
      + The UI now quits immediately (rather than looping back and
      starting the interaction again) if the user presses 'q' when
      asked whether to propagate changes.
      + Pressing 'g' in the text user interface will proceed
      immediately with propagating updates, without asking any more
      questions.
      * Documentation and installation changes:
      + The manual now includes a FAQ, plus sections on common
      problems and on tricks contributed by users.
      + Both the download page and the download directory explicitly
      say what are the current stable and beta-test version
      numbers.
      + The OCaml sources for the up-to-the-minute developers'
      version (not guaranteed to be stable, or even to compile, at
      any given time!) are now available from the download page.
      + Added a subsection to the manual describing cross-platform
      issues (case conflicts, illegal filenames)
      * Many small bug fixes and random improvements.

      Changes since 2.3.1:
      * Several bug fixes. The most important is a bug in the rsync module
      that would occasionally cause change propagation to fail with a
      'rename' error.

      Changes since 2.2:
      * The multi-threaded transport system is now disabled by default.
      (It is not stable enough yet.)
      * Various bug fixes.
      * A new experimental feature:
      The final component of a -path argument may now be the wildcard
      specifier *. When Unison sees such a path, it expands this path on
      the client into into the corresponding list of paths by listing
      the contents of that directory.
      Note that if you use wildcard paths from the command line, you
      will probably need to use quotes or a backslash to prevent the *
      from being interpreted by your shell.
      If both roots are local, the contents of the first one will be
      used for expanding wildcard paths. (Nb: this is the first one
      after the canonization step -- i.e., the one that is listed first
      in the user interface -- not the one listed first on the command
      line or in the preferences file.)

      Changes since 2.1:
      * The transport subsystem now includes an implementation by Sylvain
      Gommier and Norman Ramsey of Tridgell and Mackerras's rsync
      protocol. This protocol achieves much faster transfers when only a
      small part of a large file has been changed by sending just diffs.
      This feature is mainly helpful for transfers over slow links---on
      fast local area networks it can actually degrade performance---so
      we have left it off by default. Start unison with the -rsync
      option (or put rsync=true in your preferences file) to turn it on.
      * ``Progress bars'' are now diplayed during remote file transfers,
      showing what percentage of each file has been transferred so far.
      * The version numbering scheme has changed. New releases will now be
      have numbers like 2.2.30, where the second component is
      incremented on every significant public release and the third
      component is the ``patch level.''
      * Miscellaneous improvements to the GTK-based user interface.
      * The manual is now available in PDF format.
      * We are experimenting with using a multi-threaded transport
      subsystem to transfer several files at the same time, making much
      more effective use of available network bandwidth. This feature is
      not completely stable yet, so by default it is disabled in the
      release version of Unison.
      If you want to play with the multi-threaded version, you'll need
      to recompile Unison from sources (as described in the
      documentation), setting the THREADS flag in Makefile.OCaml to
      true. Make sure that your OCaml compiler has been installed with
      the -with-pthreads configuration option. (You can verify this by
      checking whether the file threads/threads.cma in the OCaml
      standard library directory contains the string -lpthread near the
      end.)

      Changes since 1.292:
      * Reduced memory footprint (this is especially important during the
      first run of unison, where it has to gather information about all
      the files in both repositories).
      * Fixed a bug that would cause the socket server under NT to fail
      after the client exits.
      * Added a SHIFT modifier to the Ignore menu shortcut keys in GTK
      interface (to avoid hitting them accidentally).

      Changes since 1.231:
      * Tunneling over ssh is now supported in the Windows version. See
      the installation section of the manual for detailed instructions.
      * The transport subsystem now includes an implementation of the
      rsync protocol, built by Sylvain Gommier and Norman Ramsey. This
      protocol achieves much faster transfers when only a small part of
      a large file has been changed by sending just diffs. The rsync
      feature is off by default in the current version. Use the -rsync
      switch to turn it on. (Nb. We still have a lot of tuning to do:
      you may not notice much speedup yet.)
      * We're experimenting with a multi-threaded transport subsystem,
      written by Jerome Vouillon. The downloadable binaries are still
      single-threaded: if you want to try the multi-threaded version,
      you'll need to recompile from sources. (Say make THREADS=true.)
      Native thread support from the compiler is required. Use the
      option -threads N to select the maximal number of concurrent
      threads (default is 5). Multi-threaded and single-threaded
      clients/servers can interoperate.
      * A new GTK-based user interface is now available, thanks to Jacques
      Garrigue. The Tk user interface still works, but we'll be shifting
      development effort to the GTK interface from now on.
      * OCaml 3.00 is now required for compiling Unison from sources. The
      modules uitk and myfileselect have been changed to use labltk
      instead of camltk. To compile the Tk interface in Windows, you
      must have ocaml-3.00 and tk8.3. When installing tk8.3, put it in
      c:\Tcl rather than the suggested c:\Program Files\Tcl, and be sure
      to install the headers and libraries (which are not installed by
      default).
      * Added a new -addversionno switch, which causes unison to use
      unison-<currentversionnumber> instead of just unison as the remote
      server command. This allows multiple versions of unison to coexist
      conveniently on the same server: whichever version is run on the
      client, the same version will be selected on the server.

      Changes since 1.219:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * This version fixes several annoying bugs, including:
      + Some cases where propagation of file permissions was not
      working.
      + umask is now ignored when creating directories
      + directories are create writable, so that a read-only
      directory and its contents can be propagated.
      + Handling of warnings generated by the server.
      + Synchronizing a path whose parent is not a directory on both
      sides is now flagged as erroneous.
      + Fixed some bugs related to symnbolic links and nonexistant
      roots.
      o When a change (deletion or new contents) is propagated
      onto a 'follow'ed symlink, the file pointed to by the
      link is now changed. (We used to change the link itself,
      which doesn't fit our assertion that 'follow' means the
      link is completely invisible)
      o When one root did not exist, propagating the other root
      on top of it used to fail, becuase unison could not
      calculate the working directory into which to write
      changes. This should be fixed.
      * A human-readable timestamp has been added to Unison's archive
      files.
      * The semantics of Path and Name regular expressions now correspond
      better.
      * Some minor improvements to the text UI (e.g. a command for going
      back to previous items)
      * The organization of the export directory has changed --- should be
      easier to find / download things now.

      Changes since 1.200:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * This version has not been tested extensively on Windows.
      * Major internal changes designed to make unison safer to run at the
      same time as the replicas are being changed by the user.
      * Internal performance improvements.

      Changes since 1.190:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * A number of internal functions have been changed to reduce the
      amount of memory allocation, especially during the first
      synchronization. This should help power users with very big
      replicas.
      * Reimplementation of low-level remote procedure call stuff, in
      preparation for adding rsync-like smart file transfer in a later
      release.
      * Miscellaneous bug fixes.

      Changes since 1.180:
      * INCOMPATIBLE CHANGE: Archive format has changed. Make sure you
      synchronize your replicas before upgrading, to avoid spurious
      conflicts. The first sync after upgrading will be slow.
      * Fixed some small bugs in the interpretation of ignore patterns.
      * Fixed some problems that were preventing the Windows version from
      working correctly when click-started.
      * Fixes to treatment of file permissions under Windows, which were
      causing spurious reports of different permissions when
      synchronizing between windows and unix systems.
      * Fixed one more non-tail-recursive list processing function, which
      was causing stack overflows when synchronizing very large
      replicas.

      Changes since 1.169:
      * The text user interface now provides commands for ignoring files.
      * We found and fixed some more non-tail-recursive list processing
      functions. Some power users have reported success with very large
      replicas.
      * INCOMPATIBLE CHANGE: Files ending in .tmp are no longer ignored
      automatically. If you want to ignore such files, put an
      appropriate ignore pattern in your profile.
      * INCOMPATIBLE CHANGE: The syntax of ignore and follow patterns has
      changed. Instead of putting a line of the form

      ignore = <regexp>
      in your profile (.unison/default.prf), you should put:

      ignore = Regexp <regexp>
      Moreover, two other styles of pattern are also recognized:

      ignore = Name <name>
      matches any path in which one component matches <name>, while

      ignore = Path <path>
      matches exactly the path <path>.
      Standard ``globbing'' conventions can be used in <name> and
      <path>:
      + a ? matches any single character except /
      + a * matches any sequence of characters not including /
      + [xyz] matches any character from the set {x, y, z }
      + {a,bb,ccc} matches any one of a, bb, or ccc.
      See the user manual for some examples.

      Changes since 1.146:
      * Some users were reporting stack overflows when synchronizing huge
      directories. We found and fixed some non-tail-recursive list
      processing functions, which we hope will solve the problem. Please
      give it a try and let us know.
      * Major additions to the documentation.

      Changes since 1.142:
      * Major internal tidying and many small bugfixes.
      * Major additions to the user manual.
      * Unison can now be started with no arguments -- it will prompt
      automatically for the name of a profile file containing the roots
      to be synchronized. This makes it possible to start the graphical
      UI from a desktop icon.
      * Fixed a small bug where the text UI on NT was raising a 'no such
      signal' exception.

      Changes since 1.139:
      * The precompiled windows binary in the last release was compiled
      with an old OCaml compiler, causing propagation of permissions not
      to work (and perhaps leading to some other strange behaviors we've
      heard reports about). This has been corrected. If you're using
      precompiled binaries on Windows, please upgrade.
      * Added a -debug command line flag, which controls debugging of
      various modules. Say -debug XXX to enable debug tracing for module
      XXX, or -debug all to turn on absolutely everything.
      * Fixed a small bug where the text UI on NT was raising a 'no such
      signal' exception.

      Changes since 1.111:
      * INCOMPATIBLE CHANGE: The names and formats of the preference files
      in the .unison directory have changed. In particular:
      + the file ``prefs'' should be renamed to default.prf
      + the contents of the file ``ignore'' should be merged into
      default.prf. Each line of the form REGEXP in ignore should
      become a line of the form ignore = REGEXP in default.prf.
      * Unison now handles permission bits and symbolic links. See the
      manual for details.
      * You can now have different preference files in your .unison
      directory. If you start unison like this

      unison profilename
      (i.e. with just one ``anonymous'' command-line argument), then the
      file ~/.unison/profilename.prf will be loaded instead of
      default.prf.
      * Some improvements to terminal handling in the text user interface
      * Added a switch -killServer that terminates the remote server
      process when the unison client is shutting down, even when using
      sockets for communication. (By default, a remote server created
      using ssh/rsh is terminated automatically, while a socket server
      is left running.)
      * When started in 'socket server' mode, unison prints 'server
      started' on stderr when it is ready to accept connections. (This
      may be useful for scripts that want to tell when a socket-mode
      server has finished initalization.)
      * We now make a nightly mirror of our current internal development
      tree, in case anyone wants an up-to-the-minute version to hack
      around with.
      * Added a file CONTRIB with some suggestions for how to help us make
      Unison better.
    Your message has been successfully submitted and would be delivered to recipients shortly.