Accepting request 65670 from network

Accepted submit request 65670 from user coolo

OBS-URL: https://build.opensuse.org/request/show/65670
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/unison?expand=0&rev=21
This commit is contained in:
Marcus Rückert 2011-04-01 10:36:42 +00:00 committed by Git OBS Bridge
parent 5e567d3adc
commit 8945da3695
7 changed files with 412 additions and 141 deletions

12
fix_makefile.patch Normal file
View File

@ -0,0 +1,12 @@
diff -Naur a/Makefile b/Makefile
--- a/Makefile 2010-10-08 17:44:59.000000000 +0200
+++ b/Makefile 2011-01-29 18:57:31.334257694 +0100
@@ -60,7 +60,7 @@
# NAME, VERSION, and MAJORVERSION, automatically generated
-include Makefile.ProjectInfo
-Makefile.ProjectInfo: mkProjectInfo.ml $(wildcard ../.bzr/branch/last-revision)
+Makefile.ProjectInfo: mkProjectInfo $(wildcard ../.bzr/branch/last-revision)
./mkProjectInfo > $@
mkProjectInfo: mkProjectInfo.ml

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1542e5d4ad03e928260e061a8ff9d5e0bca3282481ed8bec5552de17a0270485
size 697866

View File

@ -36,7 +36,7 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;}
<BR>
<div id="manualheader"><DIV CLASS="center"><FONT SIZE=7><FONT COLOR=black>Unison File Synchronizer</FONT><BR>
<FONT SIZE=6><FONT COLOR=black>User Manual and Reference Guide</FONT><BR>
<FONT SIZE=5>Version 2.32.52<BR>
<FONT SIZE=5>Version 2.40.61<BR>
<FONT SIZE=4>Copyright 1998-2009, Benjamin C. Pierce
</FONT></FONT></FONT></FONT></DIV></div><BR>
<BR>
@ -58,6 +58,7 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#upgrading">Upgrading</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#building">Building Unison from Scratch</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#build-unix">Unix</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#build-osx">Mac OS X</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#build-win">Windows</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="#build-opts">Installation Options</A><BR>
<A HREF="#tutorial"><FONT SIZE=4><B>Tutorial</B></FONT></A><BR>
@ -104,7 +105,7 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;}
<A HREF="#ssh"><FONT SIZE=4><B>Installing Ssh</B></FONT></A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#ssh-unix">Unix</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#ssh-win">Windows</A><BR>
<A HREF="#news"><FONT SIZE=4><B>Changes in Version 2.32.52</B></FONT></A><BR>
<A HREF="#news"><FONT SIZE=4><B>Changes in Version 2.40.61</B></FONT></A><BR>
</BLOCKQUOTE>
@ -187,7 +188,7 @@ Our implementation of the
<A HREF="http://samba.org/rsync/">rsync</A>
protocol was built by
<A HREF="http://www.eecs.harvard.edu/~nr/">Norman Ramsey</A>
and Sylvain Gommier. It is is based on
and Sylvain Gommier. It is based on
<A HREF="http://samba.anu.edu.au/~tridge/">Andrew Tridgell</A>'s
<A HREF="http://samba.anu.edu.au/~tridge/phd_thesis.pdf">thesis work</A>
and inspired by his
@ -301,7 +302,8 @@ Unison can be used with either of two user interfaces:
<OL CLASS="enumerate" type=1><LI CLASS="li-enumerate">
a simple textual interface, suitable for dumb terminals (and
running from scripts), and
<LI CLASS="li-enumerate">a more sophisticated grapical interface, based on Gtk2.
<LI CLASS="li-enumerate">a more sophisticated grapical interface, based on Gtk2 (on
Linux/Windows) or the native UI framework (on OSX).
</OL>
You will need to install a copy of Unison on every machine that you
want to synchronize. However, you only need the version with a
@ -385,7 +387,7 @@ Solaris, Linux, FreeBSD), and on both 32- and 64-bit architectures.<BR>
<H4 CLASS="subsubsection"><A NAME="build-unix"></A>Unix</H4><!--SEC END -->
You'll need the Objective Caml compiler (version 3.07 or later), which is
You'll need the Objective Caml compiler (version 3.11.2 or later), which is
available from <A HREF="http://caml.inria.fr"><TT>http://caml.inria.fr</TT></A>. Building and installing OCaml
on Unix systems is very straightforward; just follow the instructions in the
distribution. You'll probably want to build the native-code compiler in
@ -433,6 +435,27 @@ Put the <CODE>unison</CODE> executable somewhere in your search path, either
by adding the Unison directory to your PATH variable or by copying the
executable to some standard directory where executables are stored.<BR>
<BR>
<!--TOC subsubsection Mac OS X-->
<H4 CLASS="subsubsection"><A NAME="build-osx"></A>Mac OS X</H4><!--SEC END -->
To build the text-only user interface, follow the instructions above for
building on Unix systems. You should do this first, even if you are also
planning on building the GUI, just to make sure it works.<BR>
<BR>
To build the basic GUI version, you'll first need to download and install
the XCode developer tools from Apple. Once this is done, just type <TT>make UISTYLE=macnew</TT> in the <TT>src</TT> directory, and if things go well you
should get an application that you can move from <TT>uimacnew/build/Default/Unison.app</TT> to wherever you want it.<BR>
<BR>
There is also an experimental GUI with a somewhat smoother look and feel.
To compile this one (once you've got the basic one working), proceed as
follows:
<OL CLASS="enumerate" type=1><LI CLASS="li-enumerate">
Go to the <TT>uimacnew09</TT> directory and double-click the file <TT>BWToolkit.ibplugin</TT>.
<LI CLASS="li-enumerate">Go back up to the <TT>src</TT> directory and type <TT>make
UISTYLE=macnew09</TT>.
<LI CLASS="li-enumerate">You should get an application built for you at <TT>uimacnew09/build/Default/Unison.app</TT>.
</OL>
<!--TOC subsubsection Windows-->
<H4 CLASS="subsubsection"><A NAME="build-win"></A>Windows</H4><!--SEC END -->
@ -544,7 +567,8 @@ will remember the current state of both directories so that it will be
able to tell next time what has changed.) Type:
<PRE CLASS="verbatim">
unison a.tmp b.tmp
</PRE>
</PRE>(You may need to add <CODE>-ui text</CODE>, depending how your unison binary was built.)<BR>
<BR>
<BR>
<EM>Textual Interface:</EM><UL CLASS="itemize"><LI CLASS="li-itemize">
@ -578,7 +602,7 @@ direction that the change needs to be propagated. For example,
&lt;--- new file c [f]
</PRE>indicates that the file <TT>c</TT> has been modified only in the second
replica, and that the default action is therefore to propagate the new
version to the first replica. To <B>f</B>ollw Unison's recommendation,
version to the first replica. To <B>f</B>ollow Unison's recommendation,
press the &#8220;f&#8221; at the prompt.<BR>
<BR>
If both replicas are modified and their contents are different, then
@ -596,7 +620,7 @@ nothing is shown. Unison simply notes that the file is up to date.<BR>
<BR>
These display conventions are used by both versions of the user
interface. The only difference lies in the way in which Unison's
default actions are either accepted or overriden by the user.<BR>
default actions are either accepted or overridden by the user.<BR>
<BR>
<BR>
<EM>Textual Interface:</EM><UL CLASS="itemize"><LI CLASS="li-itemize">
@ -687,7 +711,7 @@ for installation instructions for the Windows version.<BR>
Running
<CODE>ssh</CODE> requires some coordination between the client and server
machines to establish that the client is allowed to invoke commands on
the server; please refer to the or <CODE>ssh</CODE> documentation
the server; please refer to the <CODE>ssh</CODE> documentation
for information on how to set this up. The examples in this section
use <CODE>ssh</CODE>, but you can substitute <CODE>rsh</CODE> for <CODE>ssh</CODE> if
you wish.<BR>
@ -1166,7 +1190,7 @@ In particular, the Unix
file has not been changed.<BR>
<BR>
Under normal circumstances, this approximation is safe, in the sense
that it may sometimes detect &#8220;false updates&#8221; will never miss a real
that it may sometimes detect &#8220;false updates&#8221; but will never miss a real
one. However, it is possible to fool it, for example by using
<CODE>retouch</CODE> to change a file's modtime back to a time in the past.
<BR>
@ -1193,7 +1217,7 @@ middle of detecting changes or propagating files.<BR>
<LI CLASS="li-itemize">Unison does not understand hard links.<BR>
<BR>
<LI CLASS="li-itemize">It is important to be a little careful when renaming directories
containing &#8220;ignore&#8221;d files. <BR>
containing <TT>ignore</TT>d files. <BR>
<BR>
For example, suppose Unison is synchronizing directory A between the two
machines called the &#8220;local&#8221; and the &#8220;remote&#8221; machine; suppose directory
@ -1359,15 +1383,16 @@ Basic options:
-auto automatically accept default (nonconflicting) actions
-batch batch mode: ask no questions at all
-doc xxx show documentation ('-doc topics' lists topics)
-follow xxx add a pattern to the follow list
-force xxx force changes from this replica to the other
-fat use appropriate options for FAT filesystems
-group synchronize group attributes
-ignore xxx add a pattern to the ignore list
-ignorenot xxx add a pattern to the ignorenot list
-nocreation xxx prevent file creations on one replica
-nodeletion xxx prevent file deletions on one replica
-noupdate xxx prevent file updates and deletions on one replica
-owner synchronize owner
-path xxx path to synchronize
-perms n part of the permissions which is synchronized
-prefer xxx choose this replica's version for conflicting changes
-root xxx root of a replica (should be used exactly twice)
-silent print nothing except error messages
-terse suppress status messages
@ -1390,34 +1415,45 @@ Advanced options:
-confirmbigdel ask about whole-replica (or path) deletes (default true)
-confirmmerge ask for confirmation before commiting results of a merge
-contactquietly suppress the 'contacting server' message during startup
-copymax n maximum number of simultaneous copyprog transfers
-copyprog xxx external program for copying large files
-copyprogrest xxx variant of copyprog for resuming partial transfers
-copyquoterem xxx add quotes to remote file name for copyprog (true/false/default)
-copythreshold n use copyprog on files bigger than this (if &gt;=0, in Kb)
-debug xxx debug module xxx ('all' -&gt; everything, 'verbose' -&gt; more)
-diff xxx command for showing differences between files
-dontchmod When set, never use the chmod system call
-diff xxx set command for showing differences between files
-dontchmod when set, never use the chmod system call
-dumbtty do not change terminal settings in text UI (default true)
-fastcheck xxx do fast update detection (true/false/default)
-follow xxx add a pattern to the follow list
-force xxx force changes from this replica to the other
-forcepartial xxx add a pattern to the forcepartial list
-halfduplex force half-duplex communication with the server
-height n height (in lines) of main window in graphical interface
-host xxx bind the socket to this host name in server socket mode
-ignorearchives ignore existing archive files
-ignorecase xxx identify upper/lowercase filenames (true/false/default)
-ignoreinodenumbers ignore inode number changes when detecting updates
-ignorelocks ignore locks left over from previous run (dangerous!)
-immutable xxx add a pattern to the immutable list
-immutablenot xxx add a pattern to the immutablenot list
-key xxx define a keyboard shortcut for this profile (in some UIs)
-killserver kill server when done (even when using sockets)
-label xxx provide a descriptive string label for this profile
-links xxx allow the synchronization of symbolic links (true/false/default)
-log record actions in logfile (default true)
-logfile xxx logfile name
-maxbackups n number of backed up versions of a file
-maxerrors n maximum number of errors before a directory transfer is aborted
-maxthreads n maximum number of simultaneous file transfers
-merge xxx add a pattern to the merge list
-mountpoint xxx abort if this path does not exist
-nocreationpartial xxx add a pattern to the nocreationpartial list
-nodeletionpartial xxx add a pattern to the nodeletionpartial list
-noupdatepartial xxx add a pattern to the noupdatepartial list
-numericids don't map uid/gid values by user/group names
-prefer xxx choose this replica's version for conflicting changes
-preferpartial xxx add a pattern to the preferpartial list
-pretendwin Use creation times for detecting updates
-repeat xxx synchronize repeatedly (text interface only)
-retry n re-try failed synchronizations N times (text ui only)
-rootalias xxx register alias for canonical root names
@ -1433,7 +1469,9 @@ Advanced options:
-sortnewfirst list new before changed files
-sshargs xxx other arguments (if any) for remote shell command
-sshcmd xxx path to the ssh executable
-stream use a streaming protocol for transferring file contents (default true)
-ui xxx select UI ('text' or 'graphic'); command-line only
-unicode xxx assume Unicode encoding in case insensitive mode
-xferbycopying optimize transfers using local copies (default true)
</PRE>
@ -1470,7 +1508,7 @@ If this preference is set, Unison will use it as the name of the directory used
This preference determines whether backups should be kept locally, near the original files, or in a central directory specified by the <TT>backupdir</TT> preference. If set to <CODE>local</CODE>, backups will be kept in the same directory as the original files, and if set to <CODE>central</CODE>, <TT>backupdir</TT> will be used instead.<BR>
<BR>
<DT CLASS="dt-description"><B>backupnot <TT>xxx</TT></B><DD CLASS="dd-description">
The values of this preference specify paths or individual files or regular expressions that should <EM>not</EM> be backed up, even if the <TT>backup</TT> preference selects them&mdash;i.e., it selectively overrides <TT>backup</TT>. The same caveats apply here as with <TT>ignore</TT> and t ignorenot.<BR>
The values of this preference specify paths or individual files or regular expressions that should <EM>not</EM> be backed up, even if the <TT>backup</TT> preference selects them&mdash;i.e., it selectively overrides <TT>backup</TT>. The same caveats apply here as with <TT>ignore</TT> and <TT>ignorenot</TT>.<BR>
<BR>
<DT CLASS="dt-description"><B>backupprefix <TT>xxx</TT></B><DD CLASS="dd-description">
When a backup for a file <CODE>NAME</CODE> is created, it is stored in a directory specified by <TT>backuplocation</TT>, in a file called <TT>backupprefix</TT><CODE>NAME</CODE><TT>backupsuffix</TT>. <TT>backupprefix</TT> can include a directory name (causing Unison to keep all backup files for a given directory in a subdirectory with this name), and both <TT>backupprefix</TT> and <TT>backupsuffix</TT> can contain the string<TT><I>$VERSION</I></TT>, which will be replaced by the <EM>age</EM> of the backup (1 for the most recent, 2 for the second most recent, and so on...). This keyword is ignored if it appears in a directory name in the prefix; if it does not appear anywhere in the prefix or the suffix, it will be automatically placed at the beginning of the suffix. <BR>
@ -1487,7 +1525,7 @@ See <TT>backupprefix</TT> for full documentation.<BR>
When this is set to <TT>true</TT>, the user interface will ask no questions at all. Non-conflicting changes will be propagated; conflicts will be skipped.<BR>
<BR>
<DT CLASS="dt-description"><B>confirmbigdel </B><DD CLASS="dd-description">
!When this is set to <TT>true</TT>, Unison will request an extra confirmation if it appears that the entire replica has been deleted, before propagating the change. If the <TT>batch</TT> flag is also set, synchronization will be aborted. When the <TT>path</TT> preference is used, the same confirmation will be requested for top-level paths. (At the moment, this flag only affects the text user interface.) See also the <TT>mountpoint</TT> preference.<BR>
When this is set to <TT>true</TT>, Unison will request an extra confirmation if it appears that the entire replica has been deleted, before propagating the change. If the <TT>batch</TT> flag is also set, synchronization will be aborted. When the <TT>path</TT> preference is used, the same confirmation will be requested for top-level paths. (At the moment, this flag only affects the text user interface.) See also the <TT>mountpoint</TT> preference.<BR>
<BR>
<DT CLASS="dt-description"><B>confirmmerge </B><DD CLASS="dd-description">
Setting this preference causes both the text and graphical interfaces to ask the user if the results of a merge command may be commited to the replica or not. Since the merge command works on temporary files, the user can then cancel all the effects of applying the merge if it turns out that the result is not satisfactory. In batch-mode, this preference has no effect. Default is false.<BR>
@ -1495,6 +1533,9 @@ Setting this preference causes both the text and graphical interfaces to ask the
<DT CLASS="dt-description"><B>contactquietly </B><DD CLASS="dd-description">
If this flag is set, Unison will skip displaying the `Contacting server' message (which some users find annoying) during startup.<BR>
<BR>
<DT CLASS="dt-description"><B>copymax <TT>n</TT></B><DD CLASS="dd-description">
A number indicating how many instances of the external copying utility Unison is allowed to run simultaneously (default to 1).<BR>
<BR>
<DT CLASS="dt-description"><B>copyprog <TT>xxx</TT></B><DD CLASS="dd-description">
A string giving the name of an external program that can be used to copy large files efficiently (plus command-line switches telling it to copy files in-place). The default setting invokes <TT>rsync</TT> with appropriate options&mdash;most users should not need to change it.<BR>
<BR>
@ -1531,10 +1572,13 @@ When this preference is set, Unison will create a file unison.dump on each host,
<BR>
<DT CLASS="dt-description"><B>fastcheck <TT>xxx</TT></B><DD CLASS="dd-description">
When this preference is set to <CODE>true</CODE>, Unison will use the modification time and length of a file as a
`pseudo inode number' when scanning replicas for updates, instead of reading the full contents of every file. Under Windows, this may cause Unison to miss propagating an update if the modification time and length of the file are both unchanged by the update. However, Unison will never <EM>overwrite</EM> such an update with a change from the other replica, since it always does a safe check for updates just before propagating a change. Thus, it is reasonable to use this switch under Windows most of the time and occasionally run Unison once with <TT>fastcheck</TT> set to <CODE>false</CODE>, if you are worried that Unison may have overlooked an update. The default value of the preference is <CODE>auto</CODE>, which causes Unison to use fast checking on Unix replicas (where it is safe) and slow checking on Windows replicas. For backward compatibility, <CODE>yes</CODE>, <CODE>no</CODE>, and <CODE>default</CODE> can be used in place of <CODE>true</CODE>, <CODE>false</CODE>, and <CODE>auto</CODE>. See the <A HREF="#fastcheck">Fast Checking</A> section for more information.<BR>
`pseudo inode number' when scanning replicas for updates, instead of reading the full contents of every file. Under Windows, this may cause Unison to miss propagating an update if the modification time and length of the file are both unchanged by the update. However, Unison will never <EM>overwrite</EM> such an update with a change from the other replica, since it always does a safe check for updates just before propagating a change. Thus, it is reasonable to use this switch under Windows most of the time and occasionally run Unison once with <TT>fastcheck</TT> set to <CODE>false</CODE>, if you are worried that Unison may have overlooked an update. For backward compatibility, <CODE>yes</CODE>, <CODE>no</CODE>, and <CODE>default</CODE> can be used in place of <CODE>true</CODE>, <CODE>false</CODE>, and <CODE>auto</CODE>. See the <A HREF="#fastcheck">Fast Checking</A> section for more information.<BR>
<BR>
<DT CLASS="dt-description"><B>fat </B><DD CLASS="dd-description">
When this is set to <TT>true</TT>, Unison will use appropriate options to synchronize efficiently and without error a replica located on a FAT filesystem on a non-Windows machine: do not synchronize permissions (<TT>perms = 0</TT>); never use chmod ( t dontchmod = true); treat filenames as case insensitive (<TT>ignorecase = true</TT>); do not attempt to synchronize symbolic links (<TT>links = false</TT>); ignore inode number changes when detecting updates (<TT>ignoreinodenumbers = true</TT>). Any of these change can be overridden by explicitely setting the corresponding preference in the profile.<BR>
<BR>
<DT CLASS="dt-description"><B>follow <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>-follow <I>pathspec</I></TT> causes Unison to treat symbolic links matching <TT><I>pathspec</I></TT> as `invisible' and behave as if the object pointed to by the link had appeared literally at this position in the replica. See the <A HREF="#symlinks">Symbolic Links</A> section for more details. The syntax of <TT><I>pathspec&gt;</I></TT> is described in the <A HREF="#pathspec">Path Specification</A> section.<BR>
Including the preference <TT>-follow <I>pathspec</I></TT> causes Unison to treat symbolic links matching <TT><I>pathspec</I></TT> as `invisible' and behave as if the object pointed to by the link had appeared literally at this position in the replica. See the <A HREF="#symlinks">Symbolic Links</A> section for more details. The syntax of <TT><I>pathspec</I></TT> is described in the <A HREF="#pathspec">Path Specification</A> section.<BR>
<BR>
<DT CLASS="dt-description"><B>force <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>-force <I>root</I></TT> causes Unison to resolve all differences (even non-conflicting changes) in favor of <TT><I>root</I></TT>. This effectively changes Unison from a synchronizer into a mirroring utility. <BR>
@ -1546,14 +1590,17 @@ This preference is overridden by the <CODE>forcepartial</CODE> preference.<BR>
This preference should be used only if you are <EM>sure</EM> you know what you are doing!<BR>
<BR>
<DT CLASS="dt-description"><B>forcepartial <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>forcepartial <I>PATHSPEC</I></TT><TT> -&gt; <I>root</I></TT> causes Unison to resolve all differences (even non-conflicting changes) in favor of <TT><I>root</I></TT> for the files in <TT><I>PATHSPEC</I></TT> (see the <A HREF="#pathspec">Path Specification</A> section for more information). This effectively changes Unison from a synchronizer into a mirroring utility. <BR>
Including the preference <TT>forcepartial = <I>PATHSPEC</I></TT><TT> -&gt; <I>root</I></TT> causes Unison to resolve all differences (even non-conflicting changes) in favor of <TT><I>root</I></TT> for the files in <TT><I>PATHSPEC</I></TT> (see the <A HREF="#pathspec">Path Specification</A> section for more information). This effectively changes Unison from a synchronizer into a mirroring utility. <BR>
<BR>
You can also specify <CODE>forcepartial PATHSPEC -&gt; newer</CODE> (or <CODE>forcepartial PATHSPEC older</CODE>) to force Unison to choose the file with the later (earlier) modtime. In this case, the <CODE>-times</CODE> preference must also be enabled.<BR>
<BR>
This preference should be used only if you are <EM>sure</EM> you know what you are doing!<BR>
<BR>
<DT CLASS="dt-description"><B>group </B><DD CLASS="dd-description">
When this flag is set to <CODE>true</CODE>, the group attributes of the files are synchronized. Whether the group names or the group identifiers are synchronizeddepends on the preference <TT>numerids</TT>.<BR>
When this flag is set to <CODE>true</CODE>, the group attributes of the files are synchronized. Whether the group names or the group identifiers are synchronized depends on the preference <TT>numerids</TT>.<BR>
<BR>
<DT CLASS="dt-description"><B>halfduplex </B><DD CLASS="dd-description">
When this flag is set to <TT>true</TT>, Unison network communication is forced to be half duplex (the client and the server never simultaneously emit data). If you experience unstabilities with your network link, this may help. The communication is always half-duplex when synchronizing with a Windows machine due to a limitation of Unison current implementation that could result in a deadlock.<BR>
<BR>
<DT CLASS="dt-description"><B>height <TT>n</TT></B><DD CLASS="dd-description">
Used to set the height (in lines) of the main window in the graphical user interface.<BR>
@ -1561,8 +1608,14 @@ Used to set the height (in lines) of the main window in the graphical user inter
<DT CLASS="dt-description"><B>ignore <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>-ignore <I>pathspec</I></TT> causes Unison to completely ignore paths that match <TT><I>pathspec</I></TT> (as well as their children). This is useful for avoiding synchronizing temporary files, object files, etc. The syntax of <TT><I>pathspec</I></TT> is described in the <A HREF="#pathspec">Path Specification</A> section, and further details on ignoring paths is found in the <A HREF="#ignore">Ignoring Paths</A> section.<BR>
<BR>
<DT CLASS="dt-description"><B>ignorearchives </B><DD CLASS="dd-description">
When this preference is set, Unison will ignore any existing archive files and behave as though it were being run for the first time on these replicas. It is not a good idea to set this option in a profile: it is intended for command-line use.<BR>
<BR>
<DT CLASS="dt-description"><B>ignorecase <TT>xxx</TT></B><DD CLASS="dd-description">
When set to <TT>true</TT>, this flag causes Unison to treat filenames as case insensitive&mdash;i.e., files in the two replicas whose names differ in (upper- and lower-case) `spelling' are treated as the same file. When the flag is set to <TT>false</TT>, Unison will treat all filenames as case sensitive. Ordinarily, when the flag is set to <TT>default</TT>, filenames are automatically taken to be case-insensitive if either host is running Windows or OSX. In rare circumstances it is useful to set the flag manually (e.g. when running Unison on a Unix system with a FAT [Windows] volume mounted).<BR>
When set to <TT>true</TT>, this flag causes Unison to treat filenames as case insensitive&mdash;i.e., files in the two replicas whose names differ in (upper- and lower-case) `spelling' are treated as the same file. When the flag is set to <TT>false</TT>, Unison will treat all filenames as case sensitive. Ordinarily, when the flag is set to <TT>default</TT>, filenames are automatically taken to be case-insensitive if either host is running Windows or OSX. In rare circumstances it may be useful to set the flag manually.<BR>
<BR>
<DT CLASS="dt-description"><B>ignoreinodenumbers </B><DD CLASS="dd-description">
When set to true, this preference makes Unison not take advantage of inode numbers during fast update detection. This switch should be used with care, as it is less safe than the standard update detection method, but it can be useful with filesystems which do not support inode numbers.<BR>
<BR>
<DT CLASS="dt-description"><B>ignorelocks </B><DD CLASS="dd-description">
When this preference is set, Unison will ignore any lock files that may have been left over from a previous run of Unison that was interrupted while reading or writing archive files; by default, when Unison sees these lock files it will stop and request manual intervention. This option should be set only if you are <EM>positive</EM> that no other instance of Unison might be concurrently accessing the same archive files (e.g., because there was only one instance of unison running and it has just crashed or you have just killed it). It is probably not a good idea to set this option in a profile: it is intended for command-line use.<BR>
@ -1584,7 +1637,7 @@ Note that the semantics of <TT>ignore</TT> and <TT>ignorenot</TT> is a
if some parent of a given path matches an <TT>ignore</TT> pattern, then
it will be skipped even if the path itself matches an <TT>ignorenot</TT>
pattern. In particular, putting <TT>ignore = Path *</TT> in your profile
and then using t ignorenot to select particular paths to be
and then using <TT>ignorenot</TT> to select particular paths to be
synchronized will not work. Instead, you should use the <TT>path</TT>
preference to choose particular paths to synchronize.<BR>
<BR>
@ -1603,6 +1656,9 @@ When set to <CODE>true</CODE>, this flag causes Unison to kill the remote server
<DT CLASS="dt-description"><B>label <TT>xxx</TT></B><DD CLASS="dd-description">
Used in a profile to provide a descriptive string documenting its settings. (This is useful for users that switch between several profiles, especially using the `fast switch' feature of the graphical user interface.)<BR>
<BR>
<DT CLASS="dt-description"><B>links <TT>xxx</TT></B><DD CLASS="dd-description">
When set to <TT>true</TT>, this flag causes Unison to synchronize symbolic links. When the flag is set to <TT>false</TT>, symbolic links will result in an error during update detection. Ordinarily, when the flag is set to <TT>default</TT>, symbolic links are synchronized except when one of the hosts is running Windows. In rare circumstances it may be useful to set the flag manually.<BR>
<BR>
<DT CLASS="dt-description"><B>log </B><DD CLASS="dd-description">
When this flag is set, Unison will log all changes to the filesystems
on a file.<BR>
@ -1615,8 +1671,11 @@ By default, logging messages will be appended to the file
<DT CLASS="dt-description"><B>maxbackups <TT>n</TT></B><DD CLASS="dd-description">
This preference specifies the number of backup versions that will be kept by unison, for each path that matches the predicate <CODE>backup</CODE>. The default is 2.<BR>
<BR>
<DT CLASS="dt-description"><B>maxerrors <TT>n</TT></B><DD CLASS="dd-description">
This preference controls after how many errors Unison aborts a directory transfer. Setting it to a large number allows Unison to transfer most of a directory even when some files fail to be copied. The default is 1. If the preference is set too high, Unison may take a long time to abort in case of repeated failures (for instance, when the disk is full).<BR>
<BR>
<DT CLASS="dt-description"><B>maxthreads <TT>n</TT></B><DD CLASS="dd-description">
This preference controls how much concurrency is allowed during the transport phase. Normally, it should be set reasonably high (default is 20) to maximize performance, but when Unison is used over a low-bandwidth link it may be helpful to set it lower (e.g. to 1) so that Unison doesn't soak up all the available bandwidth.<BR>
This preference controls how much concurrency is allowed during the transport phase. Normally, it should be set reasonably high to maximize performance, but when Unison is used over a low-bandwidth link it may be helpful to set it lower (e.g. to 1) so that Unison doesn't soak up all the available bandwidth. The default is the special value 0, which mean 20 threads when file content streaming is desactivated and 1000 threads when it is activated.<BR>
<BR>
<DT CLASS="dt-description"><B>merge <TT>xxx</TT></B><DD CLASS="dd-description">
This preference can be used to run a merge program which will create a new version for each of the files and the backup, with the last backup and the both replicas. Setting the <TT>merge</TT> preference for a path will also cause this path to be backed up, just like t backup. The syntax of <TT><I>pathspec&gt;cmd</I></TT> is described in the <A HREF="#pathspec">Path Specification</A> section, and further details on Merging functions are present in the <A HREF="#merge">Merging files</A> section.<BR>
@ -1624,19 +1683,43 @@ This preference can be used to run a merge program which will create a new versi
<DT CLASS="dt-description"><B>mountpoint <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>-mountpoint PATH</TT> causes Unison to double-check, at the end of update detection, that <TT>PATH</TT> exists and abort if it does not. This is useful when Unison is used to synchronize removable media. This preference can be given more than once. See the <A HREF="#mountpoints">Mount Points</A> section.<BR>
<BR>
<DT CLASS="dt-description"><B>nocreation <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>-nocreation <I>root</I></TT> prevents Unison from performing any file creation on root <TT><I>root</I></TT>.<BR>
<BR>
This preference can be included twice, once for each root, if you want to prevent any creation.<BR>
<BR>
<DT CLASS="dt-description"><B>nocreationpartial <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>nocreationpartial = <I>PATHSPEC</I></TT><TT> -&gt; <I>root</I></TT> prevents Unison from performing any file creation in <TT><I>PATHSPEC</I></TT> on root <TT><I>root</I></TT> (see the <A HREF="#pathspec">Path Specification</A> section for more information). It is recommended to use <TT>BelowPath</TT> patterns when selecting a directory and all its contents.<BR>
<BR>
<DT CLASS="dt-description"><B>nodeletion <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>-nodeletion <I>root</I></TT> prevents Unison from performing any file deletion on root <TT><I>root</I></TT>.<BR>
<BR>
This preference can be included twice, once for each root, if you want to prevent any creation.<BR>
<BR>
<DT CLASS="dt-description"><B>nodeletionpartial <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>nodeletionpartial = <I>PATHSPEC</I></TT><TT> -&gt; <I>root</I></TT> prevents Unison from performing any file deletion in <TT><I>PATHSPEC</I></TT> on root <TT><I>root</I></TT> (see the <A HREF="#pathspec">Path Specification</A> section for more information). It is recommended to use <TT>BelowPath</TT> patterns when selecting a directory and all its contents.<BR>
<BR>
<DT CLASS="dt-description"><B>noupdate <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>-noupdate <I>root</I></TT> prevents Unison from performing any file update or deletion on root <TT><I>root</I></TT>.<BR>
<BR>
This preference can be included twice, once for each root, if you want to prevent any update.<BR>
<BR>
<DT CLASS="dt-description"><B>noupdatepartial <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>noupdatepartial = <I>PATHSPEC</I></TT><TT> -&gt; <I>root</I></TT> prevents Unison from performing any file update or deletion in <TT><I>PATHSPEC</I></TT> on root <TT><I>root</I></TT> (see the <A HREF="#pathspec">Path Specification</A> section for more information). It is recommended to use <TT>BelowPath</TT> patterns when selecting a directory and all its contents.<BR>
<BR>
<DT CLASS="dt-description"><B>numericids </B><DD CLASS="dd-description">
When this flag is set to <CODE>true</CODE>, groups and users are synchronized numerically, rather than by name. <BR>
<BR>
The special uid 0 and the special group 0 are never mapped via user/group names even if this preference is not set.<BR>
<BR>
<DT CLASS="dt-description"><B>owner </B><DD CLASS="dd-description">
When this flag is set to <CODE>true</CODE>, the owner attributes of the files are synchronized. Whether the owner names or the owner identifiers are synchronizeddepends on the preference extttnumerids.<BR>
When this flag is set to <CODE>true</CODE>, the owner attributes of the files are synchronized. Whether the owner names or the owner identifiers are synchronizeddepends on the preference <TT>numerids</TT>.<BR>
<BR>
<DT CLASS="dt-description"><B>path <TT>xxx</TT></B><DD CLASS="dd-description">
When no <CODE>path</CODE> preference is given, Unison will simply synchronize the two entire replicas, beginning from the given pair of roots. If one or more <CODE>path</CODE> preferences are given, then Unison will synchronize only these paths and their children. (This is useful for doing a fast sync of just one directory, for example.) Note that <TT>path</TT> preferences are intepreted literally&mdash;they are not regular expressions.<BR>
<BR>
<DT CLASS="dt-description"><B>perms <TT>n</TT></B><DD CLASS="dd-description">
The integer value of this preference is a mask indicating which permission bits should be synchronized. It is set by default to 0<I>o</I>1777: all bits but the set-uid and set-gid bits are synchronised (synchronizing theses latter bits can be a security hazard). If you want to synchronize all bits, you can set the value of this preference to &minus;1.<BR>
The integer value of this preference is a mask indicating which permission bits should be synchronized. It is set by default to 0<I>o</I>1777: all bits but the set-uid and set-gid bits are synchronised (synchronizing theses latter bits can be a security hazard). If you want to synchronize all bits, you can set the value of this preference to &minus;1. If one of the replica is on a FAT [Windows] filesystem, you should consider using the t fat preference instead of this preference. If you need Unison not to set permissions at all, set the value of this preference to 0 and set the preference t dontchmod to t true.<BR>
<BR>
<DT CLASS="dt-description"><B>prefer <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>-prefer <I>root</I></TT> causes Unison always to resolve conflicts in favor of <TT><I>root</I></TT>, rather than asking for guidance from the user. (The syntax of <TT><I>root</I></TT> is the same as for the <CODE>root</CODE> preference, plus the special values <CODE>newer</CODE> and <CODE>older</CODE>.) <BR>
@ -1646,13 +1729,10 @@ This preference is overridden by the <CODE>preferpartial</CODE> preference.<BR>
This preference should be used only if you are <EM>sure</EM> you know what you are doing!<BR>
<BR>
<DT CLASS="dt-description"><B>preferpartial <TT>xxx</TT></B><DD CLASS="dd-description">
Including the preference <TT>preferpartial <I>PATHSPEC</I></TT><TT> -&gt; <I>root</I></TT> causes Unison always to resolve conflicts in favor of <TT><I>root</I></TT>, rather than asking for guidance from the user, for the files in <TT><I>PATHSPEC</I></TT> (see the <A HREF="#pathspec">Path Specification</A> section for more information). (The syntax of <TT><I>root</I></TT> is the same as for the <CODE>root</CODE> preference, plus the special values <CODE>newer</CODE> and <CODE>older</CODE>.) <BR>
Including the preference <TT>preferpartial = <I>PATHSPEC</I></TT><TT> -&gt; <I>root</I></TT> causes Unison always to resolve conflicts in favor of <TT><I>root</I></TT>, rather than asking for guidance from the user, for the files in <TT><I>PATHSPEC</I></TT> (see the <A HREF="#pathspec">Path Specification</A> section for more information). (The syntax of <TT><I>root</I></TT> is the same as for the <CODE>root</CODE> preference, plus the special values <CODE>newer</CODE> and <CODE>older</CODE>.) <BR>
<BR>
This preference should be used only if you are <EM>sure</EM> you know what you are doing!<BR>
<BR>
<DT CLASS="dt-description"><B>pretendwin </B><DD CLASS="dd-description">
When set to true, this preference makes Unison use Windows-style fast update detection (using file creation times as &#8220;pseudo-inode-numbers&#8221;), even when running on a Unix system. This switch should be used with care, as it is less safe than the standard update detection method, but it can be useful for synchronizing VFAT filesystems (which do not support inode numbers) mounted on Unix systems. The <TT>fastcheck</TT> option should also be set to true.<BR>
<BR>
<DT CLASS="dt-description"><B>repeat <TT>xxx</TT></B><DD CLASS="dd-description">
Setting this preference causes the text-mode interface to synchronize repeatedly, rather than doing it just once and stopping. If the argument is a number, Unison will pause for that many seconds before beginning again.<BR>
<BR>
@ -1715,6 +1795,9 @@ This preference can be used to explicitly set the name of the ssh executable (e.
<DT CLASS="dt-description"><B>sshversion <TT>xxx</TT></B><DD CLASS="dd-description">
This preference can be used to control which version of ssh should be used to connect to the server. Legal values are 1 and 2, which will cause unison to try to use <CODE>ssh1</CODE> or<CODE>ssh2</CODE> instead of just <CODE>ssh</CODE> to invoke ssh. The default value is empty, which will make unison use whatever version of ssh is installed as the default `ssh' command.<BR>
<BR>
<DT CLASS="dt-description"><B>stream </B><DD CLASS="dd-description">
When this preference is set, Unison will use an experimental streaming protocol for transferring file contents more efficiently. The default value is <TT>true</TT>.<BR>
<BR>
<DT CLASS="dt-description"><B>terse </B><DD CLASS="dd-description">
When this preference is set to <TT>true</TT>, the user interface will not print status messages.<BR>
<BR>
@ -1731,6 +1814,9 @@ Because this option is processed specially during Unison's start-up sequence, it
<BR>
If the Unison executable was compiled with only a textual interface, this option has no effect. (The pre-compiled binaries are all compiled with both interfaces available.)<BR>
<BR>
<DT CLASS="dt-description"><B>unicode <TT>xxx</TT></B><DD CLASS="dd-description">
When set to <TT>true</TT>, this flag causes Unison to perform case insensitive file comparisons assuming Unicode encoding. This is the default. When the flag is set to <TT>false</TT>, a Latin 1 encoding is assumed. When Unison runs in case sensitive mode, this flag only makes a difference if one host is running Windows or Mac OS X. Under Windows, the flag selects between using the Unicode or 8bit Windows API for accessing the filesystem. Under Mac OS X, it selects whether comparing the filenames up to decomposition, or byte-for-byte.<BR>
<BR>
<DT CLASS="dt-description"><B>version </B><DD CLASS="dd-description">
Print the current version number and exit. (This option only makes sense on the command line.)<BR>
<BR>
@ -2206,15 +2292,19 @@ full Posix regexps are not currently supported).
<PRE>
Regex <TT><I>regexp</I></TT>
</PRE>
For convenience, two other styles of pattern are also recognized:
For convenience, three other styles of pattern are also recognized:
<PRE>
Name <TT><I>name</I></TT>
</PRE>
matches any path in which the last component matches <TT><I>name</I></TT>, while
matches any path in which the last component matches <TT><I>name</I></TT>,
<PRE>
Path <TT><I>path</I></TT>
</PRE>
matches exactly the path <TT><I>path</I></TT>.
matches exactly the path <TT><I>path</I></TT>, and
<PRE>
BelowPath <TT><I>path</I></TT>
</PRE>
matches the path <TT><I>path</I></TT> and any path below.
The <TT><I>name</I></TT> and <TT><I>path</I></TT> arguments of the latter forms of
patterns are <EM>not</EM> regular expressions. Instead,
standard &#8220;globbing&#8221; conventions can be used in <TT><I>name</I></TT> and
@ -2413,7 +2503,7 @@ can be found at the rsync web site (<A HREF="http://samba.anu.edu.au/rsync/"><TT
<BR>
If you are using Unison with <TT>ssh</TT>, you may get some speed
improvement by enabling <TT>ssh</TT>'s compression feature. Do this by
adding the option &#8220;<TT>-rshargs -C</TT>&#8221; to the command line or &#8220;<TT>rshargs = -C</TT>&#8221; to your profile. <BR>
adding the option &#8220;<TT>-sshargs -C</TT>&#8221; to the command line or &#8220;<TT>sshargs = -C</TT>&#8221; to your profile. <BR>
<BR>
<!--TOC subsection Making Unison Faster on Large Files-->
@ -2663,70 +2753,230 @@ you have trouble, you might try this one instead:
hosts, provide your remote user name when providing the remote root
(i.e., <CODE>//username@host/path...</CODE>).
</OL>
<hr><!--TOC section Changes in Version 2.32.52-->
<hr><!--TOC section Changes in Version 2.40.61-->
<H2 CLASS="section"><A NAME="news"></A>Changes in Version 2.32.52</H2><!--SEC END -->
<H2 CLASS="section"><A NAME="news"></A>Changes in Version 2.40.61</H2><!--SEC END -->
Changes since 2.32.44:
Changes since 2.40.1:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Improvement to the code for resuming directory transfers:
(1) make sure file information (permissions, ...) has been properly set
when using a previously transferred temp file
(2) make sure previously transferred directories are writable
(other changes made in the developer version of Unison require a
protocol change)
<LI CLASS="li-itemize">Got rid of the 16MiB marshalling limit by marshalling to a bigarray
<LI CLASS="li-itemize">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.
<LI CLASS="li-itemize">Improved Unison icon under Windows
<LI CLASS="li-itemize">Case sensitivity information put in the archive (in a backward
compatible way) and checked when the archive is loaded
<LI CLASS="li-itemize">Uses improved emulation of "select" call provided by Ocaml 3.11
under Windows (the GUI does not freeze as much during synchronization)
<LI CLASS="li-itemize">Upgraded to GPL version 3 and added copyright notice to
documentation files.
<LI CLASS="li-itemize">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 &ndash; it is not Unison's fault, but it
makes Unison's behavior puzzling &ndash; 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.
Added "BelowPath" patterns, that match a path as well as all paths below
(convenient to use with nodeletion,update,creationpartial preferences)
<LI CLASS="li-itemize">Added a "fat" preference that makes Unison use the right options
when one of the replica is on a FAT filesystem.
<LI CLASS="li-itemize">Allow "prefer/force=newer" even when not synchronizing modification
times. (The reconciler will not be aware of the modification time
of unchanged files, so the synchronization choices of Unison can be
different from when "times=true", but the behavior remains sane:
changed files with the most recent modification time will be
propagated.)
<LI CLASS="li-itemize">Minor fixes and improvements:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Compare filenames up to decomposition in case sensitive mode when
one host is running MacOSX and the unicode preference is set to
true.
<LI CLASS="li-itemize">Rsync: somewhat faster compressor
<LI CLASS="li-itemize">Make Unicode the default on all architectures (it was only the
default when a Mac OS X or Windows machine was involved).
</UL>
</UL>
Changes since 2.32:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Major enhancement: Unicode support.
<UL CLASS="itemize"><LI CLASS="li-itemize">
Unison should now handle unicode filenames correctly on all platforms.
<LI CLASS="li-itemize">This functionality is controlled by a new preference <TT>unicode</TT>.
<LI CLASS="li-itemize">Unicode mode is now the default when one of the hosts is under
Windows or MacOS. This may make upgrades a bit more painful (the
archives cannot be reused), but this is a much saner default.
</UL>
<LI CLASS="li-itemize">Partial transfer of directories. If an error occurs while
transferring a directory, the part transferred so far is copied into
place (and the archives are updated accordingly).
The "maxerrors" preference controls how many transfer error Unison
will accept before stopping the transfer of a directory (by default,
only one). This makes it possible to transfer most of a directory
even if there are some errors. Currently, only the first error is
reported by the GUIs.<BR>
<BR>
Also, allow partial transfer of a directory when there was an error deep
inside this directory during update detection. At the moment, this
is only activated with the text and GTK UIs, which have been
modified so that they show that the transfer is going to be partial
and so that they can display all errors.
<LI CLASS="li-itemize">Improvement to the code for resuming directory transfers:
<UL CLASS="itemize"><LI CLASS="li-itemize">
if a file was not correctly transferred (or the source has been
modified since, with unchanged size), Unison performs a new
transfer rather than failing
<LI CLASS="li-itemize">spurious files are deleted (this can happen if a file is deleted
on the source replica before resuming the transfer; not deleting
the file would result in it reappearing on the target replica)
</UL>
<LI CLASS="li-itemize">Experimental streaming protocol for transferring file contents (can
be disabled by setting the directive "stream" to false): file
contents is transfered asynchronously (without waiting for a response
from the destination after each chunk sent) rather than using the
synchronous RPC mechanism. As a consequence:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Unison now transfers the contents of a single file at a time
(Unison used to transfer several contents simultaneously in order
to hide the connection latency.)
<LI CLASS="li-itemize">the transfer of large files uses the full available bandwidth
and is not slowed done due to the connection latency anymore
<LI CLASS="li-itemize">we get performance improvement for small files as well by
scheduling many files simultaneously (as scheduling a file for
transfer consume little ressource: it does not mean allocating a
large buffer anymore)
</UL>
<LI CLASS="li-itemize">Changes to the internal implementation of the rsync algorithm:
<UL CLASS="itemize"><LI CLASS="li-itemize">
use longer blocks for large files (the size of a block is the
square root of the size of the file for large files);
<LI CLASS="li-itemize">transmit less checksum information per block (we still have less
than one chance in a hundred million of transferring a file
incorrectly, and Unison will catch any transfer error when
fingerprinting the whole file)
<LI CLASS="li-itemize">avoid transfer overhead (which was 4 bytes per block)
</UL>
For a 1G file, the first optimization saves a factor 50 on the
amount of data transferred from the target to the source (blocks
are 32768 bytes rather than just 700 bytes). The two other
optimizations save another factor of 2 (from 24 bytes per block
down to 10).
<LI CLASS="li-itemize">Implemented an on-disk file fingerprint cache to speed-up update
detection after a crash: this way, Unison does not have do recompute
all the file fingerprints from scratch.
<UL CLASS="itemize"><LI CLASS="li-itemize">
When Unison detects that the archive case-sensitivity mode
does not match the current settings, it populates the fingerprint
cache using the archive contents. This way, changing the
case-sensitivity mode should be reasonably fast.
</UL>
<LI CLASS="li-itemize">New preferences "noupdate=root", "nodeletion=root", "nocreation=root"
that prevent Unison from performing files updates, deletions or
creations on the given root. Also 'partial' versions of 'noupdate',
'nodeletion' and 'nocreation'
<LI CLASS="li-itemize">Limit the number of simultaneous external copy program
("copymax" preference)
<LI CLASS="li-itemize">New "links" preference. When set to false, Unison will report an
error on symlinks during update detection. (This is the default
when one host is running Windows but not Cygwin.) This is better
than failing during propagation.
<LI CLASS="li-itemize">Added a preference "halfduplex" to force half-duplex communication
with the server. This may be useful on unreliable links (as a more
efficient alternative to "maxthreads = 1").
<LI CLASS="li-itemize">Renamed preference "pretendwin" to "ignoreinodenumbers" (an alias is
kept for backwards compatibility).
<LI CLASS="li-itemize">Ignore one-second differences when synchronizing modification time.
(Technically, this is an incompatible archive format change, but it
is backward compatible. To trigger a problem, a user would have to
synchronize modification times on a filesystem with a two-second
granularity and then downgrade to a previous version of Unison,
which does not work well in such a case. Thus, it does not
seem worthwhile to increment the archive format number, which would
impact all users.)
<LI CLASS="li-itemize">Do not keep many files simultaneously opened anymore when the rsync
algorithm is in use.
<LI CLASS="li-itemize">Add &#8220;ignorearchives&#8221; preference to ignore existing archives (to
avoid forcing users to delete them manually, in situations where one
archive has gotten deleted or corrupted).
<LI CLASS="li-itemize">Mac OS
<UL CLASS="itemize"><LI CLASS="li-itemize">
fixed rsync bug which could result in an "index out of bounds"
error when transferring resource forks.
<LI CLASS="li-itemize">Fixed bug which made Unison ignore finder information and resource
fork when compiled to 64bit on Mac OSX.
<LI CLASS="li-itemize">should now be 64 bit clean (the Growl framework is not up to date,
though)
<LI CLASS="li-itemize">Made the bridge between Objective C and Ocaml code GC friendly
(it was allocating ML values and putting them in an array which
was not registered with the GC)
<LI CLASS="li-itemize">use darker grey arrows (patch contributed by Eric Y. Kow)
</UL>
<LI CLASS="li-itemize">GTK user interface
<UL CLASS="itemize"><LI CLASS="li-itemize">
assistant for creating profiles
<LI CLASS="li-itemize">profile editor
<LI CLASS="li-itemize">pop up a summary window when the replicas are not fully
synchronized after transport
<LI CLASS="li-itemize">display estimated remaining time and transfer rate on the
progress bar
<LI CLASS="li-itemize">allow simultaneous selection of several items
<LI CLASS="li-itemize">Do not reload the preference file before a new update
detection if it is unchanged
<LI CLASS="li-itemize">disabled scrolling to the first unfinished item during transport.
It goes way too fast when lot of small files are synchronized, and it
makes it impossible to browse the file list during transport.
<LI CLASS="li-itemize">take into account the "height" preference again
<LI CLASS="li-itemize">the internal list of selected reconciler item was not always in
sync with what was displayed (GTK bug?); workaround implemented
<LI CLASS="li-itemize">Do not display "Looking for change" messages during propagation
(when checking the targe is unchanged) but only during update detection
<LI CLASS="li-itemize">Apply patch to fix some crashes in the OSX GUI, thanks to Onne Gorter.
</UL>
<LI CLASS="li-itemize">Text UI
<UL CLASS="itemize"><LI CLASS="li-itemize">
During update detection, display status by updating a
single line rather than generating a new line of output every so
often. That should be less confusing.
<LI CLASS="li-itemize">In repeat mode, don't save the archives when there is no
update. Indeed, in this mode, we should minimize the amount of work
performed and it is unlikely that the archives have changed much.
During update detection, display status by updating a single line
rather than generating a new line of output every so often. Should be less
confusing.
</UL>
<LI CLASS="li-itemize">Bugfixes
<LI CLASS="li-itemize">Windows
<UL CLASS="itemize"><LI CLASS="li-itemize">
Fixed quotation of paths and names when writing to a preference file
<LI CLASS="li-itemize">Fixed bug resulting in slow performances when transferring a file
using our rsync implementation from a 64-bit architecture to a
32-bit architecture.
<LI CLASS="li-itemize">Fixed bug in <CODE>Lwt_unix.run</CODE> which could make it fail with a
<CODE>Not_found</CODE> exception (see [<CODE>Not_found</CODE> raised in
tryCopyMovedFile] errors)
<LI CLASS="li-itemize">Properly deals with non-conformant AppleDouble files produced
by Mac OS X.
<LI CLASS="li-itemize">Fixed bug that results in Unison missing ressource fork changes
<LI CLASS="li-itemize">Applied a patch from Karl M to make the GTK2 version build with
OCaml 3.11 on Windows.
<LI CLASS="li-itemize">Added some extra debugging code to remote.ml to give more
informative error messages when people encounter the longstanding
"assert failed during file transfer" bug.
<LI CLASS="li-itemize">Applied patch from Antoine Reilles for NetBSD compilation
<LI CLASS="li-itemize">Resizing the update window vertically no longer moves the status
label. Fix contributed by Pedro Melo.
Fastcheck is now the default under Windows. People mostly use NTFS
nowadays and the Unicode API provides an equivalent to inode numbers
for this filesystem.
<LI CLASS="li-itemize">Only use long UNC path for accessing replicas (as '..' is
not handled with this format of paths, but can be useful)
<LI CLASS="li-itemize">Windows text UI: now put the console into UTF-8 output mode. This
is the right thing to do when in Unicode mode, and is no worse than
what we had previously otherwise (the console use some esoteric
encoding by default). This only works when using a Unicode font
instead of the default raster font.
<LI CLASS="li-itemize">Don't get the home directory from environment variable HOME under
Windows (except for Cygwin binaries): we don't want the behavior of
Unison to depends on whether it is run from a Cygwin shell (where
HOME is set) or in any other way (where HOME is usually not set).
</UL>
<LI CLASS="li-itemize">Miscellaneous fixes and improvements
<UL CLASS="itemize"><LI CLASS="li-itemize">
Made a server waiting on a socket more resilient to unexpected
lost connections from the client.
<LI CLASS="li-itemize">Small patch to property setting code suggested by Ulrich Gernkow.
<LI CLASS="li-itemize">Several fixes to the change transfer functions (both the internal ones
and external transfers using rsync). In particular, limit the number of
simultaneous transfer using an rsync
(as the rsync algorithm can use a large amount of memory when
processing huge files)
<LI CLASS="li-itemize">Keep track of which file contents are being transferred, and delay
the transfer of a file when another file with the same contents is
currently being transferred. This way, the second transfer can be
skipped and replaced by a local copy.
<LI CLASS="li-itemize">Experimental update detection optimization:
do not read the contents of unchanged directories
<LI CLASS="li-itemize">When a file transfer fails, turn off fastcheck for this file on the
next sync.
<LI CLASS="li-itemize">Fixed bug with case insensitive mode on a case sensitive filesystem:
<UL CLASS="itemize"><LI CLASS="li-itemize">
if file "a/a" is created on one replica and directory "A" is
created on the other, the file failed to be synchronized the first
time Unison is run afterwards, as Unison uses the wrong path "a/a"
(if Unison is run again, the directories are in the archive, so
the right path is used);
<LI CLASS="li-itemize">if file "a" appears on one replica and file "A" appears on the
other with different contents, Unison was unable to synchronize
them.
</UL>
<LI CLASS="li-itemize">Improved error reporting when the destination is updated during
synchronization: Unison now tells which file has been updated, and how.
<LI CLASS="li-itemize">Limit the length of temporary file names
<LI CLASS="li-itemize">Case sensitivity information put in the archive (in a backward
compatible way) and checked when the archive is loaded
<LI CLASS="li-itemize">Got rid of the 16mb marshalling limit by marshalling to a bigarray.
<LI CLASS="li-itemize">Resume copy of partially transferred files.
</UL>
</UL>
@ -2734,7 +2984,13 @@ label. Fix contributed by Pedro Melo.
Changes since 2.31:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Minor fixes and improvements:
Small user interface changes
<UL CLASS="itemize"><LI CLASS="li-itemize">
Small change to text UI "scanning..." messages, to print just
directories (hopefully making it clearer that individual files are
not necessarily being fingerprinted).
</UL>
<LI CLASS="li-itemize">Minor fixes and improvements:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Ignore one hour differences when deciding whether a file may have
been updated. This avoids slow update detection after daylight
@ -2751,6 +3007,11 @@ Ignore one hour differences when deciding whether a file may have
added more debugging code togive more informative error messages when we
encounter the dreaded and longstanding "assert failed during file
transfer" bug
<LI CLASS="li-itemize">Incorrect paths ("path" directive) now result in an error update
item rather than a fatal error.
<LI CLASS="li-itemize">Create parent directories (with correct permissions) during
transport for paths which point to non-existent locations in the
destination replica.
</UL>
</UL>

3
unison-2.40.61.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e6114bf6a99d8bbe151250b7e28a74aa546d213f4f7f7914ca086a48b375277b
size 2702722

View File

@ -1,13 +0,0 @@
Index: unison-2.32.52/update.mli
===================================================================
--- unison-2.32.52.orig/update.mli
+++ unison-2.32.52/update.mli
@@ -1,7 +1,7 @@
(* Unison file synchronizer: src/update.mli *)
(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
-module NameMap : Map.S with type key = Name.t
+module NameMap : MyMap.S with type key = Name.t
type archive =
ArchiveDir of Props.t * archive NameMap.t

View File

@ -1,3 +1,23 @@
-------------------------------------------------------------------
Thu Mar 31 13:16:51 UTC 2011 - saschpe@suse.de
- Spec file cleanup
* Removed authors from description
* Removed ctags dependency
-------------------------------------------------------------------
Sat Jan 29 18:25:43 UTC 2011 - poletti.marco@gmail.com
- Update to version 2.40.61:
* Add "BelowPath" patterns
* Other fixes and improvements
- Update to version 2.40.1:
* Unicode support
* Partial transfer of directories
* Experimental prococol for asyncronous file tranfers, hiding latency
* Improve the performance of the rsync protocol
* Many (!) other improvements and fixes
-------------------------------------------------------------------
Thu Oct 7 07:58:40 UTC 2010 - aj@suse.de

View File

@ -1,7 +1,7 @@
#
# spec file for package unison (Version 2.32.52)
# spec file for package unison
#
# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -15,29 +15,26 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: unison
Version: 2.40.61
Release: 0
Summary: A file synchronization tool
Group: Productivity/Networking/Other
License: GPLv3+
Url: http://www.cis.upenn.edu/~bcpierce/unison
Source0: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-%{version}.tar.gz
Source1: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-%{version}-manual.html
Source2: %{name}.desktop
Source3: %{name}.png
Patch0: fix_makefile.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: gtk2-devel ncurses-devel update-desktop-files
%if 0%{?suse_version} > 1020
BuildRequires: lablgtk2-devel
%else
BuildRequires: lablgtk2
%endif
License: GPLv3+
Group: Productivity/Networking/Other
AutoReqProv: on
Version: 2.32.52
Release: 6
Source0: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-%{version}.tar.gz
Source1: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-%{version}-manual.html
Source2: %name.desktop
Source3: %name.png
Patch1: unison-ocaml.patch
Url: http://www.cis.upenn.edu/~bcpierce/unison
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: A file synchronization tool
%description
Unison is a file synchronization tool for Unix and Windows. It allows
@ -46,15 +43,9 @@ different hosts (or different disks on the same host), modified
separately, then brought up to date by propagating the changes in each
replica to the other.
Authors:
--------
Benjamin Pierce <bcpierce@cis.upenn.edu>
%prep
%setup -q
%patch1 -p1
%patch0 -p 1
%build
# This package failed when testing with -Wl,-as-needed being default.
@ -67,10 +58,10 @@ make UISTYLE=gtk2 NATIVE=true THREADS=true
%endif
%install
install -m 755 -d $RPM_BUILD_ROOT/%{_bindir}
install -m 755 %name $RPM_BUILD_ROOT%{_bindir}
install -m 755 -d $RPM_BUILD_ROOT/%{_prefix}/share/pixmaps
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/%{_prefix}/share/pixmaps
install -m 755 -d %{buildroot}/%{_bindir}
install -m 755 %name %{buildroot}%{_bindir}
install -m 755 -d %{buildroot}/%{_prefix}/share/pixmaps
install -m 644 %{SOURCE3} %{buildroot}/%{_prefix}/share/pixmaps
install -m 644 %{SOURCE1} unison-manual.html
%suse_update_desktop_file -i %name Utility SyncUtility
%ifarch s390 s390x
@ -79,13 +70,13 @@ export NO_BRP_STRIP_DEBUG=true
%endif
%clean
rm -rf $RPM_BUILD_ROOT;
rm -rf %{buildroot}
%files
%defattr(-, root, root)
%defattr(-,root,root)
%doc BUGS.txt CONTRIB COPYING NEWS README ROADMAP.txt TODO.txt unison-manual.html
/usr/share/applications/*
/usr/share/pixmaps/unison.png
%{_datadir}/applications/*
%{_datadir}/pixmaps/unison.png
%{_bindir}/%{name}
%changelog