adds list-conflicts command to dav-sync

Wed, 10 Apr 2019 13:50:24 +0200

author
Mike Becker <universe@uap-core.de>
date
Wed, 10 Apr 2019 13:50:24 +0200
changeset 563
3dffe58a573f
parent 562
78a25071ed88
child 564
fb482734e429

adds list-conflicts command to dav-sync

dav/sync.c file | annotate | diff | comparison | revisions
dav/sync.h file | annotate | diff | comparison | revisions
docs/html/add-directory.html file | annotate | diff | comparison | revisions
docs/html/add-repository.html file | annotate | diff | comparison | revisions
docs/html/add-tag.html file | annotate | diff | comparison | revisions
docs/html/archive.html file | annotate | diff | comparison | revisions
docs/html/check-config.html file | annotate | diff | comparison | revisions
docs/html/check-repositories.html file | annotate | diff | comparison | revisions
docs/html/commands.html file | annotate | diff | comparison | revisions
docs/html/configuration.html file | annotate | diff | comparison | revisions
docs/html/copy.html file | annotate | diff | comparison | revisions
docs/html/date.html file | annotate | diff | comparison | revisions
docs/html/delete-conflicts.html file | annotate | diff | comparison | revisions
docs/html/empty-trash.html file | annotate | diff | comparison | revisions
docs/html/encryption.html file | annotate | diff | comparison | revisions
docs/html/export.html file | annotate | diff | comparison | revisions
docs/html/get-property.html file | annotate | diff | comparison | revisions
docs/html/get.html file | annotate | diff | comparison | revisions
docs/html/getting-started.html file | annotate | diff | comparison | revisions
docs/html/import.html file | annotate | diff | comparison | revisions
docs/html/index.html file | annotate | diff | comparison | revisions
docs/html/info.html file | annotate | diff | comparison | revisions
docs/html/introduction.html file | annotate | diff | comparison | revisions
docs/html/list-conflicts.html file | annotate | diff | comparison | revisions
docs/html/list-directories.html file | annotate | diff | comparison | revisions
docs/html/list-repositories.html file | annotate | diff | comparison | revisions
docs/html/list-tags.html file | annotate | diff | comparison | revisions
docs/html/list.html file | annotate | diff | comparison | revisions
docs/html/lock.html file | annotate | diff | comparison | revisions
docs/html/mkdir.html file | annotate | diff | comparison | revisions
docs/html/move.html file | annotate | diff | comparison | revisions
docs/html/pull.html file | annotate | diff | comparison | revisions
docs/html/push.html file | annotate | diff | comparison | revisions
docs/html/put.html file | annotate | diff | comparison | revisions
docs/html/remove-property.html file | annotate | diff | comparison | revisions
docs/html/remove-repository.html file | annotate | diff | comparison | revisions
docs/html/remove-tag.html file | annotate | diff | comparison | revisions
docs/html/remove.html file | annotate | diff | comparison | revisions
docs/html/resolve-conflicts.html file | annotate | diff | comparison | revisions
docs/html/set-property.html file | annotate | diff | comparison | revisions
docs/html/set-tags.html file | annotate | diff | comparison | revisions
docs/html/sync-check-config.html file | annotate | diff | comparison | revisions
docs/html/sync-commands.html file | annotate | diff | comparison | revisions
docs/html/sync-configuration.html file | annotate | diff | comparison | revisions
docs/html/trash-info.html file | annotate | diff | comparison | revisions
docs/html/unlock.html file | annotate | diff | comparison | revisions
docs/man/dav-sync.1.man file | annotate | diff | comparison | revisions
docs/src/dav-sync.1.md file | annotate | diff | comparison | revisions
docs/src/header.html file | annotate | diff | comparison | revisions
docs/src/index.html file | annotate | diff | comparison | revisions
docs/src/list-conflicts.md file | annotate | diff | comparison | revisions
docs/src/resolve-conflicts.md file | annotate | diff | comparison | revisions
--- 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] &lt;directory&gt;</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 &lt;directory&gt;</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.
 

mercurial