sync-mht: Fast incremental file transfer using Merkle-Hash-Trees

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

A command line tool that can be used to incrementally synchronize a directory hierarchy with a second one. It is using a Merkle-Hash-Tree to compare the folders, such that the synchronization time and communication (round) complexity grows only logarithmically with the size of the directories (assuming the actual difference of the directories is small).

The communication happens through standard streams between parent and child processes, which can easily be routed through remote command execution tools.


[Skip to Readme]

Properties

Versions 0.2.0.0, 0.2.1.0, 0.2.1.1, 0.3.0.0, 0.3.1.0, 0.3.2.0, 0.3.2.0, 0.3.3.0, 0.3.4.0, 0.3.5.0, 0.3.6.0, 0.3.7.0, 0.3.8.0, 0.3.8.1, 0.3.8.2, 0.3.8.3, 0.3.8.4, 0.3.8.5
Change log None available
Dependencies array (>=0.5 && <0.6), base (>=4.7 && <4.8), base16-bytestring (>=0.1 && <0.2), byteable (>=0.1 && <0.2), bytestring (>=0.10 && <0.11), Cabal (==1.18.1.6), cereal (>=0.4 && <0.5), containers (>=0.5 && <0.6), cryptohash (>=0.11 && <0.12), directory (>=1.2.3 && <1.3), exceptions (>=0.7 && <0.8), filepath (>=1.3 && <1.4), io-streams (>=1.2 && <1.3), mtl (>=2.1 && <2.2), process (==1.2.3.0), random (>=1.0 && <1.1), regex-compat (>=0.95 && <0.96), temporary (>=1.2 && <1.3), text (>=1.1 && <1.2), time (>=1.4 && <1.5), transformers (>=0.3 && <0.4), unix (>=2.7 && <2.8) [details]
License MIT
Author Emin Karayel <me@eminkarayel.de>
Maintainer Emin Karayel <me@eminkarayel.de>
Category Utility
Home page https://github.com/ekarayel/sync-mht
Bug tracker https://github.com/ekarayel/sync-mht/issues
Source repo head: git clone https://github.com/ekarayel/sync-mht --recursive
this: git clone https://github.com/ekarayel/sync-mht --recursive(tag 0.3.2.0)
Uploaded by emink at 2015-07-31T10:38:58Z

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for sync-mht-0.3.2.0

[back to package description]

sync-mht

Build Status

Synopsis

Fast incremental file transfer using Merkle-Hash-Trees

Description

A command line tool that can be used to incrementally synchronize a directory hierarchy with a second one. It is using a Merkle-Hash-Tree to compare the folders, such that the synchronization time and communication (round) complexity grows only logarithmically with the size of the directories (assuming the actual difference of the directories is small).

The communication happens through standard streams between parent and child processes, which can easily be routed through remote command execution tools.

Examples

The following command

sync-mht -s foo/ -d bar

will synchronize the local folder bar/ with the local folder foo/, but

sync-mht -s foo/ -d remote:/bar -r "ssh fred@example.org sync-mht"

will synchronize the folder bar/ in the home directory of the user fred on the host machine example.org with the local folder foo/.

It is also possible to use it with docker, e.g.

sync-mht -s foo/ -d remote:/bar -r "docker run -i --volumes-from bar ekarayel/sync-mht sync-mht"

to synchronize the folder /bar (of the container named bar) with the local folder foo/.

Note that: The options -a -u --delete respectively, allow copying of files to the target directory, updating files that are already in the target directory - not matching the contents in the source directory and delete files that are in the destination directory but not in the source directory.