comparison design.txt @ 93:d55d4eedfc57

Switch to Path instead of String in filenames returned by various status operations
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Thu, 27 Jan 2011 21:15:21 +0100
parents 08754fce5778
children 44b97930570c
comparison
equal deleted inserted replaced
92:bf304cb14247 93:d55d4eedfc57
40 40
41 delta merge 41 delta merge
42 DataAccess - collect debug info (buffer misses, file size/total read operations) to find out better strategy to buffer size detection. Compare performance. 42 DataAccess - collect debug info (buffer misses, file size/total read operations) to find out better strategy to buffer size detection. Compare performance.
43 43
44 Strip off metadata from beg of the stream - DataAccess (with rebase/moveBaseOffset(int)) would be handy 44 Strip off metadata from beg of the stream - DataAccess (with rebase/moveBaseOffset(int)) would be handy
45 Parameterize StatusCollector to produce copy only when needed. And HgDataFile.metadata perhaps should be moved to cacheable place?
45 46
46 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) 47 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)
47 -> recently introduced FileWalker may perhaps help solving this (if starts walking from selected folder) for status op against WorkingDir? 48 -> recently introduced FileWalker may perhaps help solving this (if starts walking from selected folder) for status op against WorkingDir?
48 49
49 ? Can I use fncache (names from it - perhaps, would help for Mac issues Alex mentioned) 50 ? Can I use fncache (names from it - perhaps, would help for Mac issues Alex mentioned)
54 changes repository, hence manifest should update nodeids of the files it lists, effectively creating new manifest revision. 55 changes repository, hence manifest should update nodeids of the files it lists, effectively creating new manifest revision.
55 56
56 ? hg status, compare revision and local file with kw expansion and eol extension 57 ? hg status, compare revision and local file with kw expansion and eol extension
57 ? subrepos in log, status (-S) and manifest commands 58 ? subrepos in log, status (-S) and manifest commands
58 59
60
59 Commands to get CommandContext where they may share various caches (e.g. StatusCollector) 61 Commands to get CommandContext where they may share various caches (e.g. StatusCollector)
62 Perhaps, abstract classes for all Inspectors (i.e. StatusCollector.Inspector) for users to use as base classes to protect from change?
60 63
61 >>>> Effective file read/data access 64 >>>> Effective file read/data access
62 ReadOperation, Revlog does: repo.getFileSystem().run(this.file, new ReadOperation(), long start=0, long end = -1) 65 ReadOperation, Revlog does: repo.getFileSystem().run(this.file, new ReadOperation(), long start=0, long end = -1)
63 ReadOperation gets buffer (of whatever size, as decided by FS impl), parses it and then reports if needs more data. 66 ReadOperation gets buffer (of whatever size, as decided by FS impl), parses it and then reports if needs more data.
64 This helps to ensure streams are closed after reading, allows caching (if the same file (or LRU) is read few times in sequence) 67 This helps to ensure streams are closed after reading, allows caching (if the same file (or LRU) is read few times in sequence)