diff --git a/doc/bugs/git-annex_branch_caching_bug.mdwn b/doc/bugs/git-annex_branch_caching_bug.mdwn new file mode 100644 index 0000000000..5c099f6fe5 --- /dev/null +++ b/doc/bugs/git-annex_branch_caching_bug.mdwn @@ -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]]