Mercurial > hg4j
diff 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 |
line wrap: on
line diff
--- a/design.txt Tue Mar 22 21:18:40 2011 +0100 +++ b/design.txt Wed Mar 23 14:13:11 2011 +0100 @@ -37,11 +37,15 @@ +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 ++Strip off metadata from beg of the stream - DataAccess (with rebase/moveBaseOffset(int)) would be handy ++ hg status, compare revision and local file with kw expansion and eol extension + +write code to convert inlined revlog to .i and .d delta merge DataAccess - collect debug info (buffer misses, file size/total read operations) to find out better strategy to buffer size detection. Compare performance. -Strip off metadata from beg of the stream - DataAccess (with rebase/moveBaseOffset(int)) would be handy + Parameterize StatusCollector to produce copy only when needed. And HgDataFile.metadata perhaps should be moved to cacheable place? 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) @@ -54,7 +58,6 @@ ??? 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. -? hg status, compare revision and local file with kw expansion and eol extension ? subrepos in log, status (-S) and manifest commands