Artifact fb15e077e1d7048710b1d0a26c540bdf2aa6c4d9:
File tools/cvs2fossil/lib/cvs2fossil.tcl part of check-in [00bf8c198e] - 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 places, like graph setup and traversal, loading of changesets, etc. got feedback indicators to show their progress.
The selection of revision and symbol changesets for the associated breaker passes was a bit on the slow side. We now keep changeset lists sorted by type (during loading or general construction) and access them directly.
by aku on 2007-12-02 20:04:40.
0000: 23 23 20 2d 2a 2d 20 74 63 6c 20 2d 2a 2d 0a 23 ## -*- tcl -*-.# 0010: 20 23 20 23 23 20 23 23 23 20 23 23 23 23 23 20 # ## ### ##### 0020: 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 ######## ####### 0030: 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 ###### ######### 0040: 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23 20 ############.## 0050: 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 Copyright (c) 20 0060: 30 37 20 41 6e 64 72 65 61 73 20 4b 75 70 72 69 07 Andreas Kupri 0070: 65 73 2e 0a 23 0a 23 20 54 68 69 73 20 73 6f 66 es..#.# This sof 0080: 74 77 61 72 65 20 69 73 20 6c 69 63 65 6e 73 65 tware is license 0090: 64 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 d as described i 00a0: 6e 20 74 68 65 20 66 69 6c 65 20 4c 49 43 45 4e n the file LICEN 00b0: 53 45 2c 20 77 68 69 63 68 0a 23 20 79 6f 75 20 SE, which.# you 00c0: 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 should have rece 00d0: 69 76 65 64 20 61 73 20 70 61 72 74 20 6f 66 20 ived as part of 00e0: 74 68 69 73 20 64 69 73 74 72 69 62 75 74 69 6f this distributio 00f0: 6e 2e 0a 23 0a 23 20 54 68 69 73 20 73 6f 66 74 n..#.# This soft 0100: 77 61 72 65 20 63 6f 6e 73 69 73 74 73 20 6f 66 ware consists of 0110: 20 76 6f 6c 75 6e 74 61 72 79 20 63 6f 6e 74 72 voluntary contr 0120: 69 62 75 74 69 6f 6e 73 20 6d 61 64 65 20 62 79 ibutions made by 0130: 20 6d 61 6e 79 0a 23 20 69 6e 64 69 76 69 64 75 many.# individu 0140: 61 6c 73 2e 20 20 46 6f 72 20 65 78 61 63 74 20 als. For exact 0150: 63 6f 6e 74 72 69 62 75 74 69 6f 6e 20 68 69 73 contribution his 0160: 74 6f 72 79 2c 20 73 65 65 20 74 68 65 20 72 65 tory, see the re 0170: 76 69 73 69 6f 6e 0a 23 20 68 69 73 74 6f 72 79 vision.# history 0180: 20 61 6e 64 20 6c 6f 67 73 2c 20 61 76 61 69 6c and logs, avail 0190: 61 62 6c 65 20 61 74 20 68 74 74 70 3a 2f 2f 66 able at http://f 01a0: 6f 73 73 69 6c 2d 73 63 6d 2e 68 77 61 63 69 2e ossil-scm.hwaci. 01b0: 63 6f 6d 2f 66 6f 73 73 69 6c 0a 23 20 23 20 23 com/fossil.# # # 01c0: 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23 23 # ### ##### #### 01d0: 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23 23 #### ########### 01e0: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 ## ############# 01f0: 23 23 23 23 23 23 23 23 0a 0a 23 23 20 4d 61 69 ########..## Mai 0200: 6e 20 70 61 63 6b 61 67 65 20 6f 66 20 74 68 65 n package of the 0210: 20 63 76 73 20 63 6f 6e 76 65 72 73 69 6f 6e 2f cvs conversion/ 0220: 69 6d 70 6f 72 74 20 66 61 63 69 6c 69 74 79 2e import facility. 0230: 20 4c 6f 61 64 73 20 74 68 65 0a 23 23 20 72 65 Loads the.## re 0240: 71 75 69 72 65 64 20 70 69 65 63 65 73 20 61 6e quired pieces an 0250: 64 20 63 6f 6e 74 72 6f 6c 73 20 74 68 65 69 72 d controls their 0260: 20 69 6e 74 65 72 61 63 74 69 6f 6e 2e 0a 0a 23 interaction...# 0270: 20 23 20 23 23 20 23 23 23 20 23 23 23 23 23 20 # ## ### ##### 0280: 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 ######## ####### 0290: 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 ###### ######### 02a0: 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23 20 ############.## 02b0: 52 65 71 75 69 72 65 6d 65 6e 74 73 0a 0a 70 61 Requirements..pa 02c0: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 54 63 ckage require Tc 02d0: 6c 20 38 2e 34 20 20 20 20 20 20 20 20 20 20 20 l 8.4 02e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 ; 02f0: 23 20 52 65 71 75 69 72 65 64 20 72 75 6e 74 69 # Required runti 0300: 6d 65 2e 0a 70 61 63 6b 61 67 65 20 72 65 71 75 me..package requ 0310: 69 72 65 20 73 6e 69 74 20 20 20 20 20 20 20 20 ire snit 0320: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0330: 20 20 20 20 3b 20 23 20 4f 4f 20 73 79 73 74 65 ; # OO syste 0340: 6d 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 23 m..# # ## ### ## 0350: 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23 ### ######## ### 0360: 23 23 23 23 23 23 23 23 23 23 20 23 23 23 23 23 ########## ##### 0370: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################ 0380: 0a 23 23 20 50 61 73 73 65 73 2e 20 54 68 65 20 .## Passes. The 0390: 6f 72 64 65 72 20 69 6e 20 77 68 69 63 68 20 74 order in which t 03a0: 68 65 20 76 61 72 69 6f 75 73 20 70 61 73 73 65 he various passe 03b0: 73 20 61 72 65 20 6c 6f 61 64 65 64 20 69 73 0a s are loaded is. 03c0: 23 23 20 20 20 20 20 20 20 20 20 69 6d 70 6f 72 ## impor 03d0: 74 61 6e 74 2e 20 49 74 20 69 73 20 74 68 65 20 tant. It is the 03e0: 73 61 6d 65 20 6f 72 64 65 72 20 69 6e 20 77 68 same order in wh 03f0: 69 63 68 20 74 68 65 79 20 77 69 6c 6c 0a 23 23 ich they will.## 0400: 20 20 20 20 20 20 20 20 20 72 65 67 69 73 74 65 registe 0410: 72 2c 20 61 6e 64 20 74 68 65 6e 20 62 65 20 72 r, and then be r 0420: 75 6e 20 69 6e 2e 0a 0a 70 61 63 6b 61 67 65 20 un in...package 0430: 72 65 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 require vc::foss 0440: 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a il::import::cvs: 0450: 3a 70 61 73 73 3a 3a 63 6f 6c 6c 61 72 20 20 20 :pass::collar 0460: 20 20 20 3b 20 23 20 43 6f 6c 6c 27 65 63 74 20 ; # Coll'ect 0470: 41 72 27 63 68 69 76 65 73 2e 0a 70 61 63 6b 61 Ar'chives..packa 0480: 67 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a 66 ge require vc::f 0490: 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 ossil::import::c 04a0: 76 73 3a 3a 70 61 73 73 3a 3a 63 6f 6c 6c 72 65 vs::pass::collre 04b0: 76 20 20 20 20 20 3b 20 23 20 43 6f 6c 6c 27 65 v ; # Coll'e 04c0: 63 74 20 52 65 76 27 69 73 69 6f 6e 73 2e 0a 70 ct Rev'isions..p 04d0: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 ackage require v 04e0: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 c::fossil::impor 04f0: 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 63 6f t::cvs::pass::co 0500: 6c 6c 73 79 6d 20 20 20 20 20 3b 20 23 20 43 6f llsym ; # Co 0510: 6c 6c 27 61 74 65 20 53 79 6d 27 62 6f 6c 73 0a ll'ate Sym'bols. 0520: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 package require 0530: 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f vc::fossil::impo 0540: 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 66 rt::cvs::pass::f 0550: 69 6c 74 65 72 73 79 6d 20 20 20 3b 20 23 20 46 iltersym ; # F 0560: 69 6c 74 65 72 27 20 20 53 79 6d 27 62 6f 6c 73 ilter' Sym'bols 0570: 0a 0a 23 20 4e 6f 74 65 3a 20 63 76 73 32 73 76 ..# Note: cvs2sv 0580: 6e 27 73 20 53 6f 72 74 52 65 76 69 73 69 6f 6e n's SortRevision 0590: 53 75 6d 6d 61 72 79 50 61 73 73 20 61 6e 64 20 SummaryPass and 05a0: 53 6f 72 74 53 79 6d 62 6f 6c 53 75 6d 6d 61 72 SortSymbolSummar 05b0: 79 50 61 73 73 0a 23 20 20 20 20 20 20 20 61 72 yPass.# ar 05c0: 65 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 e not implemente 05d0: 64 20 62 79 20 75 73 2e 20 54 68 65 79 20 61 72 d by us. They ar 05e0: 65 20 69 72 72 65 6c 65 76 61 6e 74 20 64 75 65 e irrelevant due 05f0: 20 74 6f 20 6f 75 72 20 75 73 65 0a 23 20 20 20 to our use.# 0600: 20 20 20 20 6f 66 20 61 20 72 65 6c 61 74 69 6f of a relatio 0610: 6e 61 6c 20 64 61 74 61 62 61 73 65 20 70 72 6f nal database pro 0620: 70 65 72 20 66 6f 72 20 74 68 65 20 70 65 72 73 per for the pers 0630: 69 73 74 65 6e 74 20 73 74 61 74 65 2c 0a 23 20 istent state,.# 0640: 20 20 20 20 20 20 61 6c 6c 6f 77 69 6e 67 20 75 allowing u 0650: 73 20 74 6f 20 73 6f 72 74 20 74 68 65 20 64 61 s to sort the da 0660: 74 61 20 6f 6e 20 74 68 65 20 66 6c 79 20 61 73 ta on the fly as 0670: 20 77 65 20 6e 65 65 64 20 69 74 2e 0a 0a 70 61 we need it...pa 0680: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 63 ckage require vc 0690: 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 ::fossil::import 06a0: 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 69 6e 69 ::cvs::pass::ini 06b0: 74 63 73 65 74 73 20 20 20 3b 20 23 20 49 6e 69 tcsets ; # Ini 06c0: 74 27 69 61 6c 69 7a 65 20 43 27 68 61 6e 67 65 t'ialize C'hange 06d0: 27 53 65 74 73 0a 70 61 63 6b 61 67 65 20 72 65 'Sets.package re 06e0: 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 69 6c quire vc::fossil 06f0: 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 ::import::cvs::p 0700: 61 73 73 3a 3a 63 73 65 74 64 65 70 73 20 20 20 ass::csetdeps 0710: 20 3b 20 23 20 43 27 68 61 6e 67 65 27 53 65 74 ; # C'hange'Set 0720: 20 44 65 70 27 65 6e 64 65 6e 63 69 65 73 0a 70 Dep'endencies.p 0730: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 ackage require v 0740: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 c::fossil::impor 0750: 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 62 72 t::cvs::pass::br 0760: 65 61 6b 72 63 79 63 6c 65 20 3b 20 23 20 42 72 eakrcycle ; # Br 0770: 65 61 6b 27 20 52 27 65 76 69 73 69 6f 6e 20 43 eak' R'evision C 0780: 79 63 6c 65 27 73 0a 70 61 63 6b 61 67 65 20 72 ycle's.package r 0790: 65 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 69 equire vc::fossi 07a0: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a l::import::cvs:: 07b0: 70 61 73 73 3a 3a 72 74 6f 70 73 6f 72 74 20 20 pass::rtopsort 07c0: 20 20 3b 20 23 20 52 27 65 76 69 73 69 6f 6e 20 ; # R'evision 07d0: 54 6f 70 27 6f 6c 6f 67 69 63 61 6c 20 53 6f 72 Top'ological Sor 07e0: 74 27 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 t'.package requi 07f0: 72 65 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 re vc::fossil::i 0800: 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73 mport::cvs::pass 0810: 3a 3a 62 72 65 61 6b 73 63 79 63 6c 65 20 3b 20 ::breakscycle ; 0820: 23 20 42 72 65 61 6b 27 20 53 27 79 6d 62 6f 6c # Break' S'ymbol 0830: 20 43 79 63 6c 65 27 73 0a 70 61 63 6b 61 67 65 Cycle's.package 0840: 20 72 65 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 require vc::fos 0850: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 sil::import::cvs 0860: 3a 3a 70 61 73 73 3a 3a 62 72 65 61 6b 61 63 79 ::pass::breakacy 0870: 63 6c 65 20 3b 20 23 20 42 72 65 61 6b 27 20 41 cle ; # Break' A 0880: 27 6c 6c 20 43 79 63 6c 65 27 73 0a 70 61 63 6b 'll Cycle's.pack 0890: 61 67 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a age require vc:: 08a0: 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a fossil::import:: 08b0: 63 76 73 3a 3a 70 61 73 73 3a 3a 61 74 6f 70 73 cvs::pass::atops 08c0: 6f 72 74 20 20 20 20 3b 20 23 20 41 27 6c 6c 20 ort ; # A'll 08d0: 54 6f 70 27 6f 6c 6f 67 69 63 61 6c 20 53 6f 72 Top'ological Sor 08e0: 74 27 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 t'..# # ## ### # 08f0: 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 #### ######## ## 0900: 23 23 23 23 23 23 23 23 23 23 23 20 23 23 23 23 ########### #### 0910: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################ 0920: 23 0a 23 23 20 53 75 70 70 6f 72 74 20 66 6f 72 #.## Support for 0930: 20 70 61 73 73 65 73 20 65 74 63 2e 0a 0a 70 61 passes etc...pa 0940: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 63 ckage require vc 0950: 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 ::fossil::import 0960: 3a 3a 63 76 73 3a 3a 6f 70 74 69 6f 6e 20 3b 20 ::cvs::option ; 0970: 23 20 43 6d 64 20 6c 69 6e 65 20 70 61 72 73 69 # Cmd line parsi 0980: 6e 67 20 26 20 64 61 74 61 62 61 73 65 0a 70 61 ng & database.pa 0990: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 63 ckage require vc 09a0: 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 ::fossil::import 09b0: 3a 3a 63 76 73 3a 3a 70 61 73 73 20 20 20 3b 20 ::cvs::pass ; 09c0: 23 20 50 61 73 73 20 6d 61 6e 61 67 65 6d 65 6e # Pass managemen 09d0: 74 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 t.package requir 09e0: 65 20 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 6c 6f 67 e vc::tools::log 09f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a00: 20 20 3b 20 23 20 55 73 65 72 20 66 65 65 64 62 ; # User feedb 0a10: 61 63 6b 0a 0a 23 20 23 20 23 23 20 23 23 23 20 ack..# # ## ### 0a20: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23 ##### ######## # 0a30: 23 23 23 23 23 23 23 23 23 23 23 23 20 23 23 23 ############ ### 0a40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################ 0a50: 23 23 0a 23 23 0a 0a 73 6e 69 74 3a 3a 74 79 70 ##.##..snit::typ 0a60: 65 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a e ::vc::fossil:: 0a70: 69 6d 70 6f 72 74 3a 3a 63 76 73 20 7b 0a 20 20 import::cvs {. 0a80: 20 20 23 20 23 20 23 23 20 23 23 23 20 23 23 23 # # ## ### ### 0a90: 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23 ## ######## #### 0aa0: 23 23 23 23 23 23 23 23 23 0a 20 20 20 20 23 23 #########. ## 0ab0: 20 50 75 62 6c 69 63 20 41 50 49 2c 20 4d 65 74 Public API, Met 0ac0: 68 6f 64 73 0a 0a 20 20 20 20 74 79 70 65 6d 65 hods.. typeme 0ad0: 74 68 6f 64 20 72 75 6e 20 7b 61 72 67 75 6d 65 thod run {argume 0ae0: 6e 74 73 7d 20 7b 0a 09 23 20 52 75 6e 20 61 20 nts} {..# Run a 0af0: 73 65 72 69 65 73 20 6f 66 20 70 61 73 73 65 73 series of passes 0b00: 20 6f 76 65 72 20 74 68 65 20 63 76 73 20 72 65 over the cvs re 0b10: 70 6f 73 69 74 6f 72 79 20 74 6f 20 65 78 74 72 pository to extr 0b20: 61 63 74 2c 0a 09 23 20 66 69 6c 74 65 72 2c 20 act,..# filter, 0b30: 61 6e 64 20 6f 72 64 65 72 20 69 74 73 20 68 69 and order its hi 0b40: 73 74 6f 72 69 63 61 6c 20 69 6e 66 6f 72 6d 61 storical informa 0b50: 74 69 6f 6e 2e 20 57 68 69 63 68 20 70 61 73 73 tion. Which pass 0b60: 65 73 0a 09 23 20 61 72 65 20 61 63 74 75 61 6c es..# are actual 0b70: 6c 79 20 72 75 6e 20 69 73 20 64 65 74 65 72 6d ly run is determ 0b80: 69 6e 65 64 20 74 68 72 6f 75 67 68 20 74 68 65 ined through the 0b90: 20 73 70 65 63 69 66 69 65 64 20 6f 70 74 69 6f specified optio 0ba0: 6e 73 0a 09 23 20 61 6e 64 20 74 68 65 69 72 20 ns..# and their 0bb0: 64 65 66 61 75 6c 74 73 2e 0a 0a 09 6f 70 74 69 defaults....opti 0bc0: 6f 6e 20 70 72 6f 63 65 73 73 20 24 61 72 67 75 on process $argu 0bd0: 6d 65 6e 74 73 0a 09 70 61 73 73 20 72 75 6e 0a ments..pass run. 0be0: 0a 09 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 6c 6f 67 ..vc::tools::log 0bf0: 20 77 72 69 74 65 20 30 20 63 76 73 32 66 6f 73 write 0 cvs2fos 0c00: 73 69 6c 20 44 6f 6e 65 0a 09 72 65 74 75 72 6e sil Done..return 0c10: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 23 20 . }.. # # 0c20: 23 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23 ## ### ##### ### 0c30: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23 ##### ########## 0c40: 23 23 23 0a 20 20 20 20 23 23 20 43 6f 6e 66 69 ###. ## Confi 0c50: 67 75 72 61 74 69 6f 6e 0a 0a 20 20 20 20 70 72 guration.. pr 0c60: 61 67 6d 61 20 2d 68 61 73 69 6e 73 74 61 6e 63 agma -hasinstanc 0c70: 65 73 20 20 20 6e 6f 20 3b 20 23 20 73 69 6e 67 es no ; # sing 0c80: 6c 65 74 6f 6e 0a 20 20 20 20 70 72 61 67 6d 61 leton. pragma 0c90: 20 2d 68 61 73 74 79 70 65 69 6e 66 6f 20 20 20 -hastypeinfo 0ca0: 20 6e 6f 20 3b 20 23 20 6e 6f 20 69 6e 74 72 6f no ; # no intro 0cb0: 73 70 65 63 74 69 6f 6e 0a 20 20 20 20 70 72 61 spection. pra 0cc0: 67 6d 61 20 2d 68 61 73 74 79 70 65 64 65 73 74 gma -hastypedest 0cd0: 72 6f 79 20 6e 6f 20 3b 20 23 20 69 6d 6d 6f 72 roy no ; # immor 0ce0: 74 61 6c 0a 0a 20 20 20 20 23 20 23 20 23 23 20 tal.. # # ## 0cf0: 23 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23 ### ##### ###### 0d00: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 ## ############# 0d10: 0a 7d 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 .}..# # ## ### # 0d20: 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 #### ######## ## 0d30: 23 23 23 23 23 23 23 23 23 23 23 20 23 23 23 23 ########### #### 0d40: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################ 0d50: 23 0a 23 23 20 52 65 61 64 79 0a 0a 70 61 63 6b #.## Ready..pack 0d60: 61 67 65 20 70 72 6f 76 69 64 65 20 76 63 3a 3a age provide vc:: 0d70: 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a fossil::import:: 0d80: 63 76 73 20 31 2e 30 0a 72 65 74 75 72 6e 0a cvs 1.0.return.