bug report
authorJoey Hess <joeyh@joeyh.name>
Wed, 21 Apr 2021 17:24:32 +0000 (13:24 -0400)
committerJoey Hess <joeyh@joeyh.name>
Wed, 21 Apr 2021 17:24:32 +0000 (13:24 -0400)
doc/bugs/git-annex_branch_caching_bug.mdwn [new file with mode: 0644]

diff --git a/doc/bugs/git-annex_branch_caching_bug.mdwn b/doc/bugs/git-annex_branch_caching_bug.mdwn
new file mode 100644 (file)
index 0000000..5c099f6
--- /dev/null
@@ -0,0 +1,22 @@
+If the journal contains a newer version of a log file than the git-annex
+branch, and annex.alwayscommit=false so the branch is not getting updated,
+the value from the journal can be ignored when reading that log file.
+
+In CmdLine.Seek, there is some code that precached location logs as an
+optimisation. That streams info from the git-annex branch into the cache.
+But it never checks for a journal file.
+
+One fix would be to just check the journal file too, but that would
+probably slow down the optimisation and would not speed up anything. So I
+think that the caching needs to note that it's got cached a value from the
+git-annex branch, but that the journal file needs to be checked for before
+using that cached data.
+
+Also in Cmdline.Seek, there is a LsTreeRecursive over the branch to handle
+`--all`, and I think again that would mean it doesn't notice location
+logs that are only in the journal. 
+Before that optimisation, it was using Logs.Location.loggedKeys,
+which does look at the journal.
+
+(This is also a blocker for [[todo/hiding_a_repository]].)
+--[[Joey]]