(no commit message)
authorjcjgraf <jcjgraf@web>
Tue, 7 Nov 2023 20:42:11 +0000 (20:42 +0000)
committeradmin <admin@branchable.com>
Tue, 7 Nov 2023 20:42:11 +0000 (20:42 +0000)
doc/forum/Required_Content_Always_True___40____61____62___cannot_drop__41__.mdwn [new file with mode: 0644]

diff --git a/doc/forum/Required_Content_Always_True___40____61____62___cannot_drop__41__.mdwn b/doc/forum/Required_Content_Always_True___40____61____62___cannot_drop__41__.mdwn
new file mode 100644 (file)
index 0000000..0e4332e
--- /dev/null
@@ -0,0 +1,82 @@
+Hey there,
+
+I am having the issue that git-annex reports files to be required even though it should not be.
+
+The setup is as follows (The groups that the repo is part of is specified in brackets):
+
+- Main repo (`origin`, `server`) on a server
+    - Regularly syncs all its data two two backup repos (`server`, `backup`, `backup_server`)
+        - These two backup repos are trusted, as they are not reachable by clients
+- Client repo (`client`) on PC
+    - Syncs with other clients via the server
+    - Manually syncs with a backup repo (`backup` `offline`, `backup_offline`) on a disk
+    - Each client has two remotes, the server (named `origin`) and the backup drive (named `usb`)
+
+I want that the required content is everything present, that is not yet (all of them):
+
+1. in the server repo
+2. in both server backup repos
+3. in a backup repo on an external drive
+
+I specify that using `git annex required . "present and (copies=origin:0 or (not copies=backup_server:2) or copies=backup_offline:0)"`.
+
+Now I want to drop file `A`
+
+File `A` is present on 5 repos. However, I cannot delete it, as it is "apparently" not on the server (i.e. `copies=origin:0` is true).
+
+```
+$ git annex whereis A
+whereis A (5 copies)
+       0cdca96a-e44d-4168-a3a0-8ab846451e74 -- Server_Backup2
+       44039708-f0d9-4ed0-833b-4d146d419b5d -- jeanclaude [here]
+       4ac4c649-b37c-403e-94e0-9497a7bc2a91 -- Server_Backup1
+       c0d1b661-1e19-4956-b290-ff62abc6d61a -- jc_backup_wd6tb [usb]
+       da3e14a5-188f-4a65-bf93-8fce9e409d09 -- [origin]
+ok
+
+$ git annex drop A --explain
+drop A [ A matches required content: present[TRUE] and ( copies=origin:0[TRUE] ) ]
+
+  That file is required content. It cannot be dropped!
+
+  (Use --force to override this check, or adjust required content configuration.)
+failed
+drop: 1 failed
+```
+
+What is it saying that it is not no `origin`? Is there something wrong with my setup? Does the drop command try to *lock* file `A` on all remotes (except on the server backups, as they are trusted)?
+
+
+Me doing some "debugging":
+
+```
+$ git annex required . "present and (copies=origin:1 or (not copies=backup_server:2) or copies=backup_offline:0)"
+required . ok
+(recording state in git...)
+
+$ git annex drop A --explain
+drop A [ A matches required content: present[TRUE] and ( copies=origin:1[TRUE] ) ]
+
+  That file is required content. It cannot be dropped!
+
+  (Use --force to override this check, or adjust required content configuration.)
+failed
+drop: 1 failed
+
+$ git annex required . "present and (copies=origin:10 or (not copies=backup_server:2) or copies=backup_offline:0)"
+required . ok
+(recording state in git...)
+
+$ git annex drop 2022/220513-PolybandInConcert/220513_220256.cr3 --explain
+drop A [ A matches required content: present[TRUE] and ( copies=origin:10[FALSE] or not copies=backup_server:2[TRUE] or copies=backup_offline:0[TRUE] ) ]
+
+  That file is required content. It cannot be dropped!
+
+  (Use --force to override this check, or adjust required content configuration.)
+failed
+drop: 1 failed
+```
+
+How can the number of copies on `origin` be `0` and `1` at the same time? Or do I misunderstand something completely? It also reports that the file in none of the backups (neither local nor remote).
+
+Thanks a lot your your time and effort!