how to implement this?
authorJoey Hess <joeyh@joeyh.name>
Tue, 5 Apr 2022 18:52:09 +0000 (14:52 -0400)
committerJoey Hess <joeyh@joeyh.name>
Tue, 5 Apr 2022 18:52:09 +0000 (14:52 -0400)
doc/todo/forget_dead_keys.mdwn
doc/todo/forget_dead_keys/comment_1_e4c7db734087dc4c2f6b86bb774136fd._comment [new file with mode: 0644]

index 64adc59a799f3d96694adee10ba2dd50673c387e..c9447666ae74375af01f72e90774932044a81419 100644 (file)
@@ -22,6 +22,4 @@ tree as well, but now it's getting complicated indeed.
 > scrubbed from the branch. In any case a key is probably referred to in
 > the master branch too.
 > 
-> It's still useful to implement this, just to reduce branch size.
-
-[[!tag confirmed]]
+> It'd still be useful to implement this, just to reduce branch size.
diff --git a/doc/todo/forget_dead_keys/comment_1_e4c7db734087dc4c2f6b86bb774136fd._comment b/doc/todo/forget_dead_keys/comment_1_e4c7db734087dc4c2f6b86bb774136fd._comment
new file mode 100644 (file)
index 0000000..49daf1a
--- /dev/null
@@ -0,0 +1,27 @@
+[[!comment format=mdwn
+ username="joey"
+ subject="""comment 1"""
+ date="2022-04-05T18:39:44Z"
+ content="""
+Took a look at implementing this, and found a challenging problem.
+A TransitionCalculator for this would need a way to check if a given key is
+dead. Which means that the TransitionCalculator would need to run in Annex,
+and read the location log for the key in order to decide whether to keep
+a log file associated with that key.
+
+That would make this transition be a lot slower to calculate than
+transitions are now -- currently transitions only need the content of the
+file they are acting on, and information that can be looked up before
+starting like the TrustMap. This new transition would be doing a lot of
+git-annex branch queries.
+
+The other problem is that, if a key is dead, the location log for it ought
+to be removed by the transition. But then calculating transitions for other
+log files associated with that key would not be able to read the location
+log to know it's dead. 
+
+Just caching in memory what dead keys have had their location logs removed
+would not necessarily be enough either -- if a clone added information to a
+log file associated with a dead key, then on merge from that clone, if
+the transition is re-run it would no longer know that the key was dead.
+"""]]