This README will explain how to use multisync-0.9 together with
opensync.

-- Directory Layout

cli contains code for a python cli (broken)
docs contains some minor documentation (more needed)
libmultisync contains the code for syncengine
python contains the python wrappers for the syncengine (broken)
tests contain the unit tests
tools contains the msynctool (a c cli), msyncstress (a stress test suite)
	and msyncmapdump used to get insight into the mappings and hashtables

-- Building multisync-0.90

Build and install opensync before

run ./autogen.sh to build the configure files. If this gives and error try
running autoreconf2.5X -s -i in the multisync dir directly

The dependencies so far are: glib-2.0, opensync
optional are: check for unit tests

run make, make install

if you like you can run make check to see if everything is working

-- Using multisync-0.90

This example will use the filesync plugin to explain how to use the
cli to configure the syncgroup and sync 2 directories:

Run:
msynctool --addgroup "groupname"
This will add a new syncgroup (which will appear in ~/.opensync)

msynctool --addmember "groupname" file-sync
This will add a new member of type file-sync to the previous created
group. Run this command twice (since we need 2 directories.)

msynctool --configure "groupname" 1
Will open a editor for the first member (the id at the end is the same
id that is returned from --showgroup "groupname"). In the just opened file
just enter a path to a directory for example: /home/james/dir1
Save and exit

msynctool --configure "groupname" 2
enter the path of the 2. directory. save and exit

now create some files in one of the directories and run:
msynctool --sync "groupname"

-- Using the stress test suite

for the stress test suite to work you must configure all plugins with
--enable-stress-test

the msyncstress suite is used to stress test the engine.
If you like to use it, add a new group (for example "groupname").
Set up all the members you would like it to have and configure them.

After that run msyncstress "groupname" to make it try to break the 
synchronization (and it likely will succeed)

(Btw: You can use the syncgroup created in the "Using multisync-0.90"
section)

-- Inspecting the mappings and hashtables

msyncmapdump can be used to gain insight into the uid mappings and the
hashtables of the members (if they use this feature).

msyncmapdump "groupname" will just dump all uid mappings
msyncmapdump "groupname" --unmapped will dump all uids, one by one. This
	will also dump the unmapped uids
msyncmapdump "groupname" --hash 1 will dump the content of the hashtable of
	member number 1




If you have further questions, contact
armin.bauer@desscon.com

