# HG changeset patch # User Artem Tikhomirov # Date 1295992408 -3600 # Node ID 08754fce5778a3409476ecdb3cec6b5172c34367 # Parent a5275143664c3663a69932b8166a830a6ff33cc5 updated design questions diff -r a5275143664c -r 08754fce5778 design.txt --- a/design.txt Tue Jan 25 22:44:14 2011 +0100 +++ b/design.txt Tue Jan 25 22:53:28 2011 +0100 @@ -36,8 +36,8 @@ +RevlogStream - Inflater. Perhaps, InflaterStream instead? branch:wrap-data-access +repo.status - use same collector class twice, difference as external code. add external walker that keeps collected maps and use it in Log operation to give files+,files- + strip \1\n metadata out from RevlogStream ++ hash/digest long names for fncache -Implement use of fncache (use names from it - perhaps, would help for Mac issues Alex mentioned) along with 'digest'-ing long file names delta merge DataAccess - collect debug info (buffer misses, file size/total read operations) to find out better strategy to buffer size detection. Compare performance. @@ -46,6 +46,9 @@ Status operation from GUI - guess, usually on a file/subfolder, hence API should allow for starting path (unlike cmdline, seems useless to implement include/exclide patterns - GUI users hardly enter them, ever) -> recently introduced FileWalker may perhaps help solving this (if starts walking from selected folder) for status op against WorkingDir? +? Can I use fncache (names from it - perhaps, would help for Mac issues Alex mentioned) +? Does fncache lists both .i and .d (iow, is it true hashed .d is different from hashed .i) + ??? encodings of fncache, .hgignore, dirstate ??? http://mercurial.selenic.com/wiki/Manifest says "Multiple changesets may refer to the same manifest revision". To me, each changeset changes repository, hence manifest should update nodeids of the files it lists, effectively creating new manifest revision.