summaryrefslogtreecommitdiffstats
path: root/src/files.mli
diff options
context:
space:
mode:
authorJérôme Vouillon <vouillon@pps.jussieu.fr>2009-07-19 20:07:54 +0000
committerJérôme Vouillon <vouillon@pps.jussieu.fr>2009-07-19 20:07:54 +0000
commit06be21b9c7d207030f8b91106e6ec346ba3583c7 (patch)
tree63134ff5ec74b8a71a3a9cc602d3f34e7031e91e /src/files.mli
parentaa6a952fb56239c1feab44cea6ebfccef097e141 (diff)
downloadunison-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.mli2
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