docs/html/introduction.html

changeset 704
8b88efcbf56f
parent 563
3dffe58a573f
equal deleted inserted replaced
703:2e3a24b9896a 704:8b88efcbf56f
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml"> 2 <html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
3 <head> 3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 4 <meta charset="utf-8" />
5 <meta http-equiv="Content-Style-Type" content="text/css" />
6 <meta name="generator" content="pandoc" /> 5 <meta name="generator" content="pandoc" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7 <title>Introduction to dav-sync</title> 7 <title>Introduction to dav-sync</title>
8 <style type="text/css">code{white-space: pre;}</style> 8 <style type="text/css">
9 <link rel="stylesheet" href="davdoc.css" type="text/css" /> 9 code{white-space: pre-wrap;}
10 span.smallcaps{font-variant: small-caps;}
11 span.underline{text-decoration: underline;}
12 div.column{display: inline-block; vertical-align: top; width: 50%;}
13 </style>
14 <link rel="stylesheet" href="davdoc.css" />
15 <!--[if lt IE 9]>
16 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
17 <![endif]-->
10 </head> 18 </head>
11 <body> 19 <body>
12 <div class="header"> 20 <div class="header">
13 <a href="./index.html"><span>DavUtils documentation</span></a> 21 <a href="./index.html"><span>DavUtils documentation</span></a>
14 </div> 22 </div>
24 <li><a href="put.html">put</a></li> 32 <li><a href="put.html">put</a></li>
25 <li><a href="mkdir.html">mkdir</a></li> 33 <li><a href="mkdir.html">mkdir</a></li>
26 <li><a href="remove.html">remove</a></li> 34 <li><a href="remove.html">remove</a></li>
27 <li><a href="copy.html">copy</a></li> 35 <li><a href="copy.html">copy</a></li>
28 <li><a href="move.html">move</a></li> 36 <li><a href="move.html">move</a></li>
37 <li><a href="rename.html">rename</a></li>
29 <li><a href="export.html">export</a></li> 38 <li><a href="export.html">export</a></li>
30 <li><a href="import.html">import</a></li> 39 <li><a href="import.html">import</a></li>
31 <li><a href="get-property.html">get-property</a></li> 40 <li><a href="get-property.html">get-property</a></li>
32 <li><a href="set-property.html">set-property</a></li> 41 <li><a href="set-property.html">set-property</a></li>
33 <li><a href="remove-property.html">remove-property</a></li> 42 <li><a href="remove-property.html">remove-property</a></li>
34 <li><a href="lock.html">lock</a></li> 43 <li><a href="lock.html">lock</a></li>
35 <li><a href="unlock.html">unlock</a></li> 44 <li><a href="unlock.html">unlock</a></li>
36 <li><a href="info.html">info</a></li> 45 <li><a href="info.html">info</a></li>
37 <li><a href="date.html">date</a></li> 46 <li><a href="date.html">date</a></li>
47 <li><a href="versioncontrol.html">versioncontrol</a></li>
48 <li><a href="list-versions.html">list-versions</a></li>
49 <li><a href="checkout.html">checkout</a></li>
50 <li><a href="checkin.html">checkin</a></li>
51 <li><a href="uncheckout.html">uncheckout</a></li>
38 <li><a href="add-repository.html">add-repository</a></li> 52 <li><a href="add-repository.html">add-repository</a></li>
39 <li><a href="remove-repository.html">remove-repository</a></li> 53 <li><a href="remove-repository.html">remove-repository</a></li>
40 <li><a href="list-repositories.html">list-repositories</a></li> 54 <li><a href="list-repositories.html">list-repositories</a></li>
55 <li><a href="repository-url.html">repository-url</a></li>
56 <li><a href="add-user.html">add-user</a></li>
57 <li><a href="remove-user.html">remove-user</a></li>
58 <li><a href="edit-user.html">edit-user</a></li>
59 <li><a href="list-users.html">list-users</a></li>
41 <li><a href="check-config.html">check-config</a></li> 60 <li><a href="check-config.html">check-config</a></li>
42 </ul> 61 </ul>
43 <li><a href="configuration.html">Configuration</a></li> 62 <li><a href="configuration.html">Configuration</a></li>
44 <li><a href="encryption.html">Encryption</a></li> 63 <li><a href="encryption.html">Encryption</a></li>
45 </ul> 64 </ul>
51 <li><a href="sync-commands.html">Commands</a></li> 70 <li><a href="sync-commands.html">Commands</a></li>
52 <ul> 71 <ul>
53 <li><a href="pull.html">pull</a></li> 72 <li><a href="pull.html">pull</a></li>
54 <li><a href="push.html">push</a></li> 73 <li><a href="push.html">push</a></li>
55 <li><a href="archive.html">archive</a></li> 74 <li><a href="archive.html">archive</a></li>
56 <li><a href="list-conflicts.html">list-conflicts</a></li> 75 <li><a href="restore.html">restore</a></li>
76 <li><a href="list-conflicts.html">list-conflicts</a></li>
57 <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> 77 <li><a href="resolve-conflicts.html">resolve-conflicts</a></li>
58 <li><a href="delete-conflicts.html">delete-conflicts</a></li> 78 <li><a href="delete-conflicts.html">delete-conflicts</a></li>
59 <li><a href="trash-info.html">trash-info</a></li> 79 <li><a href="trash-info.html">trash-info</a></li>
60 <li><a href="empty-trash.html">empty-trash</a></li> 80 <li><a href="empty-trash.html">empty-trash</a></li>
81 <li><a href="list-versions.html">list-versions</a></li>
61 <li><a href="add-tag.html">add-tag</a></li> 82 <li><a href="add-tag.html">add-tag</a></li>
62 <li><a href="remove-tag.html">remove-tag</a></li> 83 <li><a href="remove-tag.html">remove-tag</a></li>
63 <li><a href="set-tags.html">set-tags</a></li> 84 <li><a href="set-tags.html">set-tags</a></li>
64 <li><a href="list-tags.html">list-tags</a></li> 85 <li><a href="list-tags.html">list-tags</a></li>
65 <li><a href="add-directory.html">add-directory</a></li> 86 <li><a href="add-directory.html">add-directory</a></li>
72 </div> 93 </div>
73 </div> 94 </div>
74 95
75 <!-- begin content --> 96 <!-- begin content -->
76 <div class="content"> 97 <div class="content">
77 <div id="header"> 98 <header>
78 <h1 class="title">Introduction to dav-sync</h1> 99 <h1 class="title">Introduction to dav-sync</h1>
79 </div> 100 </header>
80 <p>The dav-sync program can synchronize a local directory with a WebDAV collection.</p> 101 <p>The dav-sync program can synchronize a local directory with a WebDAV collection.</p>
81 <h2 id="first-steps">First Steps</h2> 102 <h2 id="first-steps">First Steps</h2>
82 <p>To use dav-sync it is required to configure a repository in <a href="./configuration.html">config.xml</a> and the directory in <a href="./sync-configuration.html">sync.xml</a>.</p> 103 <p>To use dav-sync it is required to configure a repository in <a href="./configuration.html">config.xml</a> and the directory in <a href="./sync-configuration.html">sync.xml</a>.</p>
83 <p>Create a repository with <a href="./add-repository.html">dav add-repository</a>. Unlike <em>dav</em>, <em>dav-sync</em> is not interactive and never shows an authentication prompt. Therefore the user and password <strong>must</strong> be specified if the server requires authentication.</p> 104 <p>Create a repository with <a href="./add-repository.html">dav add-repository</a>. Unlike <em>dav</em>, <em>dav-sync</em> is not interactive and never shows an authentication prompt. Therefore the user and password <strong>must</strong> be specified if the server requires authentication.</p>
84 <pre><code>$ dav add-repository 105 <pre><code>$ dav add-repository
112 <pre><code>dav-sync push mysyncdir</code></pre> 133 <pre><code>dav-sync push mysyncdir</code></pre>
113 <h2 id="database">Database</h2> 134 <h2 id="database">Database</h2>
114 <p>Every sync-directory has a database xml file that contains the etag and last modified date of each file. The etag is used to detect changes on the server and the last modified date is used to detect local changes. The database file is usually located in <em>$HOME/.dav/</em> and if you want to reset a sync-directory, you can delete the database. After that, <em>pull</em>/<em>push</em> (with disabled conflict detection) will download/upload all files.</p> 135 <p>Every sync-directory has a database xml file that contains the etag and last modified date of each file. The etag is used to detect changes on the server and the last modified date is used to detect local changes. The database file is usually located in <em>$HOME/.dav/</em> and if you want to reset a sync-directory, you can delete the database. After that, <em>pull</em>/<em>push</em> (with disabled conflict detection) will download/upload all files.</p>
115 <h2 id="conflict-detection">Conflict detection</h2> 136 <h2 id="conflict-detection">Conflict detection</h2>
116 <p>The <em>pull</em> and <em>push</em> commands detect if a file has changed remotely and locally. This is a conflict that must be resolved manually.</p> 137 <p>The <em>pull</em> and <em>push</em> commands detect if a file has changed remotely and locally. This is a conflict that must be resolved manually.</p>
117 <p>When <em>pull</em> detects a conflict it renames the local file to <em>orig-$number.$name</em> where <em>$number</em> is an integer, usually 0 if no other conflict file with the name exists and <em>$name</em> is the file's name. After the file is renamed the new file from the server is downloadet. The user should merge the files manually then or just delete one or keep both. After that run <em>resolve-conflicts</em> to remove all conflict entries from the database otherwise <em>push</em> will ignore any file in a conflict state. There is also the <em>delete-conflicts</em> command that deletes all conflict files.</p> 138 <p>When <em>pull</em> detects a conflict it renames the local file to <em>orig-$number.$name</em> where <em>$number</em> is an integer, usually 0 if no other conflict file with the name exists and <em>$name</em> is the file’s name. After the file is renamed the new file from the server is downloadet. The user should merge the files manually then or just delete one or keep both. After that run <em>resolve-conflicts</em> to remove all conflict entries from the database otherwise <em>push</em> will ignore any file in a conflict state. There is also the <em>delete-conflicts</em> command that deletes all conflict files.</p>
118 <p>When <em>push</em> detects that a file is modified locally and on the server, it just skips this file. Run the <em>pull</em> command to get the new file from the server and resolve the conflict like described above.</p> 139 <p>When <em>push</em> detects that a file is modified locally and on the server, it just skips this file. Run the <em>pull</em> command to get the new file from the server and resolve the conflict like described above.</p>
119 <h2 id="trash">Trash</h2> 140 <h2 id="trash">Trash</h2>
120 <p>For high data safety, a trash directory can be configured. If this is done, dav-sync will not delete files, but move them to the trash directory. Also the pull command can move files to the trash directory before overwriting them.</p> 141 <p>For high data safety, a trash directory can be configured. If this is done, dav-sync will not delete files, but move them to the trash directory. Also the pull command can move files to the trash directory before overwriting them.</p>
121 <p>To enable the trash, add the <code>&lt;trash&gt;</code> element to the directory config. The trash path can be absolute or relative to the sync-directory path.</p> 142 <p>To enable the trash, add the <code>&lt;trash&gt;</code> element to the directory config. The trash path can be absolute or relative to the sync-directory path.</p>
122 <pre><code>&lt;directory&gt; 143 <pre><code>&lt;directory&gt;

mercurial