.TH REPL 1 .SH NAME new, sync, scan \- peer to peer replica management .SH SYNOPSIS .B repl/new .I repl .I id .I dir [ .IR excldir ... ] .br .B repl/sync [ .B -N ] [ .B -12lrn ] .I repl1 .I repl2 [ .IR dir ... ] .br .B repl/scan .I repl .SH DESCRIPTION These programs provide a simplified user interface to the peer-to-peer replica management system described in .IR repl (8). Each peer is called a replica and holds a replicated file tree. Any number of replicas can be defined and any pair can be synchronized at any time. There is no centralized server nor there is a synchronization order required to detect conflicts. .PP Each replica is described by a simple .IR rc (1) script that identifies the file tree and related .IR repl (8) information. The programs try to find configuration files at .B $home/lib/repl and .B /lib/repl unless a path is supplied. .PP .I New defines a new replica .I repl for the given directory, using the given identifier. The identifier must be a lower case letter and must be unique for each peer of a replicated tree. The file .I repl created by the script is used later as an argument for .I sync and .IR scan . The optional .I excldir arguments are directories excluded from .I dir for replication purposes. See the examples below. .PP .I Sync synchronizes changes between replicas. Replicas are identified by the configuration files created by .IR new . Before synchronizing, .I sync scans both file trees for changes unless flag .B -N is given. Scan can be performed separately by using the .I scan script. If any .I dir is supplied, relative to the top-dir of a replica, synchronization applies only to it. .PP .I Sync flag .B -n performs a dry run to report changes between both replicas without synchronizing them (scan is still performed for both). The flag .B -l can be used to synchronize just the left replica (in command line order) with respect to the other. Flag .B -r does the same for the right replica. .PP Flags .B -1 and .B -2 can be used to resolve conflicts in favor of the first replica (the left one) and in favor of the second one (the right one). When there are different conflicts to be gained by different replicas, one replica can be updated by hand, and then used as the prefered to settle down all the conflicts. .SH EXAMPLE This defines for the system file tree, excluding .B /usr and .BR /dist , a replica called .BR a . Then we define another replica called .B b for a laptop. .EX ; repl/new /dist/sys a /root /usr /dist replica /dist/sys defined. ; repl/new /dist/laptop b /fossil /usr /dist replica /dist/laptop defined. .EE .LP Synchronice the laptop resolving any conflict in favor of the system .EX ; repl/sync -r1 /dist/sys /dist/laptop .EE .SH SOURCE .B /sys/src/cmd/repl .SH SEE ALSO .IR repl (8), .IR replica (1). .SH BUGS Append only files are not synchronized to prevent duplication of file contents.