Mercurial > jhg
annotate design.txt @ 15:865bf07f381f
Basic hgignore handling
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Mon, 27 Dec 2010 00:50:02 +0100 | 
| parents | 442dc6ee647b | 
| children | 254078595653 | 
| rev | line source | 
|---|---|
| 1 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 1 FileStructureWalker (pass HgFile, HgFolder to callable; which can ask for VCS data from any file) | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 2 External uses: user browses files, selects one and asks for its history | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 3 Params: tip/revision; | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 4 Implementation: manifest | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 5 | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 6 Log --rev | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 7 Log <file> | 
| 2 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 8 HgDataFile.history() or Changelog.history(file)? | 
| 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 9 | 
| 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 10 | 
| 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 11 Changelog.all() to return list with placeholder, not-parsed elements (i.e. read only compressedLen field and skip to next record), so that | 
| 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 12 total number of elements in the list is correct | 
| 1 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 13 | 
| 
a3576694a4d1
Repository detection from local/specified directory
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: diff
changeset | 14 hg cat | 
| 2 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 15 Implementation: logic to find file by name in the repository is the same with Log and other commands | 
| 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 16 | 
| 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 17 | 
| 
08db726a0fb7
Shaping out low-level Hg structures
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
1diff
changeset | 18 Revlog | 
| 4 
aa1912c70b36
Fix offset issue for inline revlogs. Commandline processing.
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
2diff
changeset | 19 What happens when big entry is added to a file - when it detects it can't longer fit into .i and needs .d? Inline flag and .i format changes? | 
| 
aa1912c70b36
Fix offset issue for inline revlogs. Commandline processing.
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
2diff
changeset | 20 | 
| 
aa1912c70b36
Fix offset issue for inline revlogs. Commandline processing.
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
2diff
changeset | 21 | 
| 
aa1912c70b36
Fix offset issue for inline revlogs. Commandline processing.
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
2diff
changeset | 22 ---------- | 
| 6 
5abe5af181bd
Ant script to build commands and run sample
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
5diff
changeset | 23 + support patch from baseRev + few deltas (although done in a way patches are applied one by one instead of accumulated) | 
| 4 
aa1912c70b36
Fix offset issue for inline revlogs. Commandline processing.
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
2diff
changeset | 24 + command-line samples (-R, filenames) (Log & Cat) to show on any repo | 
| 6 
5abe5af181bd
Ant script to build commands and run sample
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
5diff
changeset | 25 +buildfile + run samples | 
| 9 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 26 *input stream impl + lifecycle. Step forward with FileChannel and ByteBuffer, although questionable accomplishment (looks bit complicated, cumbersome) | 
| 14 
442dc6ee647b
Show correct time
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
11diff
changeset | 27 + dirstate.mtime | 
| 4 
aa1912c70b36
Fix offset issue for inline revlogs. Commandline processing.
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
2diff
changeset | 28 | 
| 9 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 29 calculate sha1 digest for file to see I can deal with nodeid | 
| 11 
d46773d89a19
Boundary error in dirstate entry, explicit encoding to face troubles (if any) asap.
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
9diff
changeset | 30 DataAccess - collect debug info (buffer misses, file size/total read operations) to find out better strategy to buffer size detection. | 
| 4 
aa1912c70b36
Fix offset issue for inline revlogs. Commandline processing.
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
2diff
changeset | 31 delta merge | 
| 6 
5abe5af181bd
Ant script to build commands and run sample
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
5diff
changeset | 32 Changeset to get index (local revision number) | 
| 14 
442dc6ee647b
Show correct time
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
11diff
changeset | 33 .hgignored processing | 
| 
442dc6ee647b
Show correct time
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
11diff
changeset | 34 RevisionWalker (on manifest) and WorkingCopyWalker (io.File) talking to ? and/or dirstate | 
| 9 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 35 | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 36 | 
| 15 
865bf07f381f
Basic hgignore handling
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
14diff
changeset | 37 ??? encodings of fncache, .hgignore, dirstate | 
| 
865bf07f381f
Basic hgignore handling
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
14diff
changeset | 38 | 
| 9 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 39 >>>> Effective file read/data access | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 40 ReadOperation, Revlog does: repo.getFileSystem().run(this.file, new ReadOperation(), long start=0, long end = -1) | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 41 ReadOperation gets buffer (of whatever size, as decided by FS impl), parses it and then reports if needs more data. | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 42 This helps to ensure streams are closed after reading, allows caching (if the same file (or LRU) is read few times in sequence) | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 43 and allows buffer management (i.e. reuse. Single buffer for all reads). | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 44 Scheduling multiple operations (in future, to deal with writes - single queue for FS operations - no locks?) | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 45 | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 46 File access: | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 47 * NIO and mapped files - should be fast. Although seems to give less control on mem usage. | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 48 * Regular InputStreams and chunked stream on top - allocate List<byte[]>, each (but last) chunk of fixed size (depending on initial file size) | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 49 | 
| 
d6d2a630f4a6
Access to underlaying file data wrapped into own Access object, implemented with FileChannel and ByteBuffer
 Artem Tikhomirov <tikhomirov.artem@gmail.com> parents: 
6diff
changeset | 50 <<<<< | 
