Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
50 events occurring around 4859304926731ffe.
2007-12-02
| ||
22:30 | Addition to the default style sheet to cover the name/value pairs at the top of the vinfo page. Also a bugfix in the report.c code. ... (check-in: dff17229ff user: drh tags: trunk) | |
20:06 | Importer Status... Speed. This is now mostly acceptable. The one exception is pass 'BreakAllCsetCycles'. The reason is that the limit computation it does for backward branches still uses the inefficient file-level dependency computation. This will be tackled in short order. For the other passes the file spent is 'CsetsDeps' is recouped by the much faster graph setup. Memory. This seems to be mostly acceptable as well, with the exceptions of 'BreakAllCsetCycles' (again, for reasons see above), and 'InitCsets'. It seems to happen while the pass breaks internal dependencies, but there is no hard data. I have to measure using a memory-debug enabled tclsh. I suspect either the actual internal dependencies, or the pseudo-dependencies. Maybe combined with a bad choice of data structures. Well, measuring first. ... (check-in: e8c374f670 user: aku tags: trunk) | |
20:04 | The performance was still not satisfying, even with faster recomputing of successors. Doing it multiple times (Building the graph in each breaker and sort passes) eats time. Caching in memory blows the memory. Chosen solution: Cache this information in the database. Created a new pass 'CsetDeps' which is run between 'InitCsets' and 'BreakRevCsetCycles' (i.e. changeset creation and first breaker pass). It computes the changeset dependencies from the file-level dependencies once and saves the result in the state, in the new table 'cssuccessor'. Now the breaker and sort passes can get the information quickly, with virtually no effort. The dependencies are recomputed incrementally when a changeset is split by one of the breaker passes, for its fragments and its predecessors. The loop check is now trivial, and integrated into the successor computation, with the heavy lifting for the detailed analysis and reporting moved down into the type-dependent SQL queries. The relevant new method is 'loops'. Now that the loop check is incremental the pass based checks have been removed from the integrity module, and the option '--loopcheck' has been eliminated. For paranoia the graph setup and modification code got its loop check reinstated as an assert, redusing the changeset report code. Renumbered the breaker and sort passes. A number of p... (check-in: 00bf8c198e user: aku tags: trunk) | |
06:58 | Added progress output to the breaking of backward branches. ... (check-in: a437da486d user: aku tags: trunk) | |
06:57 | Finally committing another disabled integrity constraint for changesets, explanations in the comments. ... (check-in: fd93aa26a6 user: aku tags: trunk) | |
06:49 | Bugfix. Typo. ... (check-in: c784751485 user: aku tags: trunk) | |
06:18 | Modified loop check in cycle breaker to abort immediately on first looped changeset. ... (check-in: 487bb1c619 user: aku tags: trunk) | |
06:17 | Fix table linkage in query, and duplicated conditions :( ... (check-in: f7cca3f082 user: aku tags: trunk) | |
05:49 | Performance bugfix. nextmap/premap can still be performance killers and memory hogs. Moved the computation of sucessor changesets down to the type-dependent code (new methods) and the SQL database, i.e. the C level. In the current setup it was possible that the DB would deliver us millions of file-level dependency pairs which the Tcl level would then reduce to tens of actual changeset dependencies. Tcl did not cope well with that amount of data. Now the reduction happens in the query itself. A concrete example was a branch in the Tcl CVS generating nearly 9 million pairs, which reduced to roughly 200 changeset dependencies. This blew the memory out of the water and the converter ground to a halt, busily swapping. Ok, causes behind us, also added another index on 'csitem(iid)' to speed the search for changesets from the revisions, tags, and branches. ... (check-in: 9c57055025 user: aku tags: trunk) | |
04:55 | Bugfix. Have the symbol dependency retrieval commands actually return something. ... (check-in: 712010580a user: aku tags: trunk) | |
03:49 | Deactivated caching of the nextmap/premap data, with the indices the retrieval seems to be fast enough to allow us to reduce mem consumption. Tweaked log output, and sql formatting. ... (check-in: ac02614803 user: aku tags: trunk) | |
03:46 | Bugfix in ValidateFragments, tweaked comment a bit, bugfix in SQL, reordered tables in the successor/predecessor queries a bit to show the actual progression of their use. ... (check-in: fbfb531868 user: aku tags: trunk) | |
03:42 | Fixed typo. Grr. ... (check-in: 0a97ad385a user: aku tags: trunk) | |
03:41 | Added progress output to the code loading up the graph to traverse, nodes, and arcs. ... (check-in: 41d41c7b57 user: aku tags: trunk) | |
03:40 | Added ability to declare indices on tables in the persistent state. Used this to declare indices on critical columns. Slows down the transactions saving changesets, this however is made up when it comes to successor/predecessor retrieval of changesets. ... (check-in: 74854a30b8 user: aku tags: trunk) | |
01:02 | • Changes to wiki page "To Do List" ... (artifact: 12cda7f4ea user: aku) | |
2007-12-01
| ||
18:36 | Bugfix. Handle free-floating branches (their root revision was removed as unnecessary). ... (check-in: 79c227a9c0 user: aku tags: trunk) | |
18:35 | Helper updated to changes in state definition. ... (check-in: 5bbc7d4c57 user: aku tags: trunk) | |
2007-11-30
| ||
15:21 | Updated helper app to changed state definition (csrevision -> csitem). ... (check-in: fc635d5977 user: aku tags: trunk) | |
15:20 | Fixed typo of keyword. ... (check-in: 3db03be62f user: aku tags: trunk) | |
06:57 | Easier name for self-referential changesets, loopcheck. Made conditional on option --loopcheck, default off, and avoided if the general checks on changesets report trouble. Reinstated the loop check in the cycle breaker core in simpler form, reusing the new command in the changeset class. ... (check-in: 0af7a3c8ac user: aku tags: trunk) | |
06:50 | Moved the integrity checks for split fragments into separate command. Reworked breaking of internal dependencies to contrain the length of the pending list. That part of the system is still a memory hog, especially for large changesets. Added notes about this and the successor retrieval being a bottleneck. ... (check-in: c14e8f84cd user: aku tags: trunk) | |
04:27 | Fixed bug in new changeset code, tagged and untagged item lists went out of sync. ... (check-in: facb4a8721 user: aku tags: trunk) | |
03:57 | Replaced the checks for self-referential changesets in the cycle breaker with a scheme in the changeset class doing checks when splitting a changeset, which is also called by the general changeset integrity code, after each pass. Extended log output at high verbosity levels. Thorough checking of the fragments a changeset is to be split into. ... (check-in: b42cff97e3 user: aku tags: trunk) | |
2007-11-29
| ||
09:16 | Renamed state table 'csrevision' to 'csitem' to reflect the new internals of changesets. Updated all places where it is used. ... (check-in: 80b1e8936f user: aku tags: trunk) | |
09:15 | Fix bad variable name. ... (check-in: 4859304926 user: aku tags: trunk) | |
09:14 | Updated commentary regarding cycles at this point, items instead of comments, etc. ... (check-in: af5904e6b7 user: aku tags: trunk) | |
09:13 | Extended checks for looped changesets. ... (check-in: 960645443b user: aku tags: trunk) | |
07:58 | Renamed changeset method to describe modified results, and updated the one invoker ... (check-in: 61829b076b user: aku tags: trunk) | |
07:55 | Renamed changeset method to describe modified results, and updated the one invoker. Modified the sorting of time ranges. Now by max, min as tiebreaker, and object name as last tiebreaker. ... (check-in: 04d76a9e79 user: aku tags: trunk) | |
07:50 | Added missing state declarations. ... (check-in: 2c9c26815f user: aku tags: trunk) | |
07:49 | Added mising state declarations. ... (check-in: 31d0fe7dd7 user: aku tags: trunk) | |
07:47 | More realignment of variable names with their content, in pass 5. ... (check-in: 27f093d23c user: aku tags: trunk) | |
07:41 | Simplified some code dealing with the item -> changeset map, using the changed semantics (1:n -> 1:1). ... (check-in: 39e19c0cf3 user: aku tags: trunk) | |
07:36 | Brought the variable names into alignment with the semantics, now again naming what is stored in them. ... (check-in: deab4d035b user: aku tags: trunk) | |
07:24 | Reworked the in-memory databases of changesets. Objects now hold items, not only revisions. Tags, and branches are new possibilities. Lists of ids go to the type-dependent retrieval command. List of tagged items (type/id pairs) come back, and are in the API. The 1:n map revisions to changesets is now an 1:1-map tagged items to changeset. ... (check-in: 0fcfbf7828 user: aku tags: trunk) | |
07:02 | Implemented time ranges and dependency retrieval for the tag and branch based changesets. ... (check-in: b1666f8ff4 user: aku tags: trunk) | |
06:58 | Moved the existing successor/predecessor code from main class to the proper singleton. Fixed config of main class, isn't simple dispatch any longer. Simplified calculation of the readable representation of changesets and removed code which has become superfluous. ... (check-in: 70d2283564 user: aku tags: trunk) | |
06:47 | Added equivalent checks for the tag and branch based changesets. ... (check-in: 4b15fa348d user: aku tags: trunk) | |
06:40 | Shuffled and updated the existing checks of revision changesets. ... (check-in: de10b2301e user: aku tags: trunk) | |
06:31 | Started to adapt the integrity module. Renamed Check to CheckRev, and added analoguous commands for Tags and Branches. Added placeholders for the new integrity commands, updated main changeset integrity command. ... (check-in: 7c28fe1312 user: aku tags: trunk) | |
06:23 | Updated the code printing the changeset statistics to know about change to the changeset types. ... (check-in: 8e3012423b user: aku tags: trunk) | |
06:21 | Brought knowledge of the new types to the state definition, changed the creation of the initial changesets to use tags and branches. ... (check-in: 215d2f1ad9 user: aku tags: trunk) | |
06:10 | Integrate the new singletons with the main class, route the relevant places to them. ... (check-in: c74fe3de3f user: aku tags: trunk) | |
05:58 | This commit starts a series of incremental changes not quite completely overhauling the handling of changesets, i.e. of project-level revisions. Actually this series of changes already started with [8ce7ffff21] as the bug it fixes was found when the first parts of the overhaul tripped the new integrity conditions for the modified changesets. Background: In the last few days I repeatedly ran against the wall of an assertion in pass 9, last of the cycle breakers, with the revision changesets coming in out of order when the symbols were added to the dependency graph. While walking to the office, and later re-reading the relevant parts of cvs2svn again I had several insights. Trigger was the realization that giving the tag changesets successor dependencies was wrong. Tags describe a state, they have no successors. This caused the re-read, and I recognized that my handling of the symbol changesets was completely wrong, that with using revisions as their data. It should have been the tags and branches. From there their actual dependencies (versus my reuse of revision dependencies) fell out naturally. I have decided to commit my rewrite of the internals incrementally to make it easier to follow them, despite leaving the sourcebase in an unusable state during the series. One big commit would be much more difficult to understand. The... (check-in: 27b15b7095 user: aku tags: trunk) | |
00:37 | Fix the merge conflict detection. ... (check-in: ba9af9aced user: drh tags: trunk) | |
2007-11-28
| ||
14:31 | Remove a stray character that snuck unto the rebuild.c source file. ... (check-in: f088412c49 user: drh tags: trunk) | |
08:35 | Bugfix in FilterSym pass. Grafting branches operated on the tags table :( ... (check-in: 8ce7ffff21 user: aku tags: trunk) | |
05:39 | Added convenience method for assertions and used it in place of the existing if/trouble internal constructions. Changed API of 'log write' so that we can defer substituation of the message to when the write actually happen, and converted all places which would be hit by double-substitution. The remaining 'log write' calls will be converted incrementally. ... (check-in: 47d52d1efd user: aku tags: trunk) | |
2007-11-27
| ||
09:07 | Modified to break all backward symbols, not only branches, removed the other custom circle breaking code, should not be needed any longer (See comments for proof). ... (check-in: 6b520e7d97 user: aku tags: trunk) | |