diff options
author | Jérôme Vouillon <vouillon@pps.jussieu.fr> | 2009-07-19 20:07:54 +0000 |
---|---|---|
committer | Jérôme Vouillon <vouillon@pps.jussieu.fr> | 2009-07-19 20:07:54 +0000 |
commit | 06be21b9c7d207030f8b91106e6ec346ba3583c7 (patch) | |
tree | 63134ff5ec74b8a71a3a9cc602d3f34e7031e91e /src/files.mli | |
parent | aa6a952fb56239c1feab44cea6ebfccef097e141 (diff) | |
download | unison-06be21b9c7d207030f8b91106e6ec346ba3583c7.zip unison-06be21b9c7d207030f8b91106e6ec346ba3583c7.tar.gz unison-06be21b9c7d207030f8b91106e6ec346ba3583c7.tar.bz2 |
* Bumped version number: incompatible protocol changes
* Create parent directories (with correct permissions) during
transport for paths which point to non-existent locations in the
destination replica.
* 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.
* Changes to the implementation of the rsync algorithm:
- use longer blocks for large files (the size of a block is the
square root of the size of the file for large files);
- 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)
- avoid transfer overhead (which was 4 bytes per block)
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).
* 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.
* 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").
* Renamed preference "pretendwin" to "ignoreinodenumbers" (an alias is
kept for backwards compatibility).
* GTK UI: display estimated remaining time and transfer rate on the
progress bar
* GTK UI: some polishing; in particular:
- stop statistics window updates when idle (save power on laptops)
- some ok and cancel buttons were in the wrong order
* Added some support for making it easier to extend Unison without
breaking backwards compatibility.
- Possibility to mark a preference as local. Such a preference is
propagated if possible but will not result in an error if it is
not found server-side. This make it possible to add new
functionalities client-side without breaking compatibility.
- Added a function [Remove.commandAvailable] which tests whether a
command is available on a given root.
* Removed hack in findUpdates that would update the archive in a
visible way for the sake of path translation: it is no longer
needed.
Diffstat (limited to 'src/files.mli')
-rw-r--r-- | src/files.mli | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/files.mli b/src/files.mli index e3ba168..f43ee49 100644 --- a/src/files.mli +++ b/src/files.mli @@ -26,9 +26,11 @@ val copy : -> Common.root (* from what root *) -> Path.t (* from what path *) -> Common.updateItem (* source updates *) + -> Props.t list (* properties of parent directories *) -> Common.root (* to what root *) -> Path.t (* to what path *) -> Common.updateItem (* dest. updates *) + -> Props.t list (* properties of parent directories *) -> Uutil.File.t (* id for showing progress of transfer *) -> unit Lwt.t |