Hex Artifact Content
Not logged in

Artifact 525f34a1bcf0641de211c75098f77fe9580d4ee3:

File tools/cvs2fossil/lib/c2f_option.tcl part of check-in [7b71f64766] - 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. by aku on 2008-02-16 06:45:03.

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 4f 70 74  ########..## Opt
0200: 69 6f 6e 20 64 61 74 61 62 61 73 65 2c 20 70 72  ion database, pr
0210: 6f 63 65 73 73 65 73 20 74 68 65 20 63 6f 6d 6d  ocesses the comm
0220: 61 6e 64 20 6c 69 6e 65 2e 20 4e 6f 74 65 20 74  and line. Note t
0230: 68 61 74 20 6e 6f 74 20 61 6c 6c 20 6f 66 0a 23  hat not all of.#
0240: 23 20 74 68 65 20 6f 70 74 69 6f 6e 20 69 6e 66  # the option inf
0250: 6f 72 6d 61 74 69 6f 6e 20 69 73 20 73 74 6f 72  ormation is stor
0260: 65 64 20 68 65 72 65 2e 20 50 61 72 74 73 20 61  ed here. Parts a
0270: 72 65 20 70 72 6f 70 61 67 61 74 65 64 20 74 6f  re propagated to
0280: 0a 23 23 20 6f 74 68 65 72 20 70 69 65 63 65 73  .## other pieces
0290: 20 6f 66 20 74 68 65 20 73 79 73 74 65 6d 20 61   of the system a
02a0: 6e 64 20 68 61 6e 64 6c 65 64 20 74 68 65 72 65  nd handled there
02b0: 2c 20 76 69 61 20 6f 70 74 69 6f 6e 0a 23 23 20  , via option.## 
02c0: 64 65 6c 65 67 61 74 69 6f 6e 0a 0a 23 20 23 20  delegation..# # 
02d0: 23 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23  ## ### ##### ###
02e0: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23  ##### ##########
02f0: 23 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23  ### ############
0300: 23 23 23 23 23 23 23 23 23 0a 23 23 20 52 65 71  #########.## Req
0310: 75 69 72 65 6d 65 6e 74 73 0a 0a 70 61 63 6b 61  uirements..packa
0320: 67 65 20 72 65 71 75 69 72 65 20 54 63 6c 20 38  ge require Tcl 8
0330: 2e 34 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .4              
0340: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0350: 20 3b 20 23 20 52 65 71 75 69 72 65 64 20 72 75   ; # Required ru
0360: 6e 74 69 6d 65 2e 0a 70 61 63 6b 61 67 65 20 72  ntime..package r
0370: 65 71 75 69 72 65 20 73 6e 69 74 20 20 20 20 20  equire snit     
0380: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0390: 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 23               ; #
03a0: 20 4f 4f 20 73 79 73 74 65 6d 2e 0a 70 61 63 6b   OO system..pack
03b0: 61 67 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a  age require vc::
03c0: 74 6f 6f 6c 73 3a 3a 74 72 6f 75 62 6c 65 20 20  tools::trouble  
03d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
03e0: 20 20 3b 20 23 20 45 72 72 6f 72 20 72 65 70 6f    ; # Error repo
03f0: 72 74 69 6e 67 2e 0a 70 61 63 6b 61 67 65 20 72  rting..package r
0400: 65 71 75 69 72 65 20 76 63 3a 3a 74 6f 6f 6c 73  equire vc::tools
0410: 3a 3a 6c 6f 67 20 20 20 20 20 20 20 20 20 20 20  ::log           
0420: 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 23               ; #
0430: 20 55 73 65 72 20 66 65 65 64 62 61 63 6b 2e 0a   User feedback..
0440: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20  package require 
0450: 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 6d 65 6d 20 20  vc::tools::mem  
0460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0470: 20 20 20 20 20 20 3b 20 23 20 4d 65 6d 6f 72 79        ; # Memory
0480: 20 74 72 61 63 6b 69 6e 67 2e 0a 70 61 63 6b 61   tracking..packa
0490: 67 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a 74  ge require vc::t
04a0: 6f 6f 6c 73 3a 3a 6d 69 73 63 20 20 20 20 20 20  ools::misc      
04b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
04c0: 20 3b 20 23 20 4d 69 73 63 2e 20 70 61 74 68 20   ; # Misc. path 
04d0: 72 65 66 6f 72 6d 61 74 74 69 6e 67 2e 0a 70 61  reformatting..pa
04e0: 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 63  ckage require vc
04f0: 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74  ::fossil::import
0500: 3a 3a 63 76 73 3a 3a 66 6f 73 73 69 6c 20 20 20  ::cvs::fossil   
0510: 20 20 20 20 3b 20 23 20 46 6f 73 73 69 6c 20 72      ; # Fossil r
0520: 65 70 6f 73 69 74 6f 72 79 20 61 63 63 65 73 73  epository access
0530: 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65  .package require
0540: 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70   vc::fossil::imp
0550: 6f 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73 20 20  ort::cvs::pass  
0560: 20 20 20 20 20 20 20 3b 20 23 20 50 61 73 73 20         ; # Pass 
0570: 6d 61 6e 61 67 65 6d 65 6e 74 0a 70 61 63 6b 61  management.packa
0580: 67 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a 66  ge require vc::f
0590: 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63  ossil::import::c
05a0: 76 73 3a 3a 70 61 73 73 3a 3a 63 6f 6c 6c 61 72  vs::pass::collar
05b0: 20 3b 20 23 20 50 61 73 73 20 49 2e 0a 70 61 63   ; # Pass I..pac
05c0: 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 63 3a  kage require vc:
05d0: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a  :fossil::import:
05e0: 3a 63 76 73 3a 3a 72 65 70 6f 73 69 74 6f 72 79  :cvs::repository
05f0: 20 20 20 3b 20 23 20 52 65 70 6f 73 69 74 6f 72     ; # Repositor
0600: 79 20 6d 61 6e 61 67 65 6d 65 6e 74 0a 70 61 63  y management.pac
0610: 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 63 3a  kage require vc:
0620: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a  :fossil::import:
0630: 3a 63 76 73 3a 3a 73 74 61 74 65 20 20 20 20 20  :cvs::state     
0640: 20 20 20 3b 20 23 20 53 74 61 74 65 20 73 74 6f     ; # State sto
0650: 72 61 67 65 0a 70 61 63 6b 61 67 65 20 72 65 71  rage.package req
0660: 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 69 6c 3a  uire vc::fossil:
0670: 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 69 6e  :import::cvs::in
0680: 74 65 67 72 69 74 79 20 20 20 20 3b 20 23 20 53  tegrity    ; # S
0690: 74 61 74 65 20 69 6e 74 65 67 72 69 74 79 20 63  tate integrity c
06a0: 68 65 63 6b 73 2e 0a 70 61 63 6b 61 67 65 20 72  hecks..package r
06b0: 65 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 69  equire vc::fossi
06c0: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a  l::import::cvs::
06d0: 70 72 6f 6a 65 63 74 3a 3a 73 79 6d 20 3b 20 23  project::sym ; #
06e0: 20 50 72 6f 6a 65 63 74 20 6c 65 76 65 6c 20 73   Project level s
06f0: 79 6d 62 6f 6c 73 0a 70 61 63 6b 61 67 65 20 72  ymbols.package r
0700: 65 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 69  equire vc::fossi
0710: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a  l::import::cvs::
0720: 63 79 63 6c 65 62 72 65 61 6b 65 72 20 3b 20 23  cyclebreaker ; #
0730: 20 42 72 65 61 6b 69 6e 67 20 64 65 70 65 6e 64   Breaking depend
0740: 65 6e 63 79 20 63 79 63 6c 65 73 2e 0a 0a 23 20  ency cycles...# 
0750: 23 20 23 23 20 23 23 23 20 23 23 23 23 23 20 23  # ## ### ##### #
0760: 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23  ####### ########
0770: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23  ##### ##########
0780: 23 23 23 23 23 23 23 23 23 23 23 0a 23 23 0a 0a  ###########.##..
0790: 73 6e 69 74 3a 3a 74 79 70 65 20 3a 3a 76 63 3a  snit::type ::vc:
07a0: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a  :fossil::import:
07b0: 3a 63 76 73 3a 3a 6f 70 74 69 6f 6e 20 7b 0a 20  :cvs::option {. 
07c0: 20 20 20 23 20 23 20 23 23 20 23 23 23 20 23 23     # # ## ### ##
07d0: 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23  ### ######## ###
07e0: 23 23 23 23 23 23 23 23 23 23 0a 20 20 20 20 23  ##########.    #
07f0: 23 20 50 75 62 6c 69 63 20 41 50 49 2c 20 4f 70  # Public API, Op
0800: 74 69 6f 6e 73 2e 0a 0a 20 20 20 20 23 20 2d 2d  tions...    # --
0810: 68 65 6c 70 2c 20 2d 2d 68 65 6c 70 2d 70 61 73  help, --help-pas
0820: 73 65 73 2c 20 2d 68 0a 20 20 20 20 23 20 2d 2d  ses, -h.    # --
0830: 76 65 72 73 69 6f 6e 0a 20 20 20 20 23 20 2d 70  version.    # -p
0840: 2c 20 2d 2d 70 61 73 73 2c 20 2d 2d 70 61 73 73  , --pass, --pass
0850: 65 73 0a 20 20 20 20 23 20 2d 2d 69 67 6e 6f 72  es.    # --ignor
0860: 65 2d 63 6f 6e 66 6c 69 63 74 69 6e 67 2d 61 74  e-conflicting-at
0870: 74 69 63 73 0a 20 20 20 20 23 20 2d 2d 63 6f 6e  tics.    # --con
0880: 76 65 72 74 2d 64 6f 74 66 69 6c 65 73 0a 20 20  vert-dotfiles.  
0890: 20 20 23 20 2d 2d 70 72 6f 6a 65 63 74 0a 20 20    # --project.  
08a0: 20 20 23 20 2d 76 2c 20 2d 2d 76 65 72 62 6f 73    # -v, --verbos
08b0: 65 0a 20 20 20 20 23 20 2d 71 2c 20 2d 2d 71 75  e.    # -q, --qu
08c0: 69 65 74 0a 20 20 20 20 23 20 2d 2d 73 74 61 74  iet.    # --stat
08d0: 65 20 28 63 6f 6e 76 65 72 73 69 6f 6e 20 73 74  e (conversion st
08e0: 61 74 75 73 2c 20 61 6c 61 20 63 6f 6e 66 69 67  atus, ala config
08f0: 2e 63 61 63 68 65 29 0a 20 20 20 20 23 20 2d 2d  .cache).    # --
0900: 74 72 75 6e 6b 2d 6f 6e 6c 79 0a 20 20 20 20 23  trunk-only.    #
0910: 20 2d 2d 65 78 63 6c 75 64 65 2c 20 2d 2d 66 6f   --exclude, --fo
0920: 72 63 65 2d 74 61 67 2c 20 2d 2d 66 6f 72 63 65  rce-tag, --force
0930: 2d 62 72 61 6e 63 68 0a 20 20 20 20 23 20 2d 2d  -branch.    # --
0940: 62 61 74 63 68 0a 20 20 20 20 23 20 2d 2d 66 6f  batch.    # --fo
0950: 73 73 69 6c 20 50 41 54 48 0a 0a 20 20 20 20 23  ssil PATH..    #
0960: 20 2d 6f 2c 20 2d 2d 6f 75 74 70 75 74 0a 20 20   -o, --output.  
0970: 20 20 23 20 2d 2d 64 72 79 2d 72 75 6e 0a 20 20    # --dry-run.  
0980: 20 20 23 20 2d 2d 73 79 6d 62 6f 6c 2d 74 72 61    # --symbol-tra
0990: 6e 73 66 6f 72 6d 20 52 45 3a 58 58 0a 0a 20 20  nsform RE:XX..  
09a0: 20 20 23 20 23 20 23 23 20 23 23 23 20 23 23 23    # # ## ### ###
09b0: 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23  ## ######## ####
09c0: 23 23 23 23 23 23 23 23 23 0a 20 20 20 20 23 23  #########.    ##
09d0: 20 50 75 62 6c 69 63 20 41 50 49 2c 20 4d 65 74   Public API, Met
09e0: 68 6f 64 73 0a 0a 20 20 20 20 74 79 70 65 6d 65  hods..    typeme
09f0: 74 68 6f 64 20 70 72 6f 63 65 73 73 20 7b 61 72  thod process {ar
0a00: 67 75 6d 65 6e 74 73 7d 20 7b 0a 09 23 20 53 79  guments} {..# Sy
0a10: 6e 74 61 78 20 6f 66 20 61 72 67 75 6d 65 6e 74  ntax of argument
0a20: 73 3a 20 3f 6f 70 74 69 6f 6e 20 3f 76 61 6c 75  s: ?option ?valu
0a30: 65 3f 2e 2e 2e 3f 20 2f 70 61 74 68 2f 74 6f 2f  e?...? /path/to/
0a40: 63 76 73 2f 72 65 70 6f 73 69 74 6f 72 79 0a 0a  cvs/repository..
0a50: 09 77 68 69 6c 65 20 7b 5b 49 73 4f 70 74 69 6f  .while {[IsOptio
0a60: 6e 20 61 72 67 75 6d 65 6e 74 73 20 2d 3e 20 6f  n arguments -> o
0a70: 70 74 69 6f 6e 5d 7d 20 7b 0a 09 20 20 20 20 73  ption]} {..    s
0a80: 77 69 74 63 68 20 2d 65 78 61 63 74 20 2d 2d 20  witch -exact -- 
0a90: 24 6f 70 74 69 6f 6e 20 7b 0a 09 09 2d 68 20 20  $option {...-h  
0aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ab0: 20 20 20 20 20 20 20 20 2d 0a 09 09 2d 2d 68 65          -...--he
0ac0: 6c 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20  lp              
0ad0: 20 20 20 20 20 20 20 20 7b 20 50 72 69 6e 74 48          { PrintH
0ae0: 65 6c 70 20 20 20 20 3b 20 65 78 69 74 20 30 20  elp    ; exit 0 
0af0: 7d 0a 09 09 2d 2d 68 65 6c 70 2d 70 61 73 73 65  }...--help-passe
0b00: 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  s               
0b10: 7b 20 70 61 73 73 20 68 65 6c 70 20 20 20 20 3b  { pass help    ;
0b20: 20 65 78 69 74 20 30 20 7d 0a 09 09 2d 2d 76 65   exit 0 }...--ve
0b30: 72 73 69 6f 6e 20 20 20 20 20 20 20 20 20 20 20  rsion           
0b40: 20 20 20 20 20 20 20 20 7b 20 50 72 69 6e 74 56          { PrintV
0b50: 65 72 73 69 6f 6e 20 3b 20 65 78 69 74 20 30 20  ersion ; exit 0 
0b60: 7d 0a 09 09 2d 70 20 20 20 20 20 20 20 20 20 20  }...-p          
0b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0b80: 2d 0a 09 09 2d 2d 70 61 73 73 20 20 20 20 20 20  -...--pass      
0b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ba0: 2d 0a 09 09 2d 2d 70 61 73 73 65 73 20 20 20 20  -...--passes    
0bb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0bc0: 7b 20 70 61 73 73 20 73 65 6c 65 63 74 20 5b 56  { pass select [V
0bd0: 61 6c 75 65 20 61 72 67 75 6d 65 6e 74 73 5d 20  alue arguments] 
0be0: 7d 0a 09 09 2d 2d 69 67 6e 6f 72 65 2d 63 6f 6e  }...--ignore-con
0bf0: 66 6c 69 63 74 69 6e 67 2d 61 74 74 69 63 73 20  flicting-attics 
0c00: 7b 20 63 6f 6c 6c 61 72 20 69 67 6e 6f 72 65 5f  { collar ignore_
0c10: 63 6f 6e 66 6c 69 63 74 69 6e 67 5f 61 74 74 69  conflicting_atti
0c20: 63 73 20 7d 0a 09 09 2d 2d 63 6f 6e 76 65 72 74  cs }...--convert
0c30: 2d 64 6f 74 66 69 6c 65 73 20 20 20 20 20 20 20  -dotfiles       
0c40: 20 20 20 7b 20 63 6f 6c 6c 61 72 20 61 63 63 65     { collar acce
0c50: 70 74 5f 61 6e 64 5f 63 6f 6e 76 65 72 74 5f 64  pt_and_convert_d
0c60: 6f 74 66 69 6c 65 73 20 7d 0a 09 09 2d 2d 70 72  otfiles }...--pr
0c70: 6f 6a 65 63 74 20 20 20 20 20 20 20 20 20 20 20  oject           
0c80: 20 20 20 20 20 20 20 20 7b 20 72 65 70 6f 73 69          { reposi
0c90: 74 6f 72 79 20 61 64 64 20 5b 56 61 6c 75 65 20  tory add [Value 
0ca0: 61 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d  arguments] }...-
0cb0: 76 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  v               
0cc0: 20 20 20 20 20 20 20 20 20 20 20 2d 0a 09 09 2d             -...-
0cd0: 2d 76 65 72 62 6f 73 65 20 20 20 20 20 20 20 20  -verbose        
0ce0: 20 20 20 20 20 20 20 20 20 20 20 7b 20 6c 6f 67             { log
0cf0: 20 76 65 72 62 6f 73 65 20 7d 0a 09 09 2d 71 20   verbose }...-q 
0d00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d10: 20 20 20 20 20 20 20 20 20 2d 0a 09 09 2d 2d 71           -...--q
0d20: 75 69 65 74 20 20 20 20 20 20 20 20 20 20 20 20  uiet            
0d30: 20 20 20 20 20 20 20 20 20 7b 20 6c 6f 67 20 71           { log q
0d40: 75 69 65 74 20 7d 0a 09 09 2d 2d 73 74 61 74 65  uiet }...--state
0d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0d60: 20 20 20 20 20 7b 20 73 74 61 74 65 20 75 73 65       { state use
0d70: 64 62 20 5b 56 61 6c 75 65 20 61 72 67 75 6d 65  db [Value argume
0d80: 6e 74 73 5d 20 7d 0a 09 09 2d 2d 74 72 75 6e 6b  nts] }...--trunk
0d90: 2d 6f 6e 6c 79 20 20 20 20 20 20 20 20 20 20 20  -only           
0da0: 20 20 20 20 20 7b 20 72 65 70 6f 73 69 74 6f 72       { repositor
0db0: 79 20 74 72 75 6e 6b 6f 6e 6c 79 21 20 7d 0a 09  y trunkonly! }..
0dc0: 09 2d 2d 65 78 63 6c 75 64 65 20 20 20 20 20 20  .--exclude      
0dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 70               { p
0de0: 72 6f 6a 65 63 74 3a 3a 73 79 6d 20 65 78 63 6c  roject::sym excl
0df0: 75 64 65 20 20 20 20 20 5b 56 61 6c 75 65 20 61  ude     [Value a
0e00: 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d  rguments] }...--
0e10: 66 6f 72 63 65 2d 74 61 67 20 20 20 20 20 20 20  force-tag       
0e20: 20 20 20 20 20 20 20 20 20 20 7b 20 70 72 6f 6a            { proj
0e30: 65 63 74 3a 3a 73 79 6d 20 66 6f 72 63 65 74 61  ect::sym forceta
0e40: 67 20 20 20 20 5b 56 61 6c 75 65 20 61 72 67 75  g    [Value argu
0e50: 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d 66 6f 72  ments] }...--for
0e60: 63 65 2d 62 72 61 6e 63 68 20 20 20 20 20 20 20  ce-branch       
0e70: 20 20 20 20 20 20 20 7b 20 70 72 6f 6a 65 63 74         { project
0e80: 3a 3a 73 79 6d 20 66 6f 72 63 65 62 72 61 6e 63  ::sym forcebranc
0e90: 68 20 5b 56 61 6c 75 65 20 61 72 67 75 6d 65 6e  h [Value argumen
0ea0: 74 73 5d 20 7d 0a 09 09 2d 2d 62 61 74 63 68 20  ts] }...--batch 
0eb0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ec0: 20 20 20 20 7b 20 6c 6f 67 20 6e 6f 70 72 6f 67      { log noprog
0ed0: 72 65 73 73 20 7d 0a 09 09 2d 2d 64 6f 74 73 20  ress }...--dots 
0ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ef0: 20 20 20 20 20 7b 20 63 79 63 6c 65 62 72 65 61       { cyclebrea
0f00: 6b 65 72 20 64 6f 74 73 74 6f 20 5b 56 61 6c 75  ker dotsto [Valu
0f10: 65 20 61 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09  e arguments] }..
0f20: 09 2d 2d 77 61 74 63 68 20 20 20 20 20 20 20 20  .--watch        
0f30: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 63               { c
0f40: 79 63 6c 65 62 72 65 61 6b 65 72 20 77 61 74 63  yclebreaker watc
0f50: 68 20 20 5b 56 61 6c 75 65 20 61 72 67 75 6d 65  h  [Value argume
0f60: 6e 74 73 5d 20 7d 0a 09 09 2d 2d 73 74 61 74 65  nts] }...--state
0f70: 73 61 76 65 71 75 65 72 69 65 73 74 6f 20 20 20  savequeriesto   
0f80: 20 20 20 20 20 7b 20 73 74 61 74 65 20 73 61 76       { state sav
0f90: 65 71 75 65 72 69 65 73 74 6f 20 5b 56 61 6c 75  equeriesto [Valu
0fa0: 65 20 61 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09  e arguments] }..
0fb0: 09 2d 2d 66 6f 73 73 69 6c 20 20 20 20 20 20 20  .--fossil       
0fc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 66               { f
0fd0: 6f 73 73 69 6c 20 73 65 74 6c 6f 63 61 74 69 6f  ossil setlocatio
0fe0: 6e 20 20 5b 56 61 6c 75 65 20 61 72 67 75 6d 65  n  [Value argume
0ff0: 6e 74 73 5d 20 7d 0a 09 09 2d 2d 6d 65 6d 6f 72  nts] }...--memor
1000: 79 2d 6c 69 6d 69 74 20 20 20 20 20 20 20 20 20  y-limit         
1010: 20 20 20 20 20 7b 20 6d 65 6d 3a 3a 73 65 74 6c       { mem::setl
1020: 69 6d 69 74 20 5b 56 61 6c 75 65 20 61 72 67 75  imit [Value argu
1030: 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d 6d 65 6d  ments] }...--mem
1040: 6f 72 79 2d 74 72 61 63 6b 20 20 20 20 20 20 20  ory-track       
1050: 20 20 20 20 20 20 20 7b 20 6d 65 6d 3a 3a 74 72         { mem::tr
1060: 61 63 6b 20 7d 0a 09 09 64 65 66 61 75 6c 74 20  ack }...default 
1070: 7b 0a 09 09 20 20 20 20 55 73 61 67 65 20 24 62  {...    Usage $b
1080: 61 64 6f 70 74 69 6f 6e 24 6f 70 74 69 6f 6e 5c  adoption$option\
1090: 6e 24 67 65 74 68 65 6c 70 0a 09 09 7d 0a 09 20  n$gethelp...}.. 
10a0: 20 20 20 7d 0a 09 7d 0a 0a 09 69 66 20 7b 5b 6c     }..}...if {[l
10b0: 6c 65 6e 67 74 68 20 24 61 72 67 75 6d 65 6e 74  length $argument
10c0: 73 5d 20 3e 20 31 7d 20 55 73 61 67 65 0a 09 69  s] > 1} Usage..i
10d0: 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 61 72 67  f {[llength $arg
10e0: 75 6d 65 6e 74 73 5d 20 3c 20 31 7d 20 7b 20 55  uments] < 1} { U
10f0: 73 61 67 65 20 24 6e 6f 63 76 73 20 7d 0a 09 72  sage $nocvs }..r
1100: 65 70 6f 73 69 74 6f 72 79 20 62 61 73 65 20 5b  epository base [
1110: 73 74 72 69 70 74 72 61 69 6c 69 6e 67 73 6c 61  striptrailingsla
1120: 73 68 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 75  sh [lindex $argu
1130: 6d 65 6e 74 73 20 30 5d 5d 0a 0a 09 56 61 6c 69  ments 0]]...Vali
1140: 64 61 74 65 0a 09 72 65 74 75 72 6e 0a 20 20 20  date..return.   
1150: 20 7d 0a 0a 20 20 20 20 23 20 23 20 23 23 20 23   }..    # # ## #
1160: 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23 23  ## ##### #######
1170: 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  # #############.
1180: 20 20 20 20 23 23 20 49 6e 74 65 72 6e 61 6c 20      ## Internal 
1190: 6d 65 74 68 6f 64 73 2c 20 70 72 69 6e 74 69 6e  methods, printin
11a0: 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a  g information...
11b0: 20 20 20 20 70 72 6f 63 20 50 72 69 6e 74 48 65      proc PrintHe
11c0: 6c 70 20 7b 7d 20 7b 0a 09 67 6c 6f 62 61 6c 20  lp {} {..global 
11d0: 61 72 67 76 30 0a 09 74 72 6f 75 62 6c 65 20 69  argv0..trouble i
11e0: 6e 66 6f 20 22 55 73 61 67 65 3a 20 24 61 72 67  nfo "Usage: $arg
11f0: 76 30 20 24 75 73 61 67 65 22 0a 09 74 72 6f 75  v0 $usage"..trou
1200: 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f  ble info ""..tro
1210: 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 49 6e 66  uble info "  Inf
1220: 6f 72 6d 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73  ormation options
1230: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20  "..trouble info 
1240: 22 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f  ""..trouble info
1250: 20 22 20 20 20 20 2d 68 2c 20 2d 2d 68 65 6c 70   "    -h, --help
1260: 20 20 20 20 50 72 69 6e 74 20 74 68 69 73 20 6d      Print this m
1270: 65 73 73 61 67 65 20 61 6e 64 20 65 78 69 74 20  essage and exit 
1280: 77 69 74 68 20 73 75 63 63 65 73 73 22 0a 09 74  with success"..t
1290: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20  rouble info "   
12a0: 20 2d 2d 68 65 6c 70 2d 70 61 73 73 65 73 20 50   --help-passes P
12b0: 72 69 6e 74 20 6c 69 73 74 20 6f 66 20 70 61 73  rint list of pas
12c0: 73 65 73 20 61 6e 64 20 65 78 69 74 20 77 69 74  ses and exit wit
12d0: 68 20 73 75 63 63 65 73 73 22 0a 09 74 72 6f 75  h success"..trou
12e0: 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d  ble info "    --
12f0: 76 65 72 73 69 6f 6e 20 20 20 20 20 50 72 69 6e  version     Prin
1300: 74 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72  t version number
1310: 20 6f 66 20 24 61 72 67 76 30 22 0a 09 74 72 6f   of $argv0"..tro
1320: 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 2d  uble info "    -
1330: 76 2c 20 2d 2d 76 65 72 62 6f 73 65 20 49 6e 63  v, --verbose Inc
1340: 72 65 61 73 65 20 61 70 70 6c 69 63 61 74 69 6f  rease applicatio
1350: 6e 27 73 20 76 65 72 62 6f 73 69 74 79 22 0a 09  n's verbosity"..
1360: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
1370: 20 20 2d 71 2c 20 2d 2d 71 75 69 65 74 20 20 20    -q, --quiet   
1380: 44 65 63 72 65 61 73 65 20 61 70 70 6c 69 63 61  Decrease applica
1390: 74 69 6f 6e 27 73 20 76 65 72 62 6f 73 69 74 79  tion's verbosity
13a0: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20  "..trouble info 
13b0: 22 20 20 20 20 2d 2d 62 61 74 63 68 20 20 20 20  "    --batch    
13c0: 20 20 20 44 69 73 61 62 6c 65 20 74 68 65 20 70     Disable the p
13d0: 72 6f 67 72 65 73 73 20 66 65 65 64 62 61 63 6b  rogress feedback
13e0: 20 73 74 61 6e 64 61 72 64 20 74 6f 22 0a 09 74   standard to"..t
13f0: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20  rouble info "   
1400: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69                 i
1410: 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 2e 22  nteractive use."
1420: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22  ..trouble info "
1430: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20  "..trouble info 
1440: 22 20 20 43 6f 6e 76 65 72 73 69 6f 6e 20 63 6f  "  Conversion co
1450: 6e 74 72 6f 6c 20 6f 70 74 69 6f 6e 73 22 0a 09  ntrol options"..
1460: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a  trouble info "".
1470: 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20  .trouble info " 
1480: 20 20 20 2d 70 2c 20 2d 2d 70 61 73 73 20 50 41     -p, --pass PA
1490: 53 53 20 20 20 20 20 20 20 20 20 20 20 20 52 75  SS            Ru
14a0: 6e 20 6f 6e 6c 79 20 74 68 65 20 73 70 65 63 69  n only the speci
14b0: 66 69 65 64 20 63 6f 6e 76 65 72 73 69 6f 6e 20  fied conversion 
14c0: 70 61 73 73 22 0a 09 74 72 6f 75 62 6c 65 20 69  pass"..trouble i
14d0: 6e 66 6f 20 22 20 20 20 20 2d 70 2c 20 2d 2d 70  nfo "    -p, --p
14e0: 61 73 73 65 73 20 3f 53 54 41 52 54 3f 3a 3f 45  asses ?START?:?E
14f0: 4e 44 3f 20 52 75 6e 20 6f 6e 6c 79 20 74 68 65  ND? Run only the
1500: 20 70 61 73 73 65 73 20 53 54 41 52 54 20 74 68   passes START th
1510: 72 6f 75 67 68 20 45 4e 44 2c 22 0a 09 74 72 6f  rough END,"..tro
1520: 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20  uble info "     
1530: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1540: 20 20 20 20 20 20 20 20 20 20 69 6e 63 6c 75 73            inclus
1550: 69 76 65 2e 22 0a 09 74 72 6f 75 62 6c 65 20 69  ive."..trouble i
1560: 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20  nfo ""..trouble 
1570: 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20  info "          
1580: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1590: 20 20 20 20 20 50 61 73 73 65 73 20 61 72 65 20       Passes are 
15a0: 73 70 65 63 69 66 69 65 64 20 62 79 20 6e 61 6d  specified by nam
15b0: 65 2e 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66  e."..trouble inf
15c0: 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  o ""..trouble in
15d0: 66 6f 20 22 20 20 20 20 2d 2d 69 67 6e 6f 72 65  fo "    --ignore
15e0: 2d 63 6f 6e 66 6c 69 63 74 69 6e 67 2d 61 74 74  -conflicting-att
15f0: 69 63 73 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  ics"..trouble in
1600: 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 20  fo "            
1610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1620: 20 20 20 50 72 65 76 65 6e 74 20 61 62 6f 72 74     Prevent abort
1630: 20 77 68 65 6e 20 63 6f 6e 66 6c 69 63 74 69 6e   when conflictin
1640: 67 20 61 72 63 68 69 76 65 73 22 0a 09 74 72 6f  g archives"..tro
1650: 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20  uble info "     
1660: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1670: 20 20 20 20 20 20 20 20 20 20 77 65 72 65 20 66            were f
1680: 6f 75 6e 64 20 69 6e 20 62 6f 74 68 20 72 65 67  ound in both reg
1690: 75 6c 61 72 20 61 6e 64 20 41 74 74 69 63 2e 22  ular and Attic."
16a0: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22  ..trouble info "
16b0: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20  "..trouble info 
16c0: 22 20 20 20 20 2d 2d 63 6f 6e 76 65 72 74 2d 64  "    --convert-d
16d0: 6f 74 66 69 6c 65 73 22 0a 09 74 72 6f 75 62 6c  otfiles"..troubl
16e0: 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20  e info "        
16f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1700: 20 20 20 20 20 20 20 50 72 65 76 65 6e 74 20 61         Prevent a
1710: 62 6f 72 74 20 77 68 65 6e 20 64 6f 74 2d 66 69  bort when dot-fi
1720: 6c 65 73 20 77 65 72 65 20 66 6f 75 6e 64 2c 22  les were found,"
1730: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22  ..trouble info "
1740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63                 c
1760: 61 75 73 69 6e 67 20 74 68 65 69 72 20 63 6f 6e  ausing their con
1770: 76 65 72 73 69 6f 6e 20 74 6f 20 6e 6f 6e 64 6f  version to nondo
1780: 74 2d 66 6f 72 6d 22 0a 09 74 72 6f 75 62 6c 65  t-form"..trouble
1790: 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20   info "         
17a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17b0: 20 20 20 20 20 20 69 6e 73 74 65 61 64 2e 22 0a        instead.".
17c0: 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22  .trouble info ""
17d0: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22  ..trouble info "
17e0: 20 20 20 20 2d 2d 73 74 61 74 65 20 50 41 54 48      --state PATH
17f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53                 S
1800: 61 76 65 20 73 74 61 74 65 20 74 6f 20 74 68 65  ave state to the
1810: 20 73 70 65 63 69 66 69 65 64 20 66 69 6c 65 2c   specified file,
1820: 20 61 6e 64 22 0a 09 74 72 6f 75 62 6c 65 20 69   and"..trouble i
1830: 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20  nfo "           
1840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1850: 20 20 20 20 6c 6f 61 64 20 73 74 61 74 65 20 6f      load state o
1860: 66 20 70 72 65 76 69 6f 75 73 20 72 75 6e 73 20  f previous runs 
1870: 66 72 6f 6d 20 69 74 20 74 6f 6f 2e 22 0a 09 74  from it too."..t
1880: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09  rouble info ""..
1890: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
18a0: 20 20 2d 2d 65 78 63 6c 75 64 65 20 3f 50 52 4f    --exclude ?PRO
18b0: 4a 45 43 54 3a 3f 53 59 4d 42 4f 4c 20 45 78 63  JECT:?SYMBOL Exc
18c0: 6c 75 64 65 20 74 68 65 20 6e 61 6d 65 64 20 73  lude the named s
18d0: 79 6d 62 6f 6c 20 66 72 6f 6d 20 61 6c 6c 20 6f  ymbol from all o
18e0: 72 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f  r"..trouble info
18f0: 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20   "              
1900: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1910: 20 6a 75 73 74 20 74 68 65 20 73 70 65 63 69 66   just the specif
1920: 69 65 64 20 70 72 6f 6a 65 63 74 2e 20 42 6f 74  ied project. Bot
1930: 68 20 70 72 6f 6a 65 63 74 22 0a 09 74 72 6f 75  h project"..trou
1940: 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20  ble info "      
1950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1960: 20 20 20 20 20 20 20 20 20 61 6e 64 20 73 79 6d           and sym
1970: 62 6f 6c 20 6e 61 6d 65 73 20 61 72 65 20 67 6c  bol names are gl
1980: 6f 62 20 70 61 74 74 65 72 6e 73 2e 22 0a 09 74  ob patterns."..t
1990: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09  rouble info ""..
19a0: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
19b0: 20 20 2d 2d 66 6f 72 63 65 2d 74 61 67 20 3f 50    --force-tag ?P
19c0: 52 4f 4a 45 43 54 3a 3f 53 59 4d 42 4f 4c 22 0a  ROJECT:?SYMBOL".
19d0: 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20  .trouble info " 
19e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 6f                Fo
1a00: 72 63 65 20 74 68 65 20 6e 61 6d 65 64 20 73 79  rce the named sy
1a10: 6d 62 6f 6c 20 66 72 6f 6d 20 61 6c 6c 20 6f 72  mbol from all or
1a20: 20 6a 75 73 74 22 0a 09 74 72 6f 75 62 6c 65 20   just"..trouble 
1a30: 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20  info "          
1a40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a50: 20 20 20 20 20 74 68 65 20 73 70 65 63 69 66 69       the specifi
1a60: 65 64 20 70 72 6f 6a 65 63 74 20 74 6f 20 62 65  ed project to be
1a70: 20 63 6f 6e 76 65 72 74 65 64 20 61 73 22 0a 09   converted as"..
1a80: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
1a90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1aa0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 67               tag
1ab0: 2e 20 42 6f 74 68 20 70 72 6f 6a 65 63 74 20 61  . Both project a
1ac0: 6e 64 20 73 79 6d 62 6f 6c 20 6e 61 6d 65 73 20  nd symbol names 
1ad0: 61 72 65 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  are"..trouble in
1ae0: 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 20  fo "            
1af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b00: 20 20 20 67 6c 6f 62 20 70 61 74 74 65 72 6e 73     glob patterns
1b10: 2e 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f  ."..trouble info
1b20: 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66   ""..trouble inf
1b30: 6f 20 22 20 20 20 20 2d 2d 66 6f 72 63 65 2d 62  o "    --force-b
1b40: 72 61 6e 63 68 20 3f 50 52 4f 4a 45 43 54 3a 3f  ranch ?PROJECT:?
1b50: 53 59 4d 42 4f 4c 22 0a 09 74 72 6f 75 62 6c 65  SYMBOL"..trouble
1b60: 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20   info "         
1b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b80: 20 20 20 20 20 20 46 6f 72 63 65 20 74 68 65 20        Force the 
1b90: 6e 61 6d 65 64 20 73 79 6d 62 6f 6c 20 66 72 6f  named symbol fro
1ba0: 6d 20 61 6c 6c 20 6f 72 20 6a 75 73 74 22 0a 09  m all or just"..
1bb0: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
1bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 65               the
1be0: 20 73 70 65 63 69 66 69 65 64 20 70 72 6f 6a 65   specified proje
1bf0: 63 74 20 74 6f 20 62 65 20 63 6f 6e 76 65 72 74  ct to be convert
1c00: 65 64 20 61 73 22 0a 09 74 72 6f 75 62 6c 65 20  ed as"..trouble 
1c10: 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20  info "          
1c20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c30: 20 20 20 20 20 62 72 61 6e 63 68 2e 20 42 6f 74       branch. Bot
1c40: 68 20 70 72 6f 6a 65 63 74 20 61 6e 64 20 73 79  h project and sy
1c50: 6d 62 6f 6c 20 6e 61 6d 65 73 22 0a 09 74 72 6f  mbol names"..tro
1c60: 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20  uble info "     
1c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1c80: 20 20 20 20 20 20 20 20 20 20 61 72 65 20 67 6c            are gl
1c90: 6f 62 20 70 61 74 74 65 72 6e 73 2e 22 0a 09 74  ob patterns."..t
1ca0: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09  rouble info ""..
1cb0: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
1cc0: 4f 75 74 70 75 74 20 63 6f 6e 74 72 6f 6c 20 6f  Output control o
1cd0: 70 74 69 6f 6e 73 22 0a 09 74 72 6f 75 62 6c 65  ptions"..trouble
1ce0: 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c   info ""..troubl
1cf0: 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d 66 6f  e info "    --fo
1d00: 73 73 69 6c 20 50 41 54 48 20 20 20 20 20 20 20  ssil PATH       
1d10: 20 20 20 20 20 20 20 53 70 65 63 69 66 79 20 77         Specify w
1d20: 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65  here to find the
1d30: 20 66 6f 73 73 69 6c 20 65 78 65 63 75 2d 22 0a   fossil execu-".
1d40: 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20  .trouble info " 
1d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1d60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61                ta
1d70: 62 6c 65 20 69 66 20 63 76 32 66 6f 73 73 69 6c  ble if cv2fossil
1d80: 20 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20   could not find 
1d90: 69 74 20 69 6e 22 0a 09 74 72 6f 75 62 6c 65 20  it in"..trouble 
1da0: 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20  info "          
1db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1dc0: 20 20 20 20 20 74 68 65 20 50 41 54 48 2e 22 0a       the PATH.".
1dd0: 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22  .trouble info ""
1de0: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22  ..trouble info "
1df0: 20 20 44 65 62 75 67 20 6f 70 74 69 6f 6e 73 22    Debug options"
1e00: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22  ..trouble info "
1e10: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20  "..trouble info 
1e20: 22 20 20 20 20 2d 2d 64 6f 74 73 20 50 41 54 48  "    --dots PATH
1e30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e40: 57 72 69 74 65 20 74 68 65 20 63 68 61 6e 67 65  Write the change
1e50: 73 65 74 20 67 72 61 70 68 73 20 62 65 66 6f 72  set graphs befor
1e60: 65 2c 20 61 66 74 65 72 2c 22 0a 09 74 72 6f 75  e, after,"..trou
1e70: 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20  ble info "      
1e80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1e90: 20 20 20 20 20 20 20 20 20 61 6e 64 20 64 75 72           and dur
1ea0: 69 6e 67 20 62 72 65 61 6b 69 6e 67 20 74 68 65  ing breaking the
1eb0: 20 6f 66 20 63 79 63 6c 65 73 20 74 6f 20 74 68   of cycles to th
1ec0: 65 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f  e"..trouble info
1ed0: 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20   "              
1ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1ef0: 20 64 69 72 65 63 6f 74 72 79 20 50 41 54 48 2c   direcotry PATH,
1f00: 20 75 73 69 6e 67 20 47 72 61 70 68 56 69 7a 27   using GraphViz'
1f10: 73 20 64 6f 74 20 66 6f 72 6d 61 74 22 0a 09 74  s dot format"..t
1f20: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a 0a  rouble info ""..
1f30: 09 23 20 2d 2d 70 72 6f 6a 65 63 74 2c 20 2d 2d  .# --project, --
1f40: 63 61 63 68 65 0a 09 23 20 2e 2e 2e 0a 09 72 65  cache..# .....re
1f50: 74 75 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 20  turn.    }..    
1f60: 70 72 6f 63 20 50 72 69 6e 74 56 65 72 73 69 6f  proc PrintVersio
1f70: 6e 20 7b 7d 20 7b 0a 09 67 6c 6f 62 61 6c 20 61  n {} {..global a
1f80: 72 67 76 30 0a 09 73 65 74 20 76 20 5b 70 61 63  rgv0..set v [pac
1f90: 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 63 3a  kage require vc:
1fa0: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a  :fossil::import:
1fb0: 3a 63 76 73 5d 0a 09 74 72 6f 75 62 6c 65 20 69  :cvs]..trouble i
1fc0: 6e 66 6f 20 22 24 61 72 67 76 30 20 76 24 76 22  nfo "$argv0 v$v"
1fd0: 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 0a  ..return.    }..
1fe0: 20 20 20 20 70 72 6f 63 20 55 73 61 67 65 20 7b      proc Usage {
1ff0: 7b 74 65 78 74 20 7b 7d 7d 7d 20 7b 0a 09 67 6c  {text {}}} {..gl
2000: 6f 62 61 6c 20 61 72 67 76 30 0a 09 74 72 6f 75  obal argv0..trou
2010: 62 6c 65 20 66 61 74 61 6c 20 22 55 73 61 67 65  ble fatal "Usage
2020: 3a 20 24 61 72 67 76 30 20 24 75 73 61 67 65 22  : $argv0 $usage"
2030: 0a 09 69 66 20 7b 24 74 65 78 74 20 6e 65 20 22  ..if {$text ne "
2040: 22 7d 20 7b 20 74 72 6f 75 62 6c 65 20 66 61 74  "} { trouble fat
2050: 61 6c 20 22 24 74 65 78 74 22 20 7d 0a 09 65 78  al "$text" }..ex
2060: 69 74 20 31 0a 20 20 20 20 7d 0a 0a 20 20 20 20  it 1.    }..    
2070: 23 20 23 20 23 23 20 23 23 23 20 23 23 23 23 23  # # ## ### #####
2080: 20 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23   ######## ######
2090: 23 23 23 23 23 23 23 0a 20 20 20 20 23 23 20 49  #######.    ## I
20a0: 6e 74 65 72 6e 61 6c 20 6d 65 74 68 6f 64 73 2c  nternal methods,
20b0: 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 72   command line pr
20c0: 6f 63 65 73 73 69 6e 67 0a 0a 20 20 20 20 74 79  ocessing..    ty
20d0: 70 65 76 61 72 69 61 62 6c 65 20 75 73 61 67 65  pevariable usage
20e0: 20 20 20 20 20 22 3f 6f 70 74 69 6f 6e 20 3f 76       "?option ?v
20f0: 61 6c 75 65 3f 2e 2e 2e 3f 20 63 76 73 2d 72 65  alue?...? cvs-re
2100: 70 6f 73 69 74 6f 72 79 2d 70 61 74 68 22 0a 20  pository-path". 
2110: 20 20 20 74 79 70 65 76 61 72 69 61 62 6c 65 20     typevariable 
2120: 6e 6f 63 76 73 20 20 20 20 20 22 20 20 20 20 20  nocvs     "     
2130: 20 20 54 68 65 20 63 76 73 2d 72 65 70 6f 73 69    The cvs-reposi
2140: 74 6f 72 79 2d 70 61 74 68 20 69 73 20 6d 69 73  tory-path is mis
2150: 73 69 6e 67 2e 22 0a 20 20 20 20 74 79 70 65 76  sing.".    typev
2160: 61 72 69 61 62 6c 65 20 62 61 64 6f 70 74 69 6f  ariable badoptio
2170: 6e 20 22 20 20 20 20 20 20 20 42 61 64 20 6f 70  n "       Bad op
2180: 74 69 6f 6e 20 22 0a 20 20 20 20 74 79 70 65 76  tion ".    typev
2190: 61 72 69 61 62 6c 65 20 67 65 74 68 65 6c 70 20  ariable gethelp 
21a0: 20 20 22 20 20 20 20 20 20 20 55 73 65 20 2d 2d    "       Use --
21b0: 68 65 6c 70 20 74 6f 20 67 65 74 20 68 65 6c 70  help to get help
21c0: 2e 22 0a 0a 20 20 20 20 70 72 6f 63 20 49 73 4f  ."..    proc IsO
21d0: 70 74 69 6f 6e 20 7b 61 76 20 5f 20 6f 76 7d 20  ption {av _ ov} 
21e0: 7b 0a 09 75 70 76 61 72 20 31 20 24 61 76 20 61  {..upvar 1 $av a
21f0: 72 67 75 6d 65 6e 74 73 20 24 6f 76 20 6f 70 74  rguments $ov opt
2200: 69 6f 6e 0a 09 73 65 74 20 63 61 6e 64 69 64 61  ion..set candida
2210: 74 65 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 75  te [lindex $argu
2220: 6d 65 6e 74 73 20 30 5d 0a 09 69 66 20 7b 21 5b  ments 0]..if {![
2230: 73 74 72 69 6e 67 20 6d 61 74 63 68 20 2d 2a 20  string match -* 
2240: 24 63 61 6e 64 69 64 61 74 65 5d 7d 20 7b 72 65  $candidate]} {re
2250: 74 75 72 6e 20 30 7d 0a 09 73 65 74 20 6f 70 74  turn 0}..set opt
2260: 69 6f 6e 20 20 20 20 24 63 61 6e 64 69 64 61 74  ion    $candidat
2270: 65 0a 09 73 65 74 20 61 72 67 75 6d 65 6e 74 73  e..set arguments
2280: 20 5b 6c 72 61 6e 67 65 20 24 61 72 67 75 6d 65   [lrange $argume
2290: 6e 74 73 20 31 20 65 6e 64 5d 0a 09 72 65 74 75  nts 1 end]..retu
22a0: 72 6e 20 31 0a 20 20 20 20 7d 0a 0a 20 20 20 20  rn 1.    }..    
22b0: 70 72 6f 63 20 56 61 6c 75 65 20 7b 61 76 7d 20  proc Value {av} 
22c0: 7b 0a 09 75 70 76 61 72 20 31 20 24 61 76 20 61  {..upvar 1 $av a
22d0: 72 67 75 6d 65 6e 74 73 0a 09 73 65 74 20 76 20  rguments..set v 
22e0: 20 20 20 20 20 20 20 20 5b 6c 69 6e 64 65 78 20          [lindex 
22f0: 24 61 72 67 75 6d 65 6e 74 73 20 30 5d 0a 09 73  $arguments 0]..s
2300: 65 74 20 61 72 67 75 6d 65 6e 74 73 20 5b 6c 72  et arguments [lr
2310: 61 6e 67 65 20 24 61 72 67 75 6d 65 6e 74 73 20  ange $arguments 
2320: 31 20 65 6e 64 5d 0a 09 72 65 74 75 72 6e 20 24  1 end]..return $
2330: 76 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 23  v.    }..    # #
2340: 20 23 23 20 23 23 23 20 23 23 23 23 23 20 23 23   ## ### ##### ##
2350: 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23  ###### #########
2360: 23 23 23 23 0a 20 20 20 20 23 23 20 49 6e 74 65  ####.    ## Inte
2370: 72 6e 61 6c 20 6d 65 74 68 6f 64 73 2c 20 73 74  rnal methods, st
2380: 61 74 65 20 76 61 6c 69 64 61 74 69 6f 6e 0a 0a  ate validation..
2390: 20 20 20 20 70 72 6f 63 20 56 61 6c 69 64 61 74      proc Validat
23a0: 65 20 7b 7d 20 7b 0a 09 23 20 50 72 65 76 65 6e  e {} {..# Preven
23b0: 74 20 69 6e 2d 64 65 70 74 68 20 76 61 6c 69 64  t in-depth valid
23c0: 61 74 69 6f 6e 20 69 66 20 74 68 65 20 6f 70 74  ation if the opt
23d0: 69 6f 6e 73 20 77 65 72 65 20 61 6c 72 65 61 64  ions were alread
23e0: 79 20 62 61 64 2e 0a 09 74 72 6f 75 62 6c 65 20  y bad...trouble 
23f0: 61 62 6f 72 74 3f 0a 0a 09 66 6f 73 73 69 6c 20  abort?...fossil 
2400: 20 20 20 20 76 61 6c 69 64 61 74 65 0a 09 72 65      validate..re
2410: 70 6f 73 69 74 6f 72 79 20 76 61 6c 69 64 61 74  pository validat
2420: 65 0a 09 73 74 61 74 65 20 20 20 20 20 20 73 65  e..state      se
2430: 74 75 70 0a 0a 09 74 72 6f 75 62 6c 65 20 61 62  tup...trouble ab
2440: 6f 72 74 3f 0a 09 72 65 74 75 72 6e 0a 20 20 20  ort?..return.   
2450: 20 7d 0a 0a 20 20 20 20 23 20 23 20 23 23 20 23   }..    # # ## #
2460: 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23 23  ## ##### #######
2470: 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 0a  # #############.
2480: 20 20 20 20 23 23 20 43 6f 6e 66 69 67 75 72 61      ## Configura
2490: 74 69 6f 6e 0a 0a 20 20 20 20 70 72 61 67 6d 61  tion..    pragma
24a0: 20 2d 68 61 73 69 6e 73 74 61 6e 63 65 73 20 20   -hasinstances  
24b0: 20 6e 6f 20 3b 20 23 20 73 69 6e 67 6c 65 74 6f   no ; # singleto
24c0: 6e 0a 20 20 20 20 70 72 61 67 6d 61 20 2d 68 61  n.    pragma -ha
24d0: 73 74 79 70 65 69 6e 66 6f 20 20 20 20 6e 6f 20  stypeinfo    no 
24e0: 3b 20 23 20 6e 6f 20 69 6e 74 72 6f 73 70 65 63  ; # no introspec
24f0: 74 69 6f 6e 0a 20 20 20 20 70 72 61 67 6d 61 20  tion.    pragma 
2500: 2d 68 61 73 74 79 70 65 64 65 73 74 72 6f 79 20  -hastypedestroy 
2510: 6e 6f 20 3b 20 23 20 69 6d 6d 6f 72 74 61 6c 0a  no ; # immortal.
2520: 0a 20 20 20 20 23 20 23 20 23 23 20 23 23 23 20  .    # # ## ### 
2530: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23  ##### ######## #
2540: 23 23 23 23 23 23 23 23 23 23 23 23 0a 7d 0a 0a  ############.}..
2550: 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 3a  namespace eval :
2560: 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70  :vc::fossil::imp
2570: 6f 72 74 3a 3a 63 76 73 20 7b 0a 20 20 20 20 6e  ort::cvs {.    n
2580: 61 6d 65 73 70 61 63 65 20 65 78 70 6f 72 74 20  amespace export 
2590: 6f 70 74 69 6f 6e 0a 20 20 20 20 6e 61 6d 65 73  option.    names
25a0: 70 61 63 65 20 65 76 61 6c 20 6f 70 74 69 6f 6e  pace eval option
25b0: 20 7b 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d   {..namespace im
25c0: 70 6f 72 74 20 3a 3a 76 63 3a 3a 74 6f 6f 6c 73  port ::vc::tools
25d0: 3a 3a 6d 69 73 63 3a 3a 73 74 72 69 70 74 72 61  ::misc::striptra
25e0: 69 6c 69 6e 67 73 6c 61 73 68 0a 09 6e 61 6d 65  ilingslash..name
25f0: 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76  space import ::v
2600: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
2610: 74 3a 3a 63 76 73 3a 3a 66 6f 73 73 69 6c 0a 09  t::cvs::fossil..
2620: 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f 72 74  namespace import
2630: 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69   ::vc::fossil::i
2640: 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73  mport::cvs::pass
2650: 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f  ..namespace impo
2660: 72 74 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a  rt ::vc::fossil:
2670: 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 61  :import::cvs::pa
2680: 73 73 3a 3a 63 6f 6c 6c 61 72 0a 09 6e 61 6d 65  ss::collar..name
2690: 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76  space import ::v
26a0: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
26b0: 74 3a 3a 63 76 73 3a 3a 63 79 63 6c 65 62 72 65  t::cvs::cyclebre
26c0: 61 6b 65 72 0a 09 6e 61 6d 65 73 70 61 63 65 20  aker..namespace 
26d0: 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a 66 6f 73  import ::vc::fos
26e0: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73  sil::import::cvs
26f0: 3a 3a 72 65 70 6f 73 69 74 6f 72 79 0a 09 6e 61  ::repository..na
2700: 6d 65 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a  mespace import :
2710: 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70  :vc::fossil::imp
2720: 6f 72 74 3a 3a 63 76 73 3a 3a 73 74 61 74 65 0a  ort::cvs::state.
2730: 09 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f 72  .namespace impor
2740: 74 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a  t ::vc::fossil::
2750: 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 69 6e 74  import::cvs::int
2760: 65 67 72 69 74 79 0a 09 6e 61 6d 65 73 70 61 63  egrity..namespac
2770: 65 20 65 76 61 6c 20 70 72 6f 6a 65 63 74 20 7b  e eval project {
2780: 0a 09 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20  ..    namespace 
2790: 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a 66 6f 73  import ::vc::fos
27a0: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73  sil::import::cvs
27b0: 3a 3a 70 72 6f 6a 65 63 74 3a 3a 73 79 6d 0a 09  ::project::sym..
27c0: 7d 0a 09 6e 61 6d 65 73 70 61 63 65 20 65 76 61  }..namespace eva
27d0: 6c 20 6d 65 6d 20 7b 0a 09 20 20 20 20 6e 61 6d  l mem {..    nam
27e0: 65 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a  espace import ::
27f0: 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 6d 65 6d 3a 3a  vc::tools::mem::
2800: 73 65 74 6c 69 6d 69 74 0a 09 7d 0a 09 6e 61 6d  setlimit..}..nam
2810: 65 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a  espace import ::
2820: 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 74 72 6f 75 62  vc::tools::troub
2830: 6c 65 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d  le..namespace im
2840: 70 6f 72 74 20 3a 3a 76 63 3a 3a 74 6f 6f 6c 73  port ::vc::tools
2850: 3a 3a 6c 6f 67 0a 20 20 20 20 7d 0a 7d 0a 0a 23  ::log.    }.}..#
2860: 20 23 20 23 23 20 23 23 23 20 23 23 23 23 23 20   # ## ### ##### 
2870: 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23  ######## #######
2880: 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23  ###### #########
2890: 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23 20  ############.## 
28a0: 52 65 61 64 79 0a 0a 70 61 63 6b 61 67 65 20 70  Ready..package p
28b0: 72 6f 76 69 64 65 20 76 63 3a 3a 66 6f 73 73 69  rovide vc::fossi
28c0: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a  l::import::cvs::
28d0: 6f 70 74 69 6f 6e 20 31 2e 30 0a 72 65 74 75 72  option 1.0.retur
28e0: 6e 0a                                            n.