The filecache is our informal name for a cache mapping filenames to the patches
that affect them.
I'm creating a new ticket for this because I think it should stand independently
of the more general "improve darcs changes performance" (issue124) and "improve
darcs annotate performance" (issue984).
It's not trivial because we have to track file and directory renames. For
example, if I have a file 'f' that I create in one patch; and if I have a
directory 'd' that I create in another patch, then if 'f' gets moved into 'd'
the 'd' filecache has be absorbed into the 'f' one. I imagine that there can be
some fairly tricky scenarios beyond this.
Taylor Campbell points out that a conservative strategy can simplify matters.
|