Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

200 most recent check-ins by user aku

Fixed an off-by-one error in print_person().

The original code extracted the leading '<' of the email address as part of the user name, putting an unmatched '<' into the git dump file, and breaking fast_import. This bug was only triggered by the user's contact information actually containing an email address. ... (check-in: de1921ba user: aku tags: trunk)

Merge support for the --template option of the 'new' command to trunk. ... (check-in: 75bcb480 user: mistachkin tags: trunk)
Fixed typo in the help message for the deconstruct command ... (check-in: f7cf6dd7 user: aku tags: trunk)
Fixed typos in commit [aa2fdc286c]. ... (check-in: 8cf380a4 user: aku tags: trunk)
Fixed typos reported by ticket [a3336458f6864db0404b6d45b144be0b17526fb0]. ... (check-in: 03b53ca4 user: aku tags: trunk)
Fixed a number of small typos. ... (check-in: d0e8e88d user: aku tags: trunk)
cvs2fossil, fixed off-by-one errors in the application of RCS patches. ... (check-in: 68cf3ecd user: aku tags: trunk)
Merge to [f08599e87b]. ... (check-in: f4aa6d09 user: aku tags: cvs2fossil-complete, trunk)
Split the current import pass into three, for files, changesets, and finalization (fossil rebuild). ... (check-in: 31b15fcf user: aku tags: trunk)
Extended main import method (pushto) to handle all types of changesets, not only revisions. Tag changesets lead to tagging of imported revisions, branch changesets reflect the proper location where branches start, and make it possible to handle tagging of branches without revisions as well. Modified code returning changesets for a projects to return all, not only revision, in sync with the previous. Changed the code determining tag/branch lod's to use table 'preferedparent'. ... (check-in: 983090a3 user: aku tags: trunk)
Extended test-import-manifest to return not only the record-id, but the hash uuid as well. Extended the fossil accessor class with methods for regular and branch tagging. Split the initialization from construction (needed for when we split the import pass into three), and a method to set/retrieve the accessor's configuration (persistence across passes). ... (check-in: b7fc4d9d user: aku tags: trunk)
Remember #commits to a workspace (= lod), and also their parental relationship. This will be used to control branch tagging (add/cancel), and provides us with the proper names for the tags as well. ... (check-in: 011fb38d user: aku tags: trunk)
Reverting the change of [a5840849d0]. Use of 'preferedparent' is ok. The problem I attempted to fix is properly fixed by looking at the branch changesets as well during import, and by acknowledging that there can be branches which have no changesets committed to them. ... (check-in: 99004d57 user: aku tags: trunk)
Changed the printing of the symbol tree to be based on table 'preferedparent', and introduced two procs to shorten the fomratting code. ... (check-in: ae53becd user: aku tags: trunk)
Fixed typo in a comment, and extended the description of the pass to be more clear. ... (check-in: e3e3d301 user: aku tags: trunk)
Fixed typo in a comment. ... (check-in: 479c96c0 user: aku tags: trunk)
Fix comment typo, and add comment about possible simplification. ... (check-in: 83ecb5b9 user: aku tags: trunk)
Merged with [82fc5abb60]. ... (check-in: 2e84fb3e user: aku tags: trunk)
Added options --tempdir, -t to redirect the importer to a user-specified directory for temp files and directories. ... (check-in: c5e9fa8d user: aku tags: trunk)
Merged with [aa519dbd99]. ... (check-in: 91fd4205 user: aku tags: trunk)
Updated method 'drop' of changesets, the in-memory parts have migrated to 'destroy' as part of the work on pass InitCSets. ... (check-in: 8dd5afbc user: aku tags: trunk)
Merged to [ed26056bb5]. ... (check-in: 588bb7cd user: aku tags: trunk)
Updated my notes regarding memory usage. Converted more locations to incremental query processing via 'state foreachrow', now throughout the importer. ... (check-in: f637d422 user: aku tags: trunk)
New command 'state foreachrow' for incremental result processing, using less memory. Converted a number of places in pass InitCSet to this command, and marked a number of othre places for possible future use. ... (check-in: 6559f323 user: aku tags: trunk)
Plugged memory leak in changeset destructor. Updated commentary. Reformatting of a few integrity checks for readability. ... (check-in: 4b0f43fb user: aku tags: trunk)
Changed the encoding of the values stored in DEPC. Keep only start/end of the range, not the list of all positions in it. That caused the memory-blowup. ... (check-in: 59b54efa user: aku tags: trunk)
Split internals of breakinternaldependencies into more manageable pieces in prep for upcoming work on the handling of pseudo-dependencies. ... (check-in: 530168ec user: aku tags: trunk)
Fix code handling --memory-track, missed import of its supporting command. ... (check-in: 02467830 user: aku tags: trunk)
Tweaked integrity output lightly. ... (check-in: 7c6df765 user: aku tags: trunk)
Fix extraction of memory data from the log, pipe symbol is special. ... (check-in: cff01852 user: aku tags: trunk)
Merged bugfix [b3d61d7829] into the main branch for optimization of memory usage. ... (check-in: efec424a user: aku tags: trunk)
Merged bugfix [b3d61d7829] into this semi-abandoned branch just in case we will work on it again. Do it now instead of forgetting it later. ... (Closed-Leaf check-in: 383c10f0 user: aku tags: trunk)
Fixed bug made in [f46458d5bd] which prevented the saving of the changesets generated by the breaking of the internal dependencies. ... (check-in: b3d61d78 user: aku tags: trunk)
Added high-level logging for memory tracing to the code breaking the preliminary changesets. First runs indicate that the DEPC array becomes so very large, caused by a high amount of indirect dependencies (several hundred). ... (check-in: c2ad73ed user: aku tags: trunk)
Modified the changeset class to move handling of the changeset lists to fully after their creation and storage. This is item (3) in cvsfossil.txt. The results do not satisfy however. During the creation of each changeset memory usage is (fractonally) lower, however at the end, after all changesets haven been loaded memory usage is consistently higher. The reason for that is not known. I am saving this for possible future evolution and usage, but will not pursue this further right now. The gains seem to be too small compared to the overall loss. InitializeBreakstate is likely a better target, despite its complexity. ... (check-in: faf57d74 user: aku tags: trunk)
Reworked the basic structure of pass InitCSets to keep memory consumption down. Now incremental creates, breaks, saves, and releases changesets, instead of piling them on before saving all at the end. Memory tracking confirms that this changes the accumulating mountain into a near-constant usage, with the expected spikes from the breaking. ... (check-in: f46458d5 user: aku tags: trunk)
Extended pass InitCsets and underlying code with more log output geared towards memory introspection, and added markers for special locations. Extended my notes with general observations from the first test runs over my example CVS repositories. ... (check-in: 27ed4f7d user: aku tags: trunk)
Integrated memory tracking into the option processor for activation and configuration, and into the log system for use. The latter means that each actual output to the log is an introspection point. ... (check-in: 7b71f647 user: aku tags: trunk)
Created a memory tracking subsystem to investigate memory consumption of the system in general, and pass InitCsets in particular. getmemory series is a postprocessor pulling the data out of the log and into a tables gnuplot is able to handle. ... (check-in: 8287044e user: aku tags: trunk)
Bugfix. Allow for removal of a path from a workspace which was not added to the workspace yet. Issue a warning when encontering this. ... (check-in: a25bafb7 user: aku tags: trunk)
Tune log output tracking the creation workspace objects, make them less stilted. ... (check-in: 300f3126 user: aku tags: trunk)
Tuned the handling of the vendor branch in case we have multiple different symbols representing it. The import pass now effectively merges these symbols into a single line of development. ... (check-in: 6d5de5f1 user: aku tags: trunk)
Extended my notes. ... (check-in: de03c8b1 user: aku tags: trunk)
Time information extended to include a total summed over all passes. Output extended to include formatted time data (hours, minutes, seconds). ... (check-in: 7817ff22 user: aku tags: trunk)
Report destination file for repository, and fix bug with the naming of the destination triggered when importing a repository in toto. ... (check-in: 0d02fe6c user: aku tags: trunk)
Added code to skip of administrative .cvsignore files. Added code to detect and warn about dot files (.FOO). Allow the user to import dot files by converting their names to non-dot form (.FOO -> dot-FOO). ... (check-in: c1dc8701 user: aku tags: trunk)
Properly initialize the array containing the changesets split by type. ... (check-in: 21d9664f user: aku tags: trunk)
Remembered a problem I have to deal with, added to my notes. ... (check-in: d2b1d3be user: aku tags: trunk)
Updated the copyright information of all files touched in the new year. ... (check-in: 66235f24 user: aku tags: trunk)
Updated my notes tracking the known problems. ... (check-in: 9f297fed user: aku tags: trunk)
Fixed bug computing a symbol's parent. preferedparent is the voting table, not the home of the definite information. The bug caused the use of the wrong parent lod during the import of changesets. Luckily the chosen parent was not known yet, causing an abort. ... (check-in: a5840849 user: aku tags: trunk)
Get the line of development for changesets directly from the items and their lod references. The in-memory data from the meta table is out-of-date since the adjustment of parents in pass 'FilterSymbols'. Print the LOD information when sorting the changesets. ... (check-in: 0d13da30 user: aku tags: trunk)
Print the tree of symbols (i.e. definite parents) at high verbosity levels. ... (check-in: 70acbf63 user: aku tags: trunk)
Added tracking of file removal in changesets. ... (check-in: c9270189 user: aku tags: trunk)
Moved log output for changeset log message to higher verbosity level. ... (check-in: 8ec5d8c8 user: aku tags: trunk)
Accept a last trunk-changeset on a vendor branch with the :trunk: already defined, and warn. Force changeset to be vendor-only, out of trunk. ... (check-in: a1bbf19d user: aku tags: trunk)
Removed bogus (early) unset. ... (check-in: 7caaf7af user: aku tags: trunk)
Added some musings to one of the situations to deal with. ... (check-in: 812c91bb user: aku tags: trunk)
Reworked the revision import to use the new state tracking system instead of the simple array. Moved some log outputs. Added a file listing the known problems to prevent me from forgetting stuff as it piles up :/ ... (check-in: e1dbf318 user: aku tags: trunk)
Moved the really large log output during revision import (log message, and command) to very high log levels. ... (check-in: e7138d7f user: aku tags: trunk)
Added classes to track the state of a workspace, and of the whole revision import. ... (check-in: d011e0b0 user: aku tags: trunk)
Added note of an idea taken over by Mark Janssen. ... (check-in: 4e02d677 user: aku tags: trunk)
Fixed a typo. ... (check-in: 2f70125d user: aku tags: trunk)
Merged importer to mainline. ... (check-in: 05239834 user: aku tags: trunk)
Removed the now obsolete textrange information from the revision table and updated the file revision code to not store its textrange any longer. ... (check-in: 3e76f2a5 user: aku tags: trunk)
Modified filtering pass to drop the blobs of excluded revisions, for them we can be sure that we will not need them later, as whole branches are dropped. Modified the file import to use the new blob information to setup the expansion graph. This fixes the trouble we had with archive files in bwidget. They are now properly expanded. ... (check-in: 83d75a6c user: aku tags: trunk)
Extended the collection of revisions for a file with a separate blob store to manage the text ranges of revisions and their dependencies separate from the revisions. This will be used later (upcoming) to properly expand a file even if revisions were removed as irrelevant during the collection and filter passes. ... (check-in: aa04ac9d user: aku tags: trunk)
Reworked the storage of the text range a bit, split immediately (settext) and store the pieces, instead of splitting everytime a piece is needed. ... (check-in: f94f7e17 user: aku tags: trunk)
Merged with mainline. ... (check-in: dbdc1601 user: aku tags: trunk)
Changeset handling, extended logging of how parent is determined. Fossil access, fixed importrev call to use correct workspace/repository. Fixed handling of output, stripping unwanted text, checking of output syntax. Extended logging. Added final 'rebuild'. NOTE: formation of the changesets/manifests is buggy, is not tracking unchanged files across changesets. Further not yet tracking when files have been removed. ... (check-in: 9214c118 user: aku tags: trunk)
Dropped primary key of temp table __im, record ids are not unique. Scenario: Several empty files. All have the same id, different paths. ... (check-in: dfb6ee3b user: aku tags: trunk)
Fix use (scoping) of revision items when looking for vendor branch data. ... (check-in: b405f4fc user: aku tags: trunk)
Fix bad setup of comment for manifest. ... (check-in: bd9703de user: aku tags: trunk)
Activated invokation of the fossil command importing a revision. ... (check-in: 41c9b799 user: aku tags: trunk)
Fixed description of file checkin.c. Implemented new command test-import-manifest. Updated fossil accessor code in the importer to the changed command line API of test-import-manifest. ... (check-in: b7a93530 user: aku tags: trunk)
Made remove_from_argv public for use by the upcoming test-import-manifest command. Fixed description of verify_all_options. Initialized variable to silence gcc warning. ... (check-in: da4f0c26 user: aku tags: trunk)
Reworked the code determining the parent of the currently committed changeset. It should now handle the transition from vendor branch to trunk correctly. ... (check-in: e8efbc31 user: aku tags: trunk)
Added high-verbosity (level 11) logging to trace the application of rcs patches. ... (check-in: e5ae612c user: aku tags: trunk)
Tinkered with the revision information transfered from a changeset to push, to the fossil accessor code, modified the logging as well. ... (check-in: 7c43583d user: aku tags: trunk)
Moved the most complex parts of pushto into their own commands. ... (check-in: 3cd599ca user: aku tags: trunk)
Added basic import of changesets. Note that this code is incomplete with regard to handling the various possible interactions between a vendor-branh and trunk. ... (check-in: 348e45b0 user: aku tags: trunk)
Added placeholder code to the fossil accessor class for the import of a revision. currently only logging the call. ... (check-in: f9e0d23d user: aku tags: trunk)
Broke package dependency cycle introduced when moving the cset load code from the InitCsets pass to the cset class. ... (check-in: 9e1b461b user: aku tags: trunk)
Extended log writing to handle multi-line log messages. ... (check-in: 81a297a6 user: aku tags: trunk)
Moved the code loading changesets from state to its proper class. ... (check-in: 49dd66f6 user: aku tags: trunk)
Fixed the names for the case-sensitive file operations. ... (check-in: ed13b28b user: aku tags: trunk)
Moved the new case-sensitive file checking code into the misc package with descriptive command names, to recapture clarity of code at the calling places. ... (check-in: edc46651 user: aku tags: trunk)
Added log output to make the log during file import more complete. ... (check-in: e60ba158 user: aku tags: trunk)
Added debug helper methods. Fixed description of symbol reference in instances. ... (check-in: 970be48f user: aku tags: trunk)
Allow for detached branches when checking lod consistency. Fixed formatting nit. Added debug helper method. ... (check-in: d3aa3388 user: aku tags: trunk)
Fixed bug in the code detaching a vendor branch. Left link to removed parent dangling, and killed connection to first on branch. No more. ... (check-in: 0adaabf1 user: aku tags: trunk)
Added comments to the sql commands in the integrity checks. ... (check-in: 727f370c user: aku tags: trunk)
More comments on sql statements. ... (check-in: 6809145e user: aku tags: trunk)
More comments on sql statements, slight reordering of some tables and conditions. ... (check-in: f7fe15cd user: aku tags: trunk)
Added comments explaining the select statement checking revision/file/project/metadata integrity ... (check-in: 808fbc47 user: aku tags: trunk)
Removed two unused classes. ... (check-in: 97e0e9dd user: aku tags: trunk)
Reworked time keeping in the pass manager, the microseconds kept by by the 'time' command flow over after roughly 72 minutes (2^32 microseconds). We now use 'clock seconds' to explicitly keep time. This should flow over only after abuut 136 years. The loss of resolution is ok, the converter does not need it. Seconds are good enough. ... (check-in: 9a763fe5 user: aku tags: trunk)
Extended traversal core to allow custom labeling of the log output immediately before the traversal starts. ... (check-in: b81901ad user: aku tags: trunk)
Removed the automatic destruction of the traversed graph from the traversal core and put it into the caller (import only, currently). ... (check-in: b59cdc7f user: aku tags: trunk)
Added progress feedback to the file import, and moved the log output to level 8. ... (check-in: 08f80857 user: aku tags: trunk)
Fixed handling of empty revisions. ... (check-in: bf0b70d5 user: aku tags: trunk)
Merged mainline into my branch to get the newest application. ... (check-in: d0305b30 user: aku tags: trunk)
Bugfix. Translation implies encoding, not the reverse. This caused problems when parsing files with mixed-mode line-endings. The generated char offsets and lengths were off. Found during expansion. ... (check-in: 6f1c4424 user: aku tags: trunk)
Created new pass for the import of files and changesets. Uses the new file method and fossil accessor class to handle the file import. Changeset -> manifest conversion is _not_ covered yet. ... (check-in: d9fc75e5 user: aku tags: trunk)
Extended file handling with main logic to import an archive into fossil. Main parts are determining the various orders for expansion and import, and expanding all revisions in an archive into full texts, iteratively applying the stored deltas. ... (check-in: e100314e user: aku tags: trunk)
Integrated the new fossil management class with the option processor. New option --fossil to specify the fossil executable if it was not found in the PATH, or to overide the PATH. ... (check-in: 1a20a81f user: aku tags: trunk)
Added helper class managing access to fossil repositories. Already has a basic method to import and delta-compress a series of files. Used 'test' commands of fossil to get the necessary low-level access. ... (check-in: b6bf21e2 user: aku tags: trunk)
Put the graph traversal core of the cycle breaker core into a separate class, for use in other parts of the system. TODO: Rewrite the cycle breaker core in terms of this class. ... (check-in: e7013137 user: aku tags: trunk)
Extended project class with method return full path of the project, i.e. inclusive its repository base path. ... (check-in: 82e35d33 user: aku tags: trunk)
Went to explicit var-substitution for the dynamic sql queries, makes formatting easier. ... (check-in: 0ee9711e user: aku tags: trunk)
Fixed typo, although it did not break anything. ... (check-in: 5b2d15f1 user: aku tags: trunk)
Fixed log progress use in last breaker pass. Disabled the check regarding revision order. It still triggers and I can't see anything wrong. Pressing forward for now, i.e. get the remaining passes done, then revisit this issue. ... (check-in: 22905072 user: aku tags: trunk)
The handling of detached lines of development (floating branches) still had some bugs regarding the linkage to their revisions, especially the first revision on such branches. Fixed the relevant places, added early integrity checks and updated the main checks to handle the situation. ... (check-in: c4003e7b user: aku tags: trunk)
Removed lots of now dead code. Added a note to the last remaining user of the changeset method 'nextmap'. ... (check-in: 3c0ef2c3 user: aku tags: trunk)
Reworked ComputeLimits in the last breaker pass. Moved the heavy computation of the max predecessor / min successor data down to the sql in the changeset class. ... (check-in: 711e0002 user: aku tags: trunk)
Fluff: Renamed state methods use/reading/writing to usedb/use/extend for clarity. Updated all callers. Extended state module with code to dump the SQL statements it receives to a file for analysis. Extended the 'use' declarations of several passes. ... (check-in: e288af39 user: aku tags: trunk)
Actually put the code for the new pass into the repository. ... (check-in: 060513f2 user: aku tags: trunk)
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: e8c374f6 user: aku tags: trunk)

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: 00bf8c19 user: aku tags: trunk)

Added progress output to the breaking of backward branches. ... (check-in: a437da48 user: aku tags: trunk)
Finally committing another disabled integrity constraint for changesets, explanations in the comments. ... (check-in: fd93aa26 user: aku tags: trunk)
Bugfix. Typo. ... (check-in: c7847514 user: aku tags: trunk)
Modified loop check in cycle breaker to abort immediately on first looped changeset. ... (check-in: 487bb1c6 user: aku tags: trunk)
Fix table linkage in query, and duplicated conditions :( ... (check-in: f7cca3f0 user: aku tags: trunk)
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: 9c570550 user: aku tags: trunk)
Bugfix. Have the symbol dependency retrieval commands actually return something. ... (check-in: 71201058 user: aku tags: trunk)
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: ac026148 user: aku tags: trunk)
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: fbfb5318 user: aku tags: trunk)
Fixed typo. Grr. ... (check-in: 0a97ad38 user: aku tags: trunk)
Added progress output to the code loading up the graph to traverse, nodes, and arcs. ... (check-in: 41d41c7b user: aku tags: trunk)
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: 74854a30 user: aku tags: trunk)
Bugfix. Handle free-floating branches (their root revision was removed as unnecessary). ... (check-in: 79c227a9 user: aku tags: trunk)
Helper updated to changes in state definition. ... (check-in: 5bbc7d4c user: aku tags: trunk)
Updated helper app to changed state definition (csrevision -> csitem). ... (check-in: fc635d59 user: aku tags: trunk)
Fixed typo of keyword. ... (check-in: 3db03be6 user: aku tags: trunk)
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: 0af7a3c8 user: aku tags: trunk)
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: c14e8f84 user: aku tags: trunk)
Fixed bug in new changeset code, tagged and untagged item lists went out of sync. ... (check-in: facb4a87 user: aku tags: trunk)
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: b42cff97 user: aku tags: trunk)
Renamed state table 'csrevision' to 'csitem' to reflect the new internals of changesets. Updated all places where it is used. ... (check-in: 80b1e893 user: aku tags: trunk)
Fix bad variable name. ... (check-in: 48593049 user: aku tags: trunk)
Updated commentary regarding cycles at this point, items instead of comments, etc. ... (check-in: af5904e6 user: aku tags: trunk)
Extended checks for looped changesets. ... (check-in: 96064544 user: aku tags: trunk)
Renamed changeset method to describe modified results, and updated the one invoker ... (check-in: 61829b07 user: aku tags: trunk)
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: 04d76a9e user: aku tags: trunk)
Added missing state declarations. ... (check-in: 2c9c2681 user: aku tags: trunk)
Added mising state declarations. ... (check-in: 31d0fe7d user: aku tags: trunk)
More realignment of variable names with their content, in pass 5. ... (check-in: 27f093d2 user: aku tags: trunk)
Simplified some code dealing with the item -> changeset map, using the changed semantics (1:n -> 1:1). ... (check-in: 39e19c0c user: aku tags: trunk)
Brought the variable names into alignment with the semantics, now again naming what is stored in them. ... (check-in: deab4d03 user: aku tags: trunk)
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: 0fcfbf78 user: aku tags: trunk)
Implemented time ranges and dependency retrieval for the tag and branch based changesets. ... (check-in: b1666f8f user: aku tags: trunk)
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: 70d22835 user: aku tags: trunk)
Added equivalent checks for the tag and branch based changesets. ... (check-in: 4b15fa34 user: aku tags: trunk)
Shuffled and updated the existing checks of revision changesets. ... (check-in: de10b230 user: aku tags: trunk)
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: 7c28fe13 user: aku tags: trunk)
Updated the code printing the changeset statistics to know about change to the changeset types. ... (check-in: 8e301242 user: aku tags: trunk)
Brought knowledge of the new types to the state definition, changed the creation of the initial changesets to use tags and branches. ... (check-in: 215d2f1a user: aku tags: trunk)
Integrate the new singletons with the main class, route the relevant places to them. ... (check-in: c74fe3de user: aku tags: trunk)
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: 27b15b70 user: aku tags: trunk)

Bugfix in FilterSym pass. Grafting branches operated on the tags table :( ... (check-in: 8ce7ffff user: aku tags: trunk)
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: 47d52d1e user: aku tags: trunk)
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: 6b520e7d user: aku tags: trunk)
Bugfix: Sort pending nodes fully deterministic, and moved to separate helper command. Tweaked log output. ... (check-in: 3e18606b user: aku tags: trunk)
Updated to extended changeset string, and added tabular formatting. Further tweaked output, putting timestamp adjust messages on the same line as the changeset itself. ... (check-in: 1c39e576 user: aku tags: trunk)
Changesets, extended human readable representation, and tweaking of log output. ... (check-in: 911d56a8 user: aku tags: trunk)
Bugfix in the generation of the initial symbol changesets. Keep entries apart per line-of-development. ... (check-in: 2e07cd71 user: aku tags: trunk)
Bugfixes when generating revision changesets. (1) The dependencies for a revision are a list, not single. (2) Use pseudo-dependencies to separate revisions of the same file from each other if they have no direct dependencies in the state. ... (check-in: 67876506 user: aku tags: trunk)
Continued work on the integrity checks for changesets. Moved callers out of transactions. Two checks are already tripping on bad changesets made by InitCSets (pass 5). ... (check-in: 8c6488de user: aku tags: trunk)
Outline for more integrity checks, focusing on the changesets. ... (check-in: bf83201c user: aku tags: trunk)
Code cleanup. Removed trailing whitespace across the board. ... (check-in: b679ca33 user: aku tags: trunk)
Another helper, textual, write changeset data to stdout. ... (check-in: 1ea319fb user: aku tags: trunk)
Tweaked log output of the topological sorter (revisions) to be tabular (aligned columns), added information (time ranges). ... (check-in: bcc630d3 user: aku tags: trunk)
Changesets: Added accessor for to retrieve number of changesets known, and dropped the "trunk root -> NTDB root" dependency, is problematic. ... (check-in: 96167b2a user: aku tags: trunk)
Fixed log output for pass 10, and added missing command. ... (check-in: 63052cb6 user: aku tags: trunk)
Extended cycle breaker with debug facility allowing the user to watch the neighbourhood of specific changesets during the traversal. Extended label information, highlighting of the nodes of interest. Tweaked log output a bit. ... (check-in: 97b4405e user: aku tags: trunk)
State log output, moved to slightly higher verbosity level to allow them to be suppressed. ... (check-in: 00e041dd user: aku tags: trunk)
Dot export extended, allow graph to define label color for highlighting. ... (check-in: eb43120a user: aku tags: trunk)
Filerevtree helper. Added missing requirements, and dialed the verbosity down. ... (check-in: 124fef5b user: aku tags: trunk)
Moved more parts taken over by the top. sort passes out the breaker passes, and renumbered them. ... (check-in: d743f04b user: aku tags: trunk)
Moved the parts taken over by the top. sort passes out the breaker passes, and renumbered them (comments). ... (check-in: b6b7ff79 user: aku tags: trunk)
Investigation of changeset order differences between running passes 1 to 6 and pass 6 alone show why the topological sort passes are separate in cvs2svn. The breaking of cycles can change the order of things due to different timeranges and dependencies of the broken changesets. Created two new passes for the sorting. The break passes 7 and 8 are now passes 8 and 9, and the new sort passes are 7 and 10. ... (check-in: 66c85b4d user: aku tags: trunk)
Tweaked log output of filtering pass a bit. ... (check-in: b41127b9 user: aku tags: trunk)
Tweaked human readable representation of changesets to include their type. ... (check-in: 0868adf9 user: aku tags: trunk)
Bugfix in pass manager, handling of open-ended pass specifications. ... (check-in: 9668b164 user: aku tags: trunk)
Tweaks of the log output, and reworked internals to expose not only breaking of cycles, but of paths as well. ... (check-in: 54e9b0a1 user: aku tags: trunk)
Created convenience methods to create the human readable repesentation of a changeset and lists of such, and made liberal use of them. ... (check-in: 87cf6090 user: aku tags: trunk)
Bugfix in changeset class. Documented and fixed the SQL statements pulling the successor and predecessor information out of the state. It mishandled the Trunk <-> NTDB transitions. ... (check-in: 184c5632 user: aku tags: trunk)
Bugfix in changeset class. Forgot to update the map from revisions to containing changesets when breaking the internal dependencies of the initial changesets. This affected only the first fragment as all the revisions put into separate fragments where still pointing to the original changeset. This lead to bogus links at the level of changesets, the changeset was seemingly still referencing itself. ... (check-in: 17ec2d68 user: aku tags: trunk)
Bugfix in the changeset class. The index from revisions to containing changesets is not 1:1, but 1:n. While only one revision changeset is possible there can also be zero or more symbol changesets. ... (check-in: 8c9030e3 user: aku tags: trunk)
Tweaked log output a bit. Bugfixes: Forgot to propagate the border information into SplitRevisions, and a varname typo. ... (check-in: 6d636343 user: aku tags: trunk)
Added a number of assertions and must-not-happens with associated log output. Plus some small tweaks, and notes. ... (check-in: eabaea87 user: aku tags: trunk)
Added missing node attributes in the Replace command. ... (check-in: a99d5798 user: aku tags: trunk)
Updated passes 6 and 8 for to the changtes in the cycle breaker API (changed signature of save callback). ... (check-in: 7ed2f29d user: aku tags: trunk)
Modified cycle breaker API. Hook for processed nodes now takes the graph as new first argument. Extended API, exposed method for dumping the current state of the graph, including ability to dump a sub graph. ... (check-in: 5f5620fb user: aku tags: trunk)
Extended the dot graph exporter to allow the export of a subgraph specified through a set of nodes. Default is the export of the whole graph, as before. ... (check-in: 86f33190 user: aku tags: trunk)
Added two more debugging helper applications. One to extract and show a file revision tree, the other to display a dot file generated by the importer during cycle breaking passes. ... (check-in: 64d0019e user: aku tags: trunk)
Added two helper applications which peek into a conversion state and generate graphs from it. Both helpers look at the tree of symbols and show it in toto (symbol tree), or restrict themselves to the branches, aka lines of development (lodtree). ... (check-in: b8c35421 user: aku tags: trunk)
Reworked the dot export internals a bit to be more general regarding labeling and attribute writing. Updated the cycle breaker to define proper labels. ... (check-in: f2848471 user: aku tags: trunk)
Tweaked the log output for the statistics a bit. ... (check-in: 2630e506 user: aku tags: trunk)