OBS User unknown 2007-04-26 13:38:51 +00:00 committed by Git OBS Bridge
parent 17a3731540
commit a5522c4249
6 changed files with 267 additions and 97 deletions

View File

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

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.17.1<BR>
<FONT SIZE=5>Version 2.27.24<BR>
</FONT></FONT></FONT></DIV></div><BR>
<BR>
<!--TOC section Contents-->
@ -96,11 +96,12 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#crossplatform">Cross-Platform Synchronization</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#speed">Slow Links</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#fastcheck">Fast Update Detection</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#mountpoints">Mount Points and Removable Media</A><BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8226;<A HREF="#click">Click-starting Unison</A><BR>
<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.17.1</B></FONT></A><BR>
<A HREF="#news"><FONT SIZE=4><B>Changes in Version 2.27.24</B></FONT></A><BR>
</BLOCKQUOTE>
@ -166,13 +167,15 @@ The current version of Unison was designed and implemented by
<A HREF="http://www.research.att.com/~trevor/">Trevor Jim</A>,
<A HREF="http://www.cis.upenn.edu/~bcpierce/">Benjamin Pierce</A>,
and
Jérôme Vouillon,
<A HREF="http://www.pps.jussieu.fr/~vouillon/">Jérôme Vouillon</A>,
with
<A HREF="http://www.inrialpes.fr/~aschmitt/">Alan Schmitt</A>,
Malo Denielou,
<A HREF="http://www.brics.dk/~zheyang/">Zhe Yang</A>,
Sylvain Gommier, and
Matthieu Goulay.
The Mac user interface was started by Trevor Jim and enormously improved by
Ben Willmore.
Our implementation of the
<A HREF="http://samba.org/rsync/">rsync</A>
protocol was built by
@ -184,7 +187,8 @@ Our implementation of the
<A HREF="http://samba.org/rsync/">rsync</A>
utility.
The mirroring and merging functionality was implemented by
Sylvain Roy and improved by Malo Denielou.
Sylvain Roy, improved by Malo Denielou, and improved yet further by
Stéphane Lescuyer.
<A HREF="http://wwwfun.kurims.kyoto-u.ac.jp/~garrigue/">Jacques Garrigue</A>
contributed the original Gtk version of the user
interface; the Gtk2 version was built by Stephen Tse.
@ -236,8 +240,8 @@ Feature requests are welcome, but will probably just be added to the
ever-growing todo list. They should also be sent to <A HREF="mailto:unison-users@yahoogroups.com"><TT>unison-users@yahoogroups.com</TT></A>.<BR>
<BR>
Patches are even more welcome. They should be sent to
<A HREF="mailto:unison-hackers@yahoogroups.com"><TT>unison-hackers@yahoogroups.com</TT></A>.
(Caveat: since safety and robustness are Unison's most important properties,
<A HREF="mailto:unison-hackers@lists.seas.upenn.edu"><TT>unison-hackers@lists.seas.upenn.edu</TT></A>.
(Since safety and robustness are Unison's most important properties,
patches will be held to high standards of clear design and clean coding.)
If you want to contribute to Unison, start by downloading the developer
tarball from the download page. For some details on how the code is
@ -1340,6 +1344,7 @@ Options:
-backups keep backup copies of all files (see also 'backup')
-backupsuffix xxx a suffix to be added to names of backup files
-batch batch mode: ask no questions at all
-confirmbigdeletes request confirmation for whole-replica deletes
-confirmmerge ask for confirmation before commiting results of a merge
-contactquietly Suppress the 'contacting server' message during startup
-debug xxx debug module xxx ('all' -&gt; everything, 'verbose' -&gt; more)
@ -1348,6 +1353,7 @@ Options:
-fastcheck xxx do fast update detection (`true', `false', or `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
-group synchronize group
-height n height (in lines) of main window in graphical interface
-host xxx bind the socket to this host name in server socket mode
@ -1357,7 +1363,7 @@ Options:
-ignorenot xxx add a pattern to the ignorenot list
-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
-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
-log record actions in file specified by logfile preference
@ -1365,12 +1371,13 @@ Options:
-maxbackups n number of backed up versions of a file
-maxthreads n maximum number of simultaneous file transfers
-merge xxx add a pattern to the merge list
-mergebatch xxx add a pattern to the mergebatch list
-mountpoint xxx abort if this path does not exist
-numericids don't map uid/gid values by user/group names
-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
-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 interface only)
@ -1378,6 +1385,7 @@ Options:
-rootalias xxx Register alias for canonical root names
-rsrc xxx synchronize resource forks and HFS meta-data (`true', `false', or `default')
-rsync activate the rsync transfer mode
-selftest run internal tests and exit
-servercmd xxx name of unison executable on remote server
-showarchive show name of archive and 'true names' (for rootalias) of roots
-silent print nothing (except error messages)
@ -1442,17 +1450,20 @@ See <TT>backupprefix</TT> for full documentation.<BR>
<DT CLASS="dt-description"><B>batch </B><DD CLASS="dd-description">
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>confirmbigdeletes </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>
<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.<BR>
<BR>
<DT CLASS="dt-description"><B>contactquietly </B><DD CLASS="dd-description">
If this flag is set, Unison will skip displaying the `Contacting server' window (which some users find annoying) during startup.<BR>
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>debug <TT>xxx</TT></B><DD CLASS="dd-description">
This preference is used to make Unison print various sorts of information about what it is doing internally on the standard error stream. It can be used many times, each time with the name of a module for which debugging information should be printed. Possible arguments for <CODE>debug</CODE> can be found by looking for calls to <CODE>Util.debug</CODE> in the sources (using, e.g., <CODE>grep</CODE>). Setting <CODE>-debug all</CODE> causes information from <EM>all</EM> modules to be printed (this mode of usage is the first one to try, if you are trying to understand something that Unison seems to be doing wrong); <CODE>-debug verbose</CODE> turns on some additional debugging output from some modules (e.g., it will show exactly what bytes are being sent across the network).<BR>
<BR>
<DT CLASS="dt-description"><B>diff <TT>xxx</TT></B><DD CLASS="dd-description">
This preference can be used to control the name and command-line arguments of the system utility used to generate displays of file differences. The default is `<CODE>diff -u</CODE>'. If the value of this preference contains the substrings CURRENT1 and CURRENT2, these will be replaced by the names of the files to be diffed. If not, the two filenames will be appended to the command. In both cases, the filenames are suitably quoted.<BR>
This preference can be used to control the name and command-line arguments of the system utility used to generate displays of file differences. The default is `<CODE>diff -u CURRENT2 CURRENT1</CODE>'. If the value of this preference contains the substrings CURRENT1 and CURRENT2, these will be replaced by the names of the files to be diffed. If not, the two filenames will be appended to the command. In both cases, the filenames are suitably quoted.<BR>
<BR>
<DT CLASS="dt-description"><B>doc <TT>xxx</TT></B><DD CLASS="dd-description">
The command-line argument <TT>-doc <I>secname</I></TT> causes unison to display section <TT><I>secname</I></TT> of the manual on the standard output and then exit. Use <CODE>-doc all</CODE> to display the whole manual, which includes exactly the same information as the printed and HTML manuals, modulo formatting. Use <CODE>-doc topics</CODE> to obtain a list of the names of the various sections that can be printed.<BR>
@ -1468,7 +1479,9 @@ This preference has no effect on the graphical user interface.<BR>
When this preference is set, Unison will create a file unison.dump on each host, containing a text summary of the archive, immediately after loading it.<BR>
<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 file creation times as `pseudo inode numbers' 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 create time, modification time, and length of the file are all unchanged by the update (this is not easy to achieve, but it can be done). 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>
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>
<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>
@ -1478,6 +1491,15 @@ Including the preference <TT>-force <I>root</I></TT> causes Unison to resolve al
<BR>
You can also specify <CODE>-force newer</CODE> (or <CODE>-force 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 is overridden by the <CODE>forcepartial</CODE> preference.<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>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>
<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">
@ -1549,8 +1571,8 @@ This preference controls how much concurrency is allowed during the transport ph
<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>
<BR>
<DT CLASS="dt-description"><B>mergebatch <TT>xxx</TT></B><DD CLASS="dd-description">
Normally, when Unison is run with the <TT>batch</TT> flag set to true, it does not invoke any external merge programs. To tell it that a given file can be merged even when in batch mode, use the <TT>mergebatch</TT> preference instead of <TT>merge</TT>. When running in non-batch mode, the <TT>merge</TT> preference is used instead of <TT>mergebatch</TT> if both are specified for a given path.<BR>
<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>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>
@ -1569,13 +1591,20 @@ The integer value of this preference is a mask indicating which permission bits
<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>
<BR>
This preference is overridden by the <CODE>preferpartial</CODE> preference.<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>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>
<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. If the argument is a path, Unison will wait for the file at this path&mdash;called a <EM>changelog</EM>&mdash;to be modified (on either the client or the server machine), read the contents of the changelog (which should be a newline-separated list of paths) on both client and server, combine the results, and start again, using the list of paths read from the changelogs as the '-path' preference for the new run. The idea is that an external process will watch the filesystem and, when it thinks something may have changed, write the changed pathname to its local changelog where Unison will find it the next time it looks. If the changelogs have not been modified, Unison will wait, checking them again every few seconds.<BR>
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>
<DT CLASS="dt-description"><B>retry <TT>n </TT></B><DD CLASS="dd-description">
Setting this preference causes the text-mode interface to try again to synchronize updated paths where synchronization fails. Each such path will be tried N times.<BR>
@ -1601,6 +1630,9 @@ When set to <TT>true</TT>, this flag causes Unison to synchronize resource forks
<DT CLASS="dt-description"><B>rsync </B><DD CLASS="dd-description">
Unison uses the 'rsync algorithm' for 'diffs-only' transfer of updates to large files. Setting this flag to false makes Unison use whole-file transfers instead. Under normal circumstances, there is no reason to do this, but if you are having trouble with repeated 'rsync failure' errors, setting it to false should permit you to synchronize the offending files.<BR>
<BR>
<DT CLASS="dt-description"><B>selftest </B><DD CLASS="dd-description">
Run internal tests and exit. This option is mostly for developers and must be used carefully: in particular, it will delete the contents of both roots, so that it can install its own files for testing. This flag only makes sense on the command line. When it is provided, no preference file is read: all preferences must be specified on thecommand line. Also, since the self-test procedure involves overwriting the roots and backup directory, the names of the roots and of the backupdir preference must include the string "test" or else the tests will be aborted. (If these are not given on the command line, dummy subdirectories in the current directory will be created automatically.)<BR>
<BR>
<DT CLASS="dt-description"><B>servercmd <TT>xxx</TT></B><DD CLASS="dd-description">
This preference can be used to explicitly set the name of the Unison executable on the remote server (e.g., giving a full path name), if necessary.<BR>
<BR>
@ -1804,7 +1836,7 @@ The file <TT>common</TT> contains the real preferences:
# file 'common' rathen than in the top-level preference file
addprefsto = common
# regexps specifying names and paths to ignore
# Names and paths to ignore:
ignore = Name temp.*
ignore = Name *~
ignore = Name .*~
@ -1826,8 +1858,7 @@ preference file <TT>workingset.prf</TT> contains
path = Mail/inbox
path = Mail/drafts
include common
</PRE>causes Unison to synchronize just the subdirectories <TT>current/papers</TT>
and <TT>older/papers</TT>.<BR>
</PRE>causes Unison to synchronize just the listed subdirectories.<BR>
<BR>
The <TT>key</TT> preference can be used in combination with the graphical UI
to quickly switch between different sets of paths. For example, if the
@ -1886,12 +1917,12 @@ environment variable <CODE>UNISONBACKUPDIR</CODE>. (The environment variable is
checked first.) If neither of these are set, then the directory
<CODE>.unison/backup</CODE> in the user's home directory is used.<BR>
<BR>
The preference <CODE>backupversions</CODE> controls how many previous versions of
each file are kept. The default is 2.<BR>
The preference <CODE>maxbackups</CODE> controls how many previous versions of
each file are kept (including the current version). <BR>
<BR>
By default, backup files are named <CODE>.unison.FILENAME.VERSION.bak</CODE>,
where <CODE>FILENAME</CODE> is the original filename and <CODE>version</CODE> is the
backup number (001 for the most recent, 002 for the next most recent,
By default, backup files are named <CODE>.bak.VERSION.FILENAME</CODE>,
where <CODE>FILENAME</CODE> is the original filename and <CODE>VERSION</CODE> is the
backup number (1 for the most recent, 2 for the next most recent,
etc.). This can be changed by setting the preferences <CODE>backupprefix</CODE>
and/or <CODE>backupsuffix</CODE>. If desired, <CODE>backupprefix</CODE> may include a
directory prefix; this can be used with <CODE>backuplocation = local</CODE> to put all
@ -2032,7 +2063,13 @@ Alternatively, users of <CODE>emacs</CODE> may find the following settings conve
"CURRENT1" "CURRENT2" "CURRENTARCH" nil "NEW")'
</PRE>(These commands are displayed here on two lines to avoid running off the
edge of the page. In your preference file, each command should be written on a
single line.)
single line.) <BR>
<BR>
Users running emacs under windows may find something like this useful:
<PRE CLASS="verbatim">
merge = Name * -&gt; C:\Progra~1\Emacs\emacs\bin\emacs.exe -q --eval
"(ediff-files """CURRENT1""" """CURRENT2""")"
</PRE>
Users running Mac OS X (you may need the Developer Tools installed to get
the <TT>opendiff</TT> utility) may prefer
<PRE CLASS="verbatim">
@ -2132,10 +2169,11 @@ patterns are <EM>not</EM> regular expressions. Instead,
standard &#8220;globbing&#8221; conventions can be used in <TT><I>name</I></TT> and
<TT><I>path</I></TT>:
<UL CLASS="itemize"><LI CLASS="li-itemize">
a <CODE>?</CODE> matches any single character except <CODE>/</CODE>
<LI CLASS="li-itemize">a <CODE>*</CODE> matches any sequence of characters not including <CODE>/</CODE>
a <CODE>*</CODE> matches any sequence of characters not including <CODE>/</CODE>
(and not beginning with <CODE>.</CODE>, when used at the beginning of a
<TT><I>name</I></TT>)
<LI CLASS="li-itemize">a <CODE>?</CODE> matches any single character except <CODE>/</CODE> (and leading
<CODE>.</CODE>)
<LI CLASS="li-itemize"><CODE>[xyz]</CODE> matches any character from the set {<TT><I>x</I></TT>,
<TT><I>y</I></TT>, <TT><I>z</I></TT> }
<LI CLASS="li-itemize"><CODE>{a,bb,ccc}</CODE> matches any one of <CODE>a</CODE>, <CODE>bb</CODE>, or
@ -2208,7 +2246,26 @@ you like (this is probably not very useful), using an option like
<LI CLASS="li-itemize">Be careful about renaming directories containing ignored files.
Because Unison understands the rename as a delete plus a create, any ignored
files in the directory will be lost (since they are invisible to Unison and
therefore they do not get recreated in the new version of the directory).
therefore they do not get recreated in the new version of the directory).<BR>
<BR>
<LI CLASS="li-itemize">There is also an <CODE>ignorenot</CODE> preference, which specifies a set of
patterns for paths that should <EM>not</EM> be ignored, even if they match an
<CODE>ignore</CODE> pattern. However, the interaction of these two sets of
patterns can be a little tricky. Here is exactly how it works:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Unison starts detecting updates from the root of the
replicas&mdash;i.e., from the empty path. If the empty path matches an
<CODE>ignore</CODE> pattern and does not match an <CODE>ignorenot</CODE> pattern, then
the whole replica will be ignored. (For this reason, it is not a good
idea to include <CODE>Name *</CODE> as an <CODE>ignore</CODE> pattern. If you want to
ignore everything except a certain set of files, use <CODE>Name ?*</CODE>.)
<LI CLASS="li-itemize">If the root is a directory, Unison continues looking for updates in
all the immediate children of the root. Again, if the name of some child matches an
<CODE>ignore</CODE> pattern and does not match an <CODE>ignorenot</CODE> pattern, then
this whole path <EM>including everything below it</EM> will be ignored.
<LI CLASS="li-itemize">If any of the non-ignored children are directories, then the process
continues recursively.
</UL>
</UL>
<!--TOC subsection Symbolic Links-->
@ -2258,8 +2315,6 @@ bits are not propagated.
this mean, in general?) All files are created with the owner and
group of the server process.
</UL>
<!--TOC subsection Cross-Platform Synchronization-->
<H3 CLASS="subsection"><A NAME="crossplatform"></A>Cross-Platform Synchronization</H3><!--SEC END -->
@ -2329,14 +2384,38 @@ to <CODE>default</CODE> (which, naturally, is the default), Unison will use
fast checks on Unix replicas and slow checks on Windows replicas.<BR>
<BR>
This strategy may cause Unison to miss propagating an update if the
create time, modification time, and length of the file are all unchanged
by the update (this is not easy to achieve, but it can be done).
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 most of the time and occasionally run Unison once with <TT>fastcheck</TT> set to <CODE>no</CODE>, if you are worried that Unison may have
overlooked an update.<BR>
<BR>
Fastcheck is (always) automatically disabled for files with extension
<CODE>.xls</CODE> or <CODE>.mpp</CODE>, to prevent Unison from being confused by the
habits of certain programs (Excel, in particular) of updating files without
changing their modification times.<BR>
<BR>
<!--TOC subsection Mount Points and Removable Media-->
<H3 CLASS="subsection"><A NAME="mountpoints"></A>Mount Points and Removable Media</H3><!--SEC END -->
Using Unison removable media such as USB drives can be dangerous unless you
are careful. If you synchronize a directory that is stored on removable
media when the media is not present, it will look to Unison as though the
whole directory has been deleted, and it will proceed to delete the
directory from the other replica&mdash;probably not what you want!<BR>
<BR>
To prevent accidents, Unison provides a preference called
<CODE>mountpoint</CODE>. Including a line like
<PRE CLASS="verbatim">
mountpoint = /mnt/foo
</PRE>in your preference file will cause Unison to check, after it finishes
detecting updates, that something actually exists at the path
<CODE>/mnt/foo</CODE> on both replicas; if it does not, the Unison run will
abort. <BR>
<BR>
<!--TOC subsection Click-starting Unison-->
<H3 CLASS="subsection"><A NAME="click"></A>Click-starting Unison</H3><!--SEC END -->
@ -2475,9 +2554,133 @@ 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.17.1-->
<hr><!--TOC section Changes in Version 2.27.24-->
<H2 CLASS="section"><A NAME="news"></A>Changes in Version 2.17.1</H2><!--SEC END -->
<H2 CLASS="section"><A NAME="news"></A>Changes in Version 2.27.24</H2><!--SEC END -->
Changes since 2.17:
<UL CLASS="itemize"><LI CLASS="li-itemize">
The Unison project now accepts donations via PayPal. If you'd like to
donate, you can find a link to the donation page on the
<A HREF="http://www.cis.upenn.edu/ bcpierce/unison/lists.html">Unison home
page</A>.<BR>
<BR>
<LI CLASS="li-itemize">Several small fixes to the GTK2 UI to make it work better under
Windows [thanks to Karl M for these].<BR>
<BR>
<LI CLASS="li-itemize">The backup functionality has been completely rewritten. The external
interface has not changed, but numerous bugs, irregular behaviors, and
cross-platform inconsistencies have been corrected.<BR>
<BR>
<LI CLASS="li-itemize">Some important safety improvements:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Added a new <CODE>mountpoint</CODE> preference, which can be used to specify
a path that must exist in both replicas at the end of update detection
(otherwise Unison aborts). This can be used to avoid potentially dangerous
situations when Unison is used with removable media such as external hard
drives and compact flash cards. <BR>
<BR>
<LI CLASS="li-itemize">The confirmation of &#8220;big deletes&#8221; is now controlled by a boolean preference
<CODE>confirmbigdeletes</CODE>. Default is true, which gives the same behavior as
previously. (This functionality is at least partly superceded by the
<CODE>mountpoint</CODE> preference, but it has been left in place in case it is
useful to some people.)<BR>
<BR>
<LI CLASS="li-itemize">If Unison is asked to &#8220;follow&#8221; a symbolic link but there is
nothing at the other end of the link, it will now flag this path as an
error, rather than treating the symlink itself as missing or deleted.
This avoids a potentially dangerous situation where a followed symlink
points to an external filesystem that might be offline when Unison is run
(whereupon Unison would cheerfully delete the corresponding files in the
other replica!).
</UL><BR>
<BR>
<LI CLASS="li-itemize">Smaller changes:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Added <CODE>forcepartial</CODE> and <CODE>preferpartial</CODE> preferences, which
behave like <CODE>force</CODE> and <CODE>prefer</CODE> but can be specified on a
per-path basis. [Thanks to Alan Schmitt for this.]<BR>
<BR>
<LI CLASS="li-itemize">A bare-bones self test feature was added, which runs unison through
some of its paces and checks that the results are as expected. The
coverage of the tests is still very limited, but the facility has already
been very useful in debugging the new backup functionality (especially in
exposing some subtle cross-platform issues).<BR>
<BR>
<LI CLASS="li-itemize">Refined debugging code so that the verbosity of individual modules
can be controlled separately. Instead of just putting '-debug
verbose' on the command line, you can put '-debug update+', which
causes all the extra messages in the Update module, but not other
modules, to be printed. Putting '-debug verbose' causes all modules
to print with maximum verbosity.<BR>
<BR>
<LI CLASS="li-itemize">Removed <CODE>mergebatch</CODE> preference. (It never seemed very useful, and
its semantics were confusing.)<BR>
<BR>
<LI CLASS="li-itemize">Rewrote some of the merging functionality, for better cooperation
with external Harmony instances.<BR>
<BR>
<LI CLASS="li-itemize">Changed the temp file prefix from <CODE>.#</CODE> to <CODE>.unison</CODE>.<BR>
<BR>
<LI CLASS="li-itemize">Compressed the output from the text user interface (particularly
when run with the <CODE>-terse</CODE> flag) to make it easier to interpret the
results when Unison is run several times in succession from a script.<BR>
<BR>
<LI CLASS="li-itemize">Diff and merge functions now work under Windows.<BR>
<BR>
<LI CLASS="li-itemize">Changed the order of arguments to the default diff command (so that
the + and - annotations in diff's output are reversed).<BR>
<BR>
<LI CLASS="li-itemize">Added <CODE>.mpp</CODE> files to the &#8220;never fastcheck&#8221; list (like
<CODE>.xls</CODE> files).
</UL><BR>
<BR>
<LI CLASS="li-itemize">Many small bugfixes, including:
<UL CLASS="itemize"><LI CLASS="li-itemize">
Fixed a longstanding bug regarding fastcheck and daylight saving time
under Windows when Unison is set up to synchronize modification times.
(Modification times cannot be updated in the archive in this case,
so we have to ignore one hour differences.)
<LI CLASS="li-itemize">Fixed a bug that would occasionally cause the archives to be left in
non-identical states on the two hosts after synchronization.
<LI CLASS="li-itemize">Fixed a bug that prevented Unison from communicating correctly between
32- and 64-bit architectures.
<LI CLASS="li-itemize">On windows, file creation times are no longer used as a proxy for
inode numbers. (This is unfortunate, as it makes fastcheck a little less
safe. But it turns out that file creation times are not reliable
under Windows: if a file is removed and a new file is created in its
place, the new one will sometimes be given the same creation date as the
old one!)
<LI CLASS="li-itemize">Set read-only file to R/W on OSX before attempting to change other attributes.
<LI CLASS="li-itemize">Fixed bug resulting in spurious "Aborted" errors during transport
(thanks to Jerome Vouillon)
<LI CLASS="li-itemize">Enable diff if file contents have changed in one replica, but
only properties in the other.
<LI CLASS="li-itemize">Removed misleading documentation for 'repeat' preference.
<LI CLASS="li-itemize">Fixed a bug in merging code where Unison could sometimes deadlock
with the external merge program, if the latter produced large
amounts of output.
<LI CLASS="li-itemize">Workaround for a bug compiling gtk2 user interface against current versions
of gtk2+ libraries.
<LI CLASS="li-itemize">Added a better error message for "ambiguous paths".
<LI CLASS="li-itemize">Squashed a longstanding bug that would cause file transfer to fail
with the message &#8220;Failed: Error in readWrite: Is a directory.&#8221;
<LI CLASS="li-itemize">Replaced symlinks with copies of their targets in the Growl framework in src/uimac.
This should make the sources easier to check out from the svn repository on WinXP
systems.
<LI CLASS="li-itemize">Added a workaround (suggested by Karl M.) for the problem discussed
on the unison users mailing list where, on the Windows platform, the
server would hang when transferring files. I conjecture that
the problem has to do with the RPC mechanism, which was used to
make a call <EM>back</EM> from the server to the client (inside the Trace.log
function) so that the log message would be appended to the log file on
the client. The workaround is to dump these messages (about when
xferbycopying shortcuts are applied and whether they succeed) just to the
standard output of the Unison process, not to the log file.
</UL>
</UL>
Changes since 2.13.0:
<UL CLASS="itemize"><LI CLASS="li-itemize">
@ -2954,6 +3157,7 @@ Some adjustments to unison are made to accommodate the multi-threaded
to coincide with the name of a file created by the user. They
take the form<BR>
<CODE>.#&lt;filename&gt;.&lt;serial&gt;.unison.tmp</CODE>.
[N.b. This was later changed to <CODE>.unison.&lt;filename&gt;.&lt;serial&gt;.unison.tmp</CODE>.]
</UL>
<LI CLASS="li-itemize">Added a new command to the GTK user interface: pressing 'f' causes
Unison to start a new update detection phase, using as paths <EM>just</EM>

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

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

View File

@ -1,57 +0,0 @@
Index: uigtk2.ml
===================================================================
--- uigtk2.ml (revision 184)
+++ uigtk2.ml (revision 185)
@@ -1118,10 +1118,9 @@
(* ------ *)
-let messageBox ~title ~parent ?(action = fun t -> t#destroy)
- ?(modal = false) message =
+let messageBox ~title ?(action = fun t -> t#destroy) ?(modal = false) message =
let utitle = transcode title in
- let t = GWindow.dialog ~title:utitle ~parent ~modal ~position:`CENTER () in
+ let t = GWindow.dialog ~title:utitle ~modal ~position:`CENTER () in
let t_dismiss = GButton.button ~stock:`CLOSE ~packing:t#action_area#add () in
t_dismiss#grab_default ();
ignore (t_dismiss#connect#clicked ~callback:(action t));
@@ -1156,7 +1155,7 @@
~selectable:true ~yalign:0. ~packing:v1#add ());
t#add_button_stock `CANCEL `NO;
let cmd () =
- messageBox ~title:"Details" ~parent:t ~modal:false longtext
+ messageBox ~title:"Details" ~modal:false longtext
in
t#add_button advLabel `HELP;
t#add_button_stock `APPLY `YES;
@@ -1381,10 +1380,11 @@
GBin.frame ~packing:(toplevelVBox#pack ~expand:false)
~shadow_type:`IN (*~hpolicy:`AUTOMATIC ~vpolicy:`NEVER*) () in
let hb =GPack.hbox ~packing:sw#add () in
- (GButton.button ~label:"View details..." ~packing:hb#add (),
+ (GButton.button ~label:"View details..." ~packing:(hb#pack ~expand:false) (),
GText.view ~editable:false ~wrap_mode:`NONE ~packing:hb#add ())
in
+ showDetailsButton#misc#set_sensitive false;
detailsWindow#misc#modify_font (Lazy.force fontMonospaceMediumPango);
detailsWindow#misc#set_size_chars ~height:3 ~width:104 ();
detailsWindow#misc#set_can_focus false;
@@ -1396,7 +1396,7 @@
(match !theState.(row).whatHappened with
Some (Util.Failed _, Some det) -> det
| _ -> "[No details available]") in
- messageBox ~title:"Merge execution details" ~parent:(getMyWindow ()) details
+ messageBox ~title:"Merge execution details" details
in
ignore (showDetailsButton#connect#clicked ~callback:showDetCommand);
@@ -2075,7 +2075,7 @@
Some i ->
getLock (fun () ->
Uicommon.showDiffs !theState.(i).ri
- (fun title text -> messageBox ~title ~parent:(getMyWindow ()) (transcode text))
+ (fun title text -> messageBox ~title (transcode text))
Trace.status (Uutil.File.ofLine i);
displayGlobalProgress 0.)
| None ->

View File

@ -1,3 +1,17 @@
-------------------------------------------------------------------
Wed Apr 25 17:20:19 CEST 2007 - mhopf@suse.de
- Updated to 2.27.24:
* Backup functionality completely rewritten, removing bugs.
* Several savety improvements: mountpoint checks, big deletes, missing
symlink destinations
* New forcepartial and preferpartial preferences
* Improved debugging
* Merge functionality partially rewritten
* Reversed diff arguments.
* Many bugfixes (fastcheck + daylight saving time under windows, 32/64
bit cleanup, removing deadlocks, ...)
-------------------------------------------------------------------
Tue Apr 17 17:37:09 CEST 2007 - seife@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package unison (Version 2.17.1)
# spec file for package unison (Version 2.27.24)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@ -15,12 +15,11 @@ BuildRequires: gtk2-devel lablgtk2 ncurses-devel update-desktop-files
License: GNU General Public License (GPL)
Group: Productivity/Networking/Other
Autoreqprov: on
Version: 2.17.1
Release: 42
Version: 2.27.24
Release: 1
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
Patch0: unison-windowout.diff
URL: http://www.cis.upenn.edu/~bcpierce/unison
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Summary: A file synchronization tool
@ -40,7 +39,6 @@ Authors:
%prep
%setup -q
%patch0
%build
%ifarch s390 s390x
@ -70,6 +68,17 @@ rm -rf $RPM_BUILD_ROOT;
%{_bindir}/%{name}
%changelog
* Wed Apr 25 2007 - mhopf@suse.de
- Updated to 2.27.24:
* Backup functionality completely rewritten, removing bugs.
* Several savety improvements: mountpoint checks, big deletes, missing
symlink destinations
* New forcepartial and preferpartial preferences
* Improved debugging
* Merge functionality partially rewritten
* Reversed diff arguments.
* Many bugfixes (fastcheck + daylight saving time under windows, 32/64
bit cleanup, removing deadlocks, ...)
* Tue Apr 17 2007 - seife@suse.de
- add ncurses-devel to buildrequires, to fix build on s390
* Wed Dec 13 2006 - mhopf@suse.de