Wed, 10 Apr 2019 13:50:24 +0200
adds list-conflicts command to dav-sync
--- a/dav/sync.c Wed Apr 10 13:48:44 2019 +0200 +++ b/dav/sync.c Wed Apr 10 13:50:24 2019 +0200 @@ -163,6 +163,8 @@ tid = start_sighandler(&mutex); ret = cmd_restore(args); stop_sighandler(&mutex, tid); + } else if(!strcmp(cmd, "list-conflicts")) { + ret = cmd_list_conflicts(args); } else if(!strcmp(cmd, "resolve-conflicts")) { ret = cmd_resolve_conflicts(args); } else if(!strcmp(cmd, "delete-conflicts")) { @@ -217,6 +219,7 @@ fprintf(stderr, " archive [-cldSRM] [-t <tags>] <directory>\n"); fprintf(stderr, " restore [-ldRM] [-V <version>] [-s <directory>] [file...]\n"); + fprintf(stderr, " list-conflicts <directory>\n"); fprintf(stderr, " resolve-conflicts <directory>\n"); fprintf(stderr, " delete-conflicts <directory>\n"); fprintf(stderr, " trash-info <directory>\n"); @@ -3841,6 +3844,62 @@ return ret; } +int cmd_list_conflicts(CmdArgs *a) { + if(a->argc != 1) { + fprintf(stderr, "Too %s arguments\n", a->argc < 1 ? "few" : "many"); + return -1; + } + + SyncDirectory *dir = scfg_get_dir(a->argv[0]); + if(!dir) { + fprintf(stderr, "Unknown sync dir: %s\n", a->argv[0]); + return -1; + } + if(scfg_check_dir(dir)) { + return -1; + } + + SyncDatabase *db = load_db(dir->database); + if(!db) { + fprintf(stderr, "Cannot load database file: %s\n", dir->database); + return -1; + } + + remove_deleted_conflicts(dir, db); + + // get all conflict sources + UcxMapIterator i = ucx_map_iterator(db->conflict); + LocalResource *res; + UcxList* conflict_sources = NULL; + UCX_MAP_FOREACH(key, res, i) { + conflict_sources = ucx_list_append(conflict_sources, res->conflict_source); + } + + // print unique conflict sources + conflict_sources = ucx_list_sort(conflict_sources, ucx_cmp_str, NULL); + UCX_FOREACH(elem, conflict_sources) { + char* path = elem->data; + if(cmd_getoption(a, "verbose")) { + int confl_count = 1; + while(elem->next && !strcmp(elem->next->data, path)) { + elem = elem->next; + ++confl_count; + } + printf("%s (%d)\n", path, confl_count); + } else { + printf("%s\n", path); + while(elem->next && !strcmp(elem->next->data, path)) { + elem = elem->next; + } + } + } + + // cleanup + destroy_db(db); + + return 0; +} + // TODO: remove code dup (main.c ls_size_str) static char* size_str(uint64_t size) {
--- a/dav/sync.h Wed Apr 10 13:48:44 2019 +0200 +++ b/dav/sync.h Wed Apr 10 13:50:24 2019 +0200 @@ -174,6 +174,7 @@ void remove_deleted_conflicts(SyncDirectory *dir, SyncDatabase *db); +int cmd_list_conflicts(CmdArgs *args); int cmd_resolve_conflicts(CmdArgs *args); int cmd_delete_conflicts(CmdArgs *args);
--- a/docs/html/add-directory.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/add-directory.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/add-repository.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/add-repository.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/add-tag.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/add-tag.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/archive.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/archive.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/check-config.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/check-config.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/check-repositories.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/check-repositories.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/commands.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/commands.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/configuration.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/configuration.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/copy.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/copy.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/date.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/date.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/delete-conflicts.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/delete-conflicts.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/empty-trash.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/empty-trash.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/encryption.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/encryption.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/export.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/export.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/get-property.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/get-property.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/get.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/get.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/getting-started.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/getting-started.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/import.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/import.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/index.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/index.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/info.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/info.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/introduction.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/introduction.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/html/list-conflicts.html Wed Apr 10 13:50:24 2019 +0200 @@ -0,0 +1,86 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <meta http-equiv="Content-Style-Type" content="text/css" /> + <meta name="generator" content="pandoc" /> + <title>dav-sync list-conflicts</title> + <style type="text/css">code{white-space: pre;}</style> + <link rel="stylesheet" href="davdoc.css" type="text/css" /> +</head> +<body> +<div class="header"> + <a href="./index.html"><span>DavUtils documentation</span></a> +</div> +<div class="sidebar"> + <div class="nav"> + <h3>dav</h3> + <ul> + <li><a href="getting-started.html">Getting started</a></li> + <li><a href="commands.html">Commands</a></li> + <ul> + <li><a href="list.html">list</a></li> + <li><a href="get.html">get</a></li> + <li><a href="put.html">put</a></li> + <li><a href="mkdir.html">mkdir</a></li> + <li><a href="remove.html">remove</a></li> + <li><a href="copy.html">copy</a></li> + <li><a href="move.html">move</a></li> + <li><a href="export.html">export</a></li> + <li><a href="import.html">import</a></li> + <li><a href="get-property.html">get-property</a></li> + <li><a href="set-property.html">set-property</a></li> + <li><a href="remove-property.html">remove-property</a></li> + <li><a href="lock.html">lock</a></li> + <li><a href="unlock.html">unlock</a></li> + <li><a href="info.html">info</a></li> + <li><a href="date.html">date</a></li> + <li><a href="add-repository.html">add-repository</a></li> + <li><a href="remove-repository.html">remove-repository</a></li> + <li><a href="list-repositories.html">list-repositories</a></li> + <li><a href="check-config.html">check-config</a></li> + </ul> + <li><a href="configuration.html">Configuration</a></li> + <li><a href="encryption.html">Encryption</a></li> + </ul> + </div> + <div class="nav"> + <h3>dav-sync</h3> + <ul> + <li><a href="introduction.html">Introduction</a></li> + <li><a href="sync-commands.html">Commands</a></li> + <ul> + <li><a href="pull.html">pull</a></li> + <li><a href="push.html">push</a></li> + <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> + <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> + <li><a href="delete-conflicts.html">delete-conflicts</a></li> + <li><a href="trash-info.html">trash-info</a></li> + <li><a href="empty-trash.html">empty-trash</a></li> + <li><a href="add-tag.html">add-tag</a></li> + <li><a href="remove-tag.html">remove-tag</a></li> + <li><a href="set-tags.html">set-tags</a></li> + <li><a href="list-tags.html">list-tags</a></li> + <li><a href="add-directory.html">add-directory</a></li> + <li><a href="list-directories.html">list-directories</a></li> + <li><a href="sync-check-config.html">check-config</a></li> + <li><a href="check-repositories.html">check-repositories</a></li> + </ul> + <li><a href="sync-configuration.html">Configuration</a></li> + </ul> + </div> +</div> + +<!-- begin content --> +<div class="content"> +<div id="header"> +<h1 class="title">dav-sync list-conflicts</h1> +</div> +<p><strong><code>dav-sync list-conflicts [-v] <directory></code></strong></p> +<p>Lists all conflicting files. If verbose output is enabled, the output also shows the number of entries for the same conflicting file.</p> +<p>For each conflict a backup file with the pattern <code>orig.N.filename</code> has been created. You can resolve the conflict by either deleting the backup, or replacing the conflicting file with the backup. In either case you don't need to do anything more and <code>dav-sync</code> will remove the conflict from the database automatically. You can also use the <a href="./delete-conflicts.html">delete-conflicts</a> command to bulk-delete all backups (in case you want to proceed with the upstream version of your files) or the <a href="./resolve-conflicts.html">resolve-conflicts</a> command to forcefully clear the conflict database.</p> +</div> +<!-- end content --> +</body> +</html>
--- a/docs/html/list-directories.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/list-directories.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/list-repositories.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/list-repositories.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/list-tags.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/list-tags.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/list.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/list.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/lock.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/lock.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/mkdir.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/mkdir.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/move.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/move.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/pull.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/pull.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/push.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/push.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/put.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/put.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/remove-property.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/remove-property.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/remove-repository.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/remove-repository.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/remove-tag.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/remove-tag.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/remove.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/remove.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/resolve-conflicts.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/resolve-conflicts.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li> @@ -77,7 +78,7 @@ <h1 class="title">dav-sync resolve-conflicts</h1> </div> <p><strong><code>dav-sync resolve-conflicts <directory></code></strong></p> -<p>Removes conflict entries from the database. This does not merge any files. All files which are marked as conflict are normal files after running this command. In other words: by executing this command you assert that <em>you</em> have resolved the conflicts.</p> +<p>Forcefully clears the conflict database. This does not merge any files. All files which are marked as conflict are normal files after running this command and will be uploaded at the next push. In other words: by executing this command you assert that <em>you</em> have resolved the conflicts. Usually you will not need this command.</p> </div> <!-- end content --> </body>
--- a/docs/html/set-property.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/set-property.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/set-tags.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/set-tags.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/sync-check-config.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/sync-check-config.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/sync-commands.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/sync-commands.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/sync-configuration.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/sync-configuration.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/trash-info.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/trash-info.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/html/unlock.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/html/unlock.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/man/dav-sync.1.man Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/man/dav-sync.1.man Wed Apr 10 13:50:24 2019 +0200 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pandoc 1.16.0.2 +.\" Automatically generated by Pandoc 1.19.2.4 .\" .TH "DAV\-SYNC" "1" "July 1, 2018" "Version 1.2" "DavUtils User Manuals" .hy @@ -41,13 +41,21 @@ .RS .RE .TP +.B list\-conflicts [\f[B]\-v\f[]] \f[I]directory\f[] +Lists all conflicting files. +If verbose output is enabled, the output also shows the number of +entries for the same conflicting file. +.RS +.RE +.TP .B resolve\-conflicts \f[I]directory\f[] -Removes conflict entries from the database. +Forcefully clears the conflict database. This does not merge any files. All files which are marked as conflict are normal files after running this command. In other words: by executing this command you assert that \f[B]you\f[] have resolved the conflicts. +Usually you will never need this command. .RS .RE .TP
--- a/docs/src/dav-sync.1.md Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/src/dav-sync.1.md Wed Apr 10 13:50:24 2019 +0200 @@ -33,11 +33,15 @@ the push command (with the same conflict behavior), however it does not delete files on the server. +list-conflicts [**-v**] *directory* +: Lists all conflicting files. If verbose output is enabled, the output also + shows the number of entries for the same conflicting file. + resolve-conflicts *directory* -: Removes conflict entries from the database. This does not merge any files. +: Forcefully clears the conflict database. This does not merge any files. All files which are marked as conflict are normal files after running this command. In other words: by executing this command you assert that **you** - have resolved the conflicts. + have resolved the conflicts. Usually you will never need this command. delete-conflicts *directory* : Deletes all files that are marked as a conflict. This will always delete
--- a/docs/src/header.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/src/header.html Wed Apr 10 13:50:24 2019 +0200 @@ -42,6 +42,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- a/docs/src/index.html Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/src/index.html Wed Apr 10 13:50:24 2019 +0200 @@ -53,6 +53,7 @@ <li><a href="pull.html">pull</a></li> <li><a href="push.html">push</a></li> <li><a href="archive.html">archive</a></li> + <li><a href="list-conflicts.html">list-conflicts</a></li> <li><a href="resolve-conflicts.html">resolve-conflicts</a></li> <li><a href="delete-conflicts.html">delete-conflicts</a></li> <li><a href="trash-info.html">trash-info</a></li>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/src/list-conflicts.md Wed Apr 10 13:50:24 2019 +0200 @@ -0,0 +1,21 @@ +--- +title: 'dav-sync list-conflicts' +--- + +**`dav-sync list-conflicts [-v] <directory>`** + +Lists all conflicting files. If verbose output is enabled, the output also +shows the number of entries for the same conflicting file. + +For each conflict a backup file with the pattern `orig.N.filename` has been +created. +You can resolve the conflict by either deleting the backup, or replacing the +conflicting file with the backup. +In either case you don't need to do anything more and `dav-sync` will remove +the conflict from the database automatically. +You can also use the [delete-conflicts][1] command to bulk-delete all backups +(in case you want to proceed with the upstream version of your files) or the +[resolve-conflicts][2] command to forcefully clear the conflict database. + +[1]: ./delete-conflicts.html +[2]: ./resolve-conflicts.html
--- a/docs/src/resolve-conflicts.md Wed Apr 10 13:48:44 2019 +0200 +++ b/docs/src/resolve-conflicts.md Wed Apr 10 13:50:24 2019 +0200 @@ -4,6 +4,8 @@ **`dav-sync resolve-conflicts <directory>`** -Removes conflict entries from the database. This does not merge any files. All files which are marked as conflict are normal files after running this command. +Forcefully clears the conflict database. This does not merge any files. +All files which are marked as conflict are normal files after running this command and will be uploaded at the next push. In other words: by executing this command you assert that *you* have resolved the conflicts. +Usually you will not need this command.