Hex Artifact Content
Not logged in

Artifact 48c254587c0e3f8748838e6b43d54901a051aa25:

File tools/cvs2fossil/lib/pkgIndex.tcl part of check-in [7f15be9078] - Added the ability to export the changeset graphs processed by the passes 6 to 8 using GraphViz's dot-format. This is activated by using the switch '--dots'. Bugfixes in the cycle breaker. First corrected variable names, I forgot to use the standard 'myXXX' format for the typevariables. Second, fixed a bug uncovered by looking at the exported graphs, which caused the system to loose arcs, possibly breaking cycles without actually breaking them, leaving them in the dependencies. by aku on 2007-11-20 06:59:03.

0000: 23 20 23 20 23 23 20 23 23 23 20 23 23 23 23 23  # # ## ### #####
0010: 20 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23   ######## ######
0020: 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23  ####### ########
0030: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23  #############.##
0040: 20 50 61 63 6b 61 67 65 20 6d 61 6e 61 67 65 6d   Package managem
0050: 65 6e 74 2e 0a 23 23 20 49 6e 64 65 78 20 6f 66  ent..## Index of
0060: 20 74 68 65 20 6c 6f 63 61 6c 20 70 61 63 6b 61   the local packa
0070: 67 65 73 20 72 65 71 75 69 72 65 64 20 62 79 20  ges required by 
0080: 63 76 73 32 66 6f 73 73 69 6c 0a 23 20 23 20 23  cvs2fossil.# # #
0090: 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23 23  # ### ##### ####
00a0: 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23 23  #### ###########
00b0: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23  ## #############
00c0: 23 23 23 23 23 23 23 23 0a 69 66 20 7b 21 5b 70  ########.if {![p
00d0: 61 63 6b 61 67 65 20 76 73 61 74 69 73 66 69 65  ackage vsatisfie
00e0: 73 20 5b 70 61 63 6b 61 67 65 20 72 65 71 75 69  s [package requi
00f0: 72 65 20 54 63 6c 5d 20 38 2e 34 5d 7d 20 72 65  re Tcl] 8.4]} re
0100: 74 75 72 6e 0a 70 61 63 6b 61 67 65 20 69 66 6e  turn.package ifn
0110: 65 65 64 65 64 20 76 63 3a 3a 66 6f 73 73 69 6c  eeded vc::fossil
0120: 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 20 20 20  ::import::cvs   
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 31 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72 63   1.0 [list sourc
0150: 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69  e [file join $di
0160: 72 20 63 76 73 32 66 6f 73 73 69 6c 2e 74 63 6c  r cvs2fossil.tcl
0170: 5d 5d 0a 70 61 63 6b 61 67 65 20 69 66 6e 65 65  ]].package ifnee
0180: 64 65 64 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a  ded vc::fossil::
0190: 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 66 69 6c  import::cvs::fil
01a0: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31  e              1
01b0: 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 20  .0 [list source 
01c0: 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20  [file join $dir 
01d0: 63 32 66 5f 66 69 6c 65 2e 74 63 6c 5d 5d 0a 70  c2f_file.tcl]].p
01e0: 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20  ackage ifneeded 
01f0: 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f  vc::fossil::impo
0200: 72 74 3a 3a 63 76 73 3a 3a 66 69 6c 65 3a 3a 6c  rt::cvs::file::l
0210: 6f 64 6d 67 72 20 20 20 20 20 20 31 2e 30 20 5b  odmgr      1.0 [
0220: 6c 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c  list source [fil
0230: 65 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66 5f  e join $dir c2f_
0240: 66 6c 6f 64 6d 67 72 2e 74 63 6c 5d 5d 0a 70 61  flodmgr.tcl]].pa
0250: 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20 76  ckage ifneeded v
0260: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
0270: 74 3a 3a 63 76 73 3a 3a 66 69 6c 65 3a 3a 72 65  t::cvs::file::re
0280: 76 20 20 20 20 20 20 20 20 20 31 2e 30 20 5b 6c  v         1.0 [l
0290: 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65  ist source [file
02a0: 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66 5f 66   join $dir c2f_f
02b0: 72 65 76 2e 74 63 6c 5d 5d 0a 70 61 63 6b 61 67  rev.tcl]].packag
02c0: 65 20 69 66 6e 65 65 64 65 64 20 76 63 3a 3a 66  e ifneeded vc::f
02d0: 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63  ossil::import::c
02e0: 76 73 3a 3a 66 69 6c 65 3a 3a 73 79 6d 20 20 20  vs::file::sym   
02f0: 20 20 20 20 20 20 31 2e 30 20 5b 6c 69 73 74 20        1.0 [list 
0300: 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69  source [file joi
0310: 6e 20 24 64 69 72 20 63 32 66 5f 66 73 79 6d 2e  n $dir c2f_fsym.
0320: 74 63 6c 5d 5d 0a 70 61 63 6b 61 67 65 20 69 66  tcl]].package if
0330: 6e 65 65 64 65 64 20 76 63 3a 3a 66 6f 73 73 69  needed vc::fossi
0340: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a  l::import::cvs::
0350: 66 69 6c 65 3a 3a 74 72 75 6e 6b 20 20 20 20 20  file::trunk     
0360: 20 20 31 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72    1.0 [list sour
0370: 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64  ce [file join $d
0380: 69 72 20 63 32 66 5f 66 74 72 75 6e 6b 2e 74 63  ir c2f_ftrunk.tc
0390: 6c 5d 5d 0a 70 61 63 6b 61 67 65 20 69 66 6e 65  l]].package ifne
03a0: 65 64 65 64 20 76 63 3a 3a 66 6f 73 73 69 6c 3a  eded vc::fossil:
03b0: 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 6f 70  :import::cvs::op
03c0: 74 69 6f 6e 20 20 20 20 20 20 20 20 20 20 20 20  tion            
03d0: 31 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72 63 65  1.0 [list source
03e0: 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72   [file join $dir
03f0: 20 63 32 66 5f 6f 70 74 69 6f 6e 2e 74 63 6c 5d   c2f_option.tcl]
0400: 5d 0a 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64  ].package ifneed
0410: 65 64 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69  ed vc::fossil::i
0420: 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 69 6e 74 65  mport::cvs::inte
0430: 67 72 69 74 79 20 20 20 20 20 20 20 20 20 31 2e  grity         1.
0440: 30 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 20 5b  0 [list source [
0450: 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 63  file join $dir c
0460: 32 66 5f 69 6e 74 65 67 72 69 74 79 2e 74 63 6c  2f_integrity.tcl
0470: 5d 5d 0a 70 61 63 6b 61 67 65 20 69 66 6e 65 65  ]].package ifnee
0480: 64 65 64 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a  ded vc::fossil::
0490: 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 61 73  import::cvs::pas
04a0: 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31  s              1
04b0: 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 20  .0 [list source 
04c0: 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20  [file join $dir 
04d0: 63 32 66 5f 70 61 73 73 2e 74 63 6c 5d 5d 0a 70  c2f_pass.tcl]].p
04e0: 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20  ackage ifneeded 
04f0: 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f  vc::fossil::impo
0500: 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 63  rt::cvs::pass::c
0510: 6f 6c 6c 61 72 20 20 20 20 20 20 31 2e 30 20 5b  ollar      1.0 [
0520: 6c 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c  list source [fil
0530: 65 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66 5f  e join $dir c2f_
0540: 70 63 6f 6c 6c 61 72 2e 74 63 6c 5d 5d 0a 70 61  pcollar.tcl]].pa
0550: 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20 76  ckage ifneeded v
0560: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
0570: 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 63 6f  t::cvs::pass::co
0580: 6c 6c 72 65 76 20 20 20 20 20 31 2e 30 20 5b 6c  llrev     1.0 [l
0590: 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65  ist source [file
05a0: 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66 5f 70   join $dir c2f_p
05b0: 63 6f 6c 6c 72 65 76 2e 74 63 6c 5d 5d 0a 70 61  collrev.tcl]].pa
05c0: 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20 76  ckage ifneeded v
05d0: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
05e0: 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 63 6f  t::cvs::pass::co
05f0: 6c 6c 73 79 6d 20 20 20 20 20 31 2e 30 20 5b 6c  llsym     1.0 [l
0600: 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65  ist source [file
0610: 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66 5f 70   join $dir c2f_p
0620: 63 6f 6c 6c 73 79 6d 2e 74 63 6c 5d 5d 0a 70 61  collsym.tcl]].pa
0630: 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20 76  ckage ifneeded v
0640: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
0650: 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 66 69  t::cvs::pass::fi
0660: 6c 74 65 72 73 79 6d 20 20 20 31 2e 30 20 5b 6c  ltersym   1.0 [l
0670: 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65  ist source [file
0680: 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66 5f 70   join $dir c2f_p
0690: 66 69 6c 74 65 72 73 79 6d 2e 74 63 6c 5d 5d 0a  filtersym.tcl]].
06a0: 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64  package ifneeded
06b0: 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70   vc::fossil::imp
06c0: 6f 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a  ort::cvs::pass::
06d0: 69 6e 69 74 63 73 65 74 73 20 20 20 31 2e 30 20  initcsets   1.0 
06e0: 5b 6c 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69  [list source [fi
06f0: 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66  le join $dir c2f
0700: 5f 70 69 6e 69 74 63 73 65 74 73 2e 74 63 6c 5d  _pinitcsets.tcl]
0710: 5d 0a 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64  ].package ifneed
0720: 65 64 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69  ed vc::fossil::i
0730: 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73  mport::cvs::pass
0740: 3a 3a 62 72 65 61 6b 72 63 79 63 6c 65 20 31 2e  ::breakrcycle 1.
0750: 30 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 20 5b  0 [list source [
0760: 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 63  file join $dir c
0770: 32 66 5f 70 62 72 65 61 6b 72 63 79 63 6c 65 2e  2f_pbreakrcycle.
0780: 74 63 6c 5d 5d 0a 70 61 63 6b 61 67 65 20 69 66  tcl]].package if
0790: 6e 65 65 64 65 64 20 76 63 3a 3a 66 6f 73 73 69  needed 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 62 72 65 61 6b 73 63 79 63 6c  pass::breakscycl
07c0: 65 20 31 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72  e 1.0 [list sour
07d0: 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64  ce [file join $d
07e0: 69 72 20 63 32 66 5f 70 62 72 65 61 6b 73 63 79  ir c2f_pbreakscy
07f0: 63 6c 65 2e 74 63 6c 5d 5d 0a 70 61 63 6b 61 67  cle.tcl]].packag
0800: 65 20 69 66 6e 65 65 64 65 64 20 76 63 3a 3a 66  e ifneeded vc::f
0810: 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63  ossil::import::c
0820: 76 73 3a 3a 70 61 73 73 3a 3a 62 72 65 61 6b 61  vs::pass::breaka
0830: 63 79 63 6c 65 20 31 2e 30 20 5b 6c 69 73 74 20  cycle 1.0 [list 
0840: 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69  source [file joi
0850: 6e 20 24 64 69 72 20 63 32 66 5f 70 62 72 65 61  n $dir c2f_pbrea
0860: 6b 61 63 79 63 6c 65 2e 74 63 6c 5d 5d 0a 70 61  kacycle.tcl]].pa
0870: 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20 76  ckage ifneeded v
0880: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
0890: 74 3a 3a 63 76 73 3a 3a 63 79 63 6c 65 62 72 65  t::cvs::cyclebre
08a0: 61 6b 65 72 20 20 20 20 20 20 31 2e 30 20 5b 6c  aker      1.0 [l
08b0: 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65  ist source [file
08c0: 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66 5f 63   join $dir c2f_c
08d0: 79 63 6c 65 62 72 65 61 6b 65 72 2e 74 63 6c 5d  yclebreaker.tcl]
08e0: 5d 0a 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64  ].package ifneed
08f0: 65 64 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69  ed vc::fossil::i
0900: 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 72 6f 6a  mport::cvs::proj
0910: 65 63 74 20 20 20 20 20 20 20 20 20 20 20 31 2e  ect           1.
0920: 30 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 20 5b  0 [list source [
0930: 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 63  file join $dir c
0940: 32 66 5f 70 72 6f 6a 65 63 74 2e 74 63 6c 5d 5d  2f_project.tcl]]
0950: 0a 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65  .package ifneede
0960: 64 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d  d vc::fossil::im
0970: 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 72 6f 6a 65  port::cvs::proje
0980: 63 74 3a 3a 6c 6f 64 6d 67 72 20 20 20 31 2e 30  ct::lodmgr   1.0
0990: 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 20 5b 66   [list source [f
09a0: 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 63 32  ile join $dir c2
09b0: 66 5f 70 6c 6f 64 6d 67 72 2e 74 63 6c 5d 5d 0a  f_plodmgr.tcl]].
09c0: 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64  package ifneeded
09d0: 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70   vc::fossil::imp
09e0: 6f 72 74 3a 3a 63 76 73 3a 3a 70 72 6f 6a 65 63  ort::cvs::projec
09f0: 74 3a 3a 72 65 76 20 20 20 20 20 20 31 2e 30 20  t::rev      1.0 
0a00: 5b 6c 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69  [list source [fi
0a10: 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 63 32 66  le join $dir c2f
0a20: 5f 70 72 65 76 2e 74 63 6c 5d 5d 0a 70 61 63 6b  _prev.tcl]].pack
0a30: 61 67 65 20 69 66 6e 65 65 64 65 64 20 76 63 3a  age ifneeded vc:
0a40: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a  :fossil::import:
0a50: 3a 63 76 73 3a 3a 70 72 6f 6a 65 63 74 3a 3a 72  :cvs::project::r
0a60: 65 76 6c 69 6e 6b 20 20 31 2e 30 20 5b 6c 69 73  evlink  1.0 [lis
0a70: 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a  t source [file j
0a80: 6f 69 6e 20 24 64 69 72 20 63 32 66 5f 70 72 65  oin $dir c2f_pre
0a90: 76 6c 69 6e 6b 2e 74 63 6c 5d 5d 0a 70 61 63 6b  vlink.tcl]].pack
0aa0: 61 67 65 20 69 66 6e 65 65 64 65 64 20 76 63 3a  age ifneeded vc:
0ab0: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a  :fossil::import:
0ac0: 3a 63 76 73 3a 3a 70 72 6f 6a 65 63 74 3a 3a 73  :cvs::project::s
0ad0: 79 6d 20 20 20 20 20 20 31 2e 30 20 5b 6c 69 73  ym      1.0 [lis
0ae0: 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a  t source [file j
0af0: 6f 69 6e 20 24 64 69 72 20 63 32 66 5f 70 73 79  oin $dir c2f_psy
0b00: 6d 2e 74 63 6c 5d 5d 0a 70 61 63 6b 61 67 65 20  m.tcl]].package 
0b10: 69 66 6e 65 65 64 65 64 20 76 63 3a 3a 66 6f 73  ifneeded vc::fos
0b20: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73  sil::import::cvs
0b30: 3a 3a 70 72 6f 6a 65 63 74 3a 3a 74 72 75 6e 6b  ::project::trunk
0b40: 20 20 20 20 31 2e 30 20 5b 6c 69 73 74 20 73 6f      1.0 [list so
0b50: 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20  urce [file join 
0b60: 24 64 69 72 20 63 32 66 5f 70 74 72 75 6e 6b 2e  $dir c2f_ptrunk.
0b70: 74 63 6c 5d 5d 0a 70 61 63 6b 61 67 65 20 69 66  tcl]].package if
0b80: 6e 65 65 64 65 64 20 76 63 3a 3a 66 6f 73 73 69  needed vc::fossi
0b90: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a  l::import::cvs::
0ba0: 72 65 70 6f 73 69 74 6f 72 79 20 20 20 20 20 20  repository      
0bb0: 20 20 31 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72    1.0 [list sour
0bc0: 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64  ce [file join $d
0bd0: 69 72 20 63 32 66 5f 72 65 70 6f 73 69 74 6f 72  ir c2f_repositor
0be0: 79 2e 74 63 6c 5d 5d 0a 70 61 63 6b 61 67 65 20  y.tcl]].package 
0bf0: 69 66 6e 65 65 64 65 64 20 76 63 3a 3a 66 6f 73  ifneeded vc::fos
0c00: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73  sil::import::cvs
0c10: 3a 3a 73 74 61 74 65 20 20 20 20 20 20 20 20 20  ::state         
0c20: 20 20 20 20 31 2e 30 20 5b 6c 69 73 74 20 73 6f      1.0 [list so
0c30: 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20  urce [file join 
0c40: 24 64 69 72 20 63 32 66 5f 73 74 61 74 65 2e 74  $dir c2f_state.t
0c50: 63 6c 5d 5d 0a 70 61 63 6b 61 67 65 20 69 66 6e  cl]].package ifn
0c60: 65 65 64 65 64 20 76 63 3a 3a 72 63 73 3a 3a 70  eeded vc::rcs::p
0c70: 61 72 73 65 72 20 20 20 20 20 20 20 20 20 20 20  arser           
0c80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0c90: 20 31 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72 63   1.0 [list sourc
0ca0: 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69  e [file join $di
0cb0: 72 20 72 63 73 70 61 72 73 65 72 2e 74 63 6c 5d  r rcsparser.tcl]
0cc0: 5d 0a 70 61 63 6b 61 67 65 20 69 66 6e 65 65 64  ].package ifneed
0cd0: 65 64 20 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 64 6f  ed vc::tools::do
0ce0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  t               
0cf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2e                1.
0d00: 30 20 5b 6c 69 73 74 20 73 6f 75 72 63 65 20 5b  0 [list source [
0d10: 66 69 6c 65 20 6a 6f 69 6e 20 24 64 69 72 20 64  file join $dir d
0d20: 6f 74 2e 74 63 6c 5d 5d 0a 70 61 63 6b 61 67 65  ot.tcl]].package
0d30: 20 69 66 6e 65 65 64 65 64 20 76 63 3a 3a 74 6f   ifneeded vc::to
0d40: 6f 6c 73 3a 3a 69 64 20 20 20 20 20 20 20 20 20  ols::id         
0d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d60: 20 20 20 20 20 31 2e 30 20 5b 6c 69 73 74 20 73       1.0 [list s
0d70: 6f 75 72 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e  ource [file join
0d80: 20 24 64 69 72 20 69 64 2e 74 63 6c 5d 5d 0a 70   $dir id.tcl]].p
0d90: 61 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20  ackage ifneeded 
0da0: 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 6c 6f 67 20 20  vc::tools::log  
0db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0dc0: 20 20 20 20 20 20 20 20 20 20 20 31 2e 30 20 5b             1.0 [
0dd0: 6c 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c  list source [fil
0de0: 65 20 6a 6f 69 6e 20 24 64 69 72 20 6c 6f 67 2e  e join $dir log.
0df0: 74 63 6c 5d 5d 0a 70 61 63 6b 61 67 65 20 69 66  tcl]].package if
0e00: 6e 65 65 64 65 64 20 76 63 3a 3a 74 6f 6f 6c 73  needed vc::tools
0e10: 3a 3a 6d 69 73 63 20 20 20 20 20 20 20 20 20 20  ::misc          
0e20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0e30: 20 20 31 2e 30 20 5b 6c 69 73 74 20 73 6f 75 72    1.0 [list sour
0e40: 63 65 20 5b 66 69 6c 65 20 6a 6f 69 6e 20 24 64  ce [file join $d
0e50: 69 72 20 6d 69 73 63 2e 74 63 6c 5d 5d 0a 70 61  ir misc.tcl]].pa
0e60: 63 6b 61 67 65 20 69 66 6e 65 65 64 65 64 20 76  ckage ifneeded v
0e70: 63 3a 3a 74 6f 6f 6c 73 3a 3a 74 72 6f 75 62 6c  c::tools::troubl
0e80: 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  e               
0e90: 20 20 20 20 20 20 20 20 20 20 31 2e 30 20 5b 6c            1.0 [l
0ea0: 69 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65  ist source [file
0eb0: 20 6a 6f 69 6e 20 24 64 69 72 20 74 72 6f 75 62   join $dir troub
0ec0: 6c 65 2e 74 63 6c 5d 5d 0a                       le.tcl]].