Provided by: syrep_0.9-4.2_amd64 bug

NAME

       syrep - A file repository synchronization tool

SYNOPSIS

       syrep [options...] --list SNAPSHOT ...

       syrep [options...] --info SNAPSHOT ...

       syrep [options...] --history SNAPSHOT ...

       syrep [options...] --dump SNAPSHOT ...

       syrep [options...] --update DIRECTORY ...

       syrep [options...] --diff SNAPSHOT SNAPSHOT

       syrep [options...] --merge SNAPSHOT DIRECTORY

       syrep [options...] --merge PATCH DIRECTORY

       syrep [options...] --merge DIRECTORY DIRECTORY

       syrep [options...] --makepatch DIRECTORY SNAPSHOT

       syrep [options...] --extract SNAPSHOT ...

       syrep [options...] --cleanup DIRECTORY ...

       syrep [options...] --forget SNAPSHOT ...

DESCRIPTION

       Syrep  is  a  generic  file repository synchronization tool. It may be used to synchronize
       large file hierarchies bidirectionally by exchanging patch files. Syrep is truely peer-to-
       peer, no central servers are involved. Synchronizations between more than two repositories
       are supported. The patch files may be transferred via offline media, e.g.  removable  hard
       disks or compact discs.

       Files are tracked by their message digests, currently MD5.

       Syrep   was  written  to  facilitate  the  synchronization  of  two  large  digital  music
       repositories without direct network connection.  Patch  files  of  several  gigabytes  are
       common in this situation.

       Syrep is able to cope with 64 bit file sizes. (LFS)

       Syrep  is optimized for speed. It may make use of a message digest cache to accelerate the
       calculation of digests of a whole directory hierarchy.

       A syrep repository is a normal UNIX directory tree containing a special  directory  .syrep
       with  a  file  current.syrep  (called  snapshot)  which  holds file system history data. A
       directory is turned into a syrep repository by running --update on it. Snapshots are  used
       to  perform  basic  tasks like comparing repositories (command --diff) or creating patches
       between them (command --make-patch).

       Syrep will ignore all files and directories that have the  extended  attribute  user.syrep
       set  to  omit.  Currently,  this works on Linux only. Keep in mind, that only newer kernel
       versions  and  some  file  system  support  extended  attributes.  See  attr(5)  for  more
       information.

GENERAL OPTIONS

       Exactly  one  command  has to be specified on the command line. On the other hand multiple
       options are allowed.

       -v | --verbose (option)
              Enable more verbose operation

       -T | --local-temp (option)
              Use temporary directory inside repository.  This  is  very  useful  when  the  file
              repository  you  apply  patches  to  is on a different partition than /tmp, because
              files my be hard linked instead of  copied.  This  requires  a  read-writable  file
              system however.

       --ignore-origin (option)
              Normally  syrep  warns  you  if  you update, merge or makepatch a repository with a
              matching snapshot not generated on the original host,  and  asks  the  user  if  he
              really wants to proceed. This option may be used to disable this question.

       -z | --compress (option)
              Compress  output snapshots or patches. This may slow down syrep extraordinarily and
              is more or less useless if the data to compress is already  compressed.  I  suggest
              using  it  for --update but not for --makepatch if the file repository contains MP3
              or MPEG files only.

       -p | --progress (option)
              Show a rotating dash while executing operations

GENERAL COMMANDS

       -h | --help (command)
              Print help and exit

       -V | --version (command)
              Print version information and exit

LISTING SNAPSHOT CONTENTS

       --list (command)
              Command for listing the file log of a repository snapshot

       --show-deleted (option)
              Show deleted entries

       --show-by-md (option)
              Show files by message digests. This option collides with --sort.

       --show-times (option)
              Show first and last seen times

       --sort (option)
              Sort file listing chronologically. This option collides with --show-by-md.

SHOWING SNAPSHOT INFORMATION

       --info (command)
              Show information about a repository or snapshot, such as origin, current  timestamp
              and version, database size.

SHOWING SNAPSHOT HISTORY

       --history (command)
              Show the version and timestamp history of a snapshot's updates

DUMPING SNAPSHOT CONTENTS

       --dump (command)
              Show a structure dump of a repository or snapshot

UPDATING A SNAPSHOT

       --update (command)
              Update  or  create  a snapshot for a repository directory. That is: iterate through
              the specified hierarchy and update the snapshot log information accordingly.

       -SSTRING | --snapshot=STRING (option)
              Use the specified snapshot file instead of the  one  contained  in  the  repository
              directory. This may be helpful if your file hierarchy is read only.

       -CSTRING | --cache=STRING (option)
              Use  the  specified  message  digest cache file instead of the one contained in the
              repository directory. This may be helpful if your file hierarchy is  read  only  or
              when  you  plan  to maintain a system wide message digest cache. In the latter case
              you should use --no-purge as well.

       --no-cache (option)
              Don't use a message digest cache.

       --no-purge (option)
              Don't purge obsolete entries from cache after update run. The may be useful if  you
              plan to maintain a system wide message digest cache.

       --ro-cache (option)
              Use cache in a read only fashion

       --check-dev (option)
              Store  information  about  the  device where the file resides when storing an entry
              about it in the message digest cache. Since nowadays device identifiers  cannot  be
              longer considered stable, this options defaults to off.

SHOWING DIFFERENCES BETWEEN TWO SNAPSHOTS

       --diff (command)
              Show difference between two repositories or snapshots

       -s | --sizes (option)
              Show  the  sizes  of  the  files  to  copy.  This works only when acting on a local
              repository and for the local files.

       -H | --human-readable (option)
              Only useful when using with -s. When enabled shows file  sizes  in  human  readable
              form, i.e. "3.5 MB" instead of "3670016".

MERGING A SNAPSHOT, A PATCH OR A REPOSITORY INTO A REPOSITORY

       --merge (command)
              Merge a snapshot, a patch or a repository into a repository. Afterwards, you should
              run --update on the repository to update the snapshot.

       -q | --question (option)
              Ask a question before each action

       -P | --prune-empty (option)
              Prune empty directories

       --keep-trash (option)
              Don't empty trash. Deleted  files  are  copied  into  a  trash  folder  inside  the
              repository  directory.  If  this option is specified this trash is not emptied when
              the operation is completed.

       --check-md (option)
              Check message digests of files before deleting or replacing them. NB: This  worsens
              syrep's performance and is thus not enabled by default.

       --always-copy (option)
              As default syrep tries to hard link files instead of copying them. With this option
              syrep will always do a copy, regardless if a hard link is possible or not. This  is
              especially  useful  when  doing  bi-directory  merges.  NB:  This  worsens  syrep's
              performance and is thus not enabled by default.

MAKING A PATCH FOR A SNAPSHOT AGAINST A DIRECTORY

       --makepatch (command)
              Make a patch against the specified repository.  The  patch  is  written  to  STDOUT
              unless -o is specified.

       -oSTRING | --output-file=STRING (option)
              Write output to specified file instead of STDOUT

       --include-all (option)
              Include files in patch which do exist on the other side under a different name

EXTRACTING A SNAPSHOT'S CONTENTS

       --extract (command)
              Extract  the  contents  of  a snapshot or patch to the local directory unless -D is
              specified.

       -DSTRING | --output-directory=STRING (option)
              Write output to specified directory

CLEANING UP A REPOSITORY

       --cleanup (command)
              Remove syrep info from repository

       -lINT | --cleanup-level=INT
              1: just remove temporary data and trash (default); 2: remove message  digest  cache
              as well; 3: remove all syrep data

FORGETTING OUTDATED SNAPSHOT INFORMATION

       --forget (command)
              Repackage  the  snapshot  file  dropping  outdated  information.  Use  this if your
              snapshot files get too large.

       -R DAYS | --remember=DAYS (option)
              Information about how many days in the past should be kept? This  defaults  to  180
              (half a year).

REPOSITORIES, SNAPSHOTS AND PATCHES

       A  syrep file repository is a POSIX file hierarchy with some additional log data, which is
       used to track changes. Normally  this  log  data  is  saved  as  "snapshot"  in  the  file
       $(REPOSITORY)/.syrep/current.syrep.  You may create and update it by running --update. The
       more often this log is updated the better modifications may  be  tracked.  Therefore  this
       operation should be called at least once a day via cron(8)

       Two snapshots of two distinct repositories (possibly from different hosts) may be compared
       with ---diff. This will show you which files should be copied or deleted from  or  to  the
       other  repository.  --makepatch  will  attach  the data of the local missing in the remote
       repository to a snapshot and write it to a patch file. This file should be transferred  to
       the other repository and applied there with --merge.

       Keep  in  mind  that patches contain the snapshot data of the originating host. Because of
       that you may use it as a snapshot, e.g. by running --diff on it. On the other hand you are
       also able to merge snapshots without attached patch data to a repository. This will do all
       required deletions and renames, but naturally won't add any new data to the file tree.

       To extract the contents of a patch you may  use  --extract.  This  will  write  all  files
       contained  in  the  patch or snapshot to the local directory, including snapshot log data.
       Files are named by their message digests.

FILES

       $(REPOSITORY)/.syrep/current.syrep is the  current  snapshot  of  the  repository.  It  is
       created  and updated by running --update on the directory. Use this file to create patches
       on other repositories against this  one.  This  file  may  be  compressed  by  specifiying
       --compress when running --update.

       $(REPOSITORY)/.syrep/md-cache  is the message digest cache which may be used to accelerate
       the repeated operation of ---update. It associates device  numbers,  inode  numbers,  file
       sizes and modification times with the message digest calculated for that file. The file is
       only valid on the host it was created on since it contains device numbers.

       $(REPOSITORY)/.syrep/trash/ is the trash directory used by --merge.  Files  are  moved  in
       here  on  deletion.  After  successful  completion  it  is  emptied unless --keep-trash is
       specified.

       $(REPOSITORY)/.syrep/tmp/ is used as temporary file space  for  extracting  snaphots  when
       option --local-temp is used.

RETURN VALUES

       0 Success

       Nonzero Failure

AUTHOR

       Syrep was written by Lennart Poettering <mzflerc (at) 0pointer (dot) de>.

       Syrep is available at http://0pointer.de/lennart/projects/syrep/

       You  are  encouraged  to improve this documentation, feel free to send me patches. This is
       free software, after all.

SEE ALSO

       rsync(1), cron(8), attr(5)

COMMENTS

       This man page was written using xml2man(1) by Oliver Kurth.