comparison design.txt @ 169:8c8e3f372fa1

Towards initial clone: refactor HgBundle to provide slightly higher-level structure of the bundle
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 23 Mar 2011 14:13:11 +0100
parents 947bf231acbb
children 3a7696fb457c
comparison
equal deleted inserted replaced
168:dd525ca65de8 169:8c8e3f372fa1
35 +RevisionWalker (on manifest) and WorkingCopyWalker (io.File) talking to ? and/or dirstate (StatusCollector and WCSC) 35 +RevisionWalker (on manifest) and WorkingCopyWalker (io.File) talking to ? and/or dirstate (StatusCollector and WCSC)
36 +RevlogStream - Inflater. Perhaps, InflaterStream instead? branch:wrap-data-access 36 +RevlogStream - Inflater. Perhaps, InflaterStream instead? branch:wrap-data-access
37 +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- 37 +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-
38 + strip \1\n metadata out from RevlogStream 38 + strip \1\n metadata out from RevlogStream
39 + hash/digest long names for fncache 39 + hash/digest long names for fncache
40 +Strip off metadata from beg of the stream - DataAccess (with rebase/moveBaseOffset(int)) would be handy
41 + hg status, compare revision and local file with kw expansion and eol extension
42
43 write code to convert inlined revlog to .i and .d
40 44
41 delta merge 45 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. 46 DataAccess - collect debug info (buffer misses, file size/total read operations) to find out better strategy to buffer size detection. Compare performance.
43 47
44 Strip off metadata from beg of the stream - DataAccess (with rebase/moveBaseOffset(int)) would be handy 48
45 Parameterize StatusCollector to produce copy only when needed. And HgDataFile.metadata perhaps should be moved to cacheable place? 49 Parameterize StatusCollector to produce copy only when needed. And HgDataFile.metadata perhaps should be moved to cacheable place?
46 50
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) 51 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)
48 -> recently introduced FileWalker may perhaps help solving this (if starts walking from selected folder) for status op against WorkingDir? 52 -> recently introduced FileWalker may perhaps help solving this (if starts walking from selected folder) for status op against WorkingDir?
49 53
52 56
53 ??? encodings of fncache, .hgignore, dirstate 57 ??? encodings of fncache, .hgignore, dirstate
54 ??? http://mercurial.selenic.com/wiki/Manifest says "Multiple changesets may refer to the same manifest revision". To me, each changeset 58 ??? http://mercurial.selenic.com/wiki/Manifest says "Multiple changesets may refer to the same manifest revision". To me, each changeset
55 changes repository, hence manifest should update nodeids of the files it lists, effectively creating new manifest revision. 59 changes repository, hence manifest should update nodeids of the files it lists, effectively creating new manifest revision.
56 60
57 ? hg status, compare revision and local file with kw expansion and eol extension
58 ? subrepos in log, status (-S) and manifest commands 61 ? subrepos in log, status (-S) and manifest commands
59 62
60 63
61 Commands to get CommandContext where they may share various caches (e.g. StatusCollector) 64 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? 65 Perhaps, abstract classes for all Inspectors (i.e. StatusCollector.Inspector) for users to use as base classes to protect from change?