Hex Artifact Content
Not logged in

Artifact b6d7645a3c29f3b958241ca9b23d6341914dfd2b:

File tools/cvs2fossil/lib/c2f_option.tcl part of check-in [0af7a3c8ac] - 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. by aku on 2007-11-30 06:57:19.

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 69 73 63 20  vc::tools::misc 
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 69 73 63 2e 20        ; # Misc. 
0480: 70 61 74 68 20 72 65 66 6f 72 6d 61 74 74 69 6e  path reformattin
0490: 67 2e 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69  g..package requi
04a0: 72 65 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69  re vc::fossil::i
04b0: 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73  mport::cvs::pass
04c0: 20 20 20 20 20 20 20 20 20 3b 20 23 20 50 61 73           ; # Pas
04d0: 73 20 6d 61 6e 61 67 65 6d 65 6e 74 0a 70 61 63  s management.pac
04e0: 6b 61 67 65 20 72 65 71 75 69 72 65 20 76 63 3a  kage require vc:
04f0: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a  :fossil::import:
0500: 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 63 6f 6c 6c  :cvs::pass::coll
0510: 61 72 20 3b 20 23 20 50 61 73 73 20 49 2e 0a 70  ar ; # Pass I..p
0520: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76  ackage require v
0530: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
0540: 74 3a 3a 63 76 73 3a 3a 72 65 70 6f 73 69 74 6f  t::cvs::reposito
0550: 72 79 20 20 20 3b 20 23 20 52 65 70 6f 73 69 74  ry   ; # Reposit
0560: 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e 74 0a 70  ory management.p
0570: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 76  ackage require v
0580: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
0590: 74 3a 3a 63 76 73 3a 3a 73 74 61 74 65 20 20 20  t::cvs::state   
05a0: 20 20 20 20 20 3b 20 23 20 53 74 61 74 65 20 73       ; # State s
05b0: 74 6f 72 61 67 65 0a 70 61 63 6b 61 67 65 20 72  torage.package r
05c0: 65 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 69  equire vc::fossi
05d0: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a  l::import::cvs::
05e0: 69 6e 74 65 67 72 69 74 79 20 20 20 20 3b 20 23  integrity    ; #
05f0: 20 53 74 61 74 65 20 69 6e 74 65 67 72 69 74 79   State integrity
0600: 20 63 68 65 63 6b 73 2e 0a 70 61 63 6b 61 67 65   checks..package
0610: 20 72 65 71 75 69 72 65 20 76 63 3a 3a 66 6f 73   require vc::fos
0620: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73  sil::import::cvs
0630: 3a 3a 70 72 6f 6a 65 63 74 3a 3a 73 79 6d 20 3b  ::project::sym ;
0640: 20 23 20 50 72 6f 6a 65 63 74 20 6c 65 76 65 6c   # Project level
0650: 20 73 79 6d 62 6f 6c 73 0a 70 61 63 6b 61 67 65   symbols.package
0660: 20 72 65 71 75 69 72 65 20 76 63 3a 3a 66 6f 73   require vc::fos
0670: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73  sil::import::cvs
0680: 3a 3a 63 79 63 6c 65 62 72 65 61 6b 65 72 20 3b  ::cyclebreaker ;
0690: 20 23 20 42 72 65 61 6b 69 6e 67 20 64 65 70 65   # Breaking depe
06a0: 6e 64 65 6e 63 79 20 63 79 63 6c 65 73 2e 0a 0a  ndency cycles...
06b0: 23 20 23 20 23 23 20 23 23 23 20 23 23 23 23 23  # # ## ### #####
06c0: 20 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23   ######## ######
06d0: 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23  ####### ########
06e0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23  #############.##
06f0: 0a 0a 73 6e 69 74 3a 3a 74 79 70 65 20 3a 3a 76  ..snit::type ::v
0700: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
0710: 74 3a 3a 63 76 73 3a 3a 6f 70 74 69 6f 6e 20 7b  t::cvs::option {
0720: 0a 20 20 20 20 23 20 23 20 23 23 20 23 23 23 20  .    # # ## ### 
0730: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23  ##### ######## #
0740: 23 23 23 23 23 23 23 23 23 23 23 23 0a 20 20 20  ############.   
0750: 20 23 23 20 50 75 62 6c 69 63 20 41 50 49 2c 20   ## Public API, 
0760: 4f 70 74 69 6f 6e 73 2e 0a 0a 20 20 20 20 23 20  Options...    # 
0770: 2d 2d 68 65 6c 70 2c 20 2d 2d 68 65 6c 70 2d 70  --help, --help-p
0780: 61 73 73 65 73 2c 20 2d 68 0a 20 20 20 20 23 20  asses, -h.    # 
0790: 2d 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 23 20  --version.    # 
07a0: 2d 70 2c 20 2d 2d 70 61 73 73 2c 20 2d 2d 70 61  -p, --pass, --pa
07b0: 73 73 65 73 0a 20 20 20 20 23 20 2d 2d 69 67 6e  sses.    # --ign
07c0: 6f 72 65 2d 63 6f 6e 66 6c 69 63 74 69 6e 67 2d  ore-conflicting-
07d0: 61 74 74 69 63 73 0a 20 20 20 20 23 20 2d 2d 70  attics.    # --p
07e0: 72 6f 6a 65 63 74 0a 20 20 20 20 23 20 2d 76 2c  roject.    # -v,
07f0: 20 2d 2d 76 65 72 62 6f 73 65 0a 20 20 20 20 23   --verbose.    #
0800: 20 2d 71 2c 20 2d 2d 71 75 69 65 74 0a 20 20 20   -q, --quiet.   
0810: 20 23 20 2d 2d 73 74 61 74 65 20 28 63 6f 6e 76   # --state (conv
0820: 65 72 73 69 6f 6e 20 73 74 61 74 75 73 2c 20 61  ersion status, a
0830: 6c 61 20 63 6f 6e 66 69 67 2e 63 61 63 68 65 29  la config.cache)
0840: 0a 20 20 20 20 23 20 2d 2d 74 72 75 6e 6b 2d 6f  .    # --trunk-o
0850: 6e 6c 79 0a 20 20 20 20 23 20 2d 2d 65 78 63 6c  nly.    # --excl
0860: 75 64 65 2c 20 2d 2d 66 6f 72 63 65 2d 74 61 67  ude, --force-tag
0870: 2c 20 2d 2d 66 6f 72 63 65 2d 62 72 61 6e 63 68  , --force-branch
0880: 0a 20 20 20 20 23 20 2d 2d 62 61 74 63 68 0a 20  .    # --batch. 
0890: 20 20 20 23 20 2d 2d 6c 6f 6f 70 63 68 65 63 6b     # --loopcheck
08a0: 0a 0a 20 20 20 20 23 20 2d 6f 2c 20 2d 2d 6f 75  ..    # -o, --ou
08b0: 74 70 75 74 0a 20 20 20 20 23 20 2d 2d 64 72 79  tput.    # --dry
08c0: 2d 72 75 6e 0a 20 20 20 20 23 20 2d 2d 73 79 6d  -run.    # --sym
08d0: 62 6f 6c 2d 74 72 61 6e 73 66 6f 72 6d 20 52 45  bol-transform RE
08e0: 3a 58 58 0a 0a 20 20 20 20 23 20 23 20 23 23 20  :XX..    # # ## 
08f0: 23 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23  ### ##### ######
0900: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23  ## #############
0910: 0a 20 20 20 20 23 23 20 50 75 62 6c 69 63 20 41  .    ## Public A
0920: 50 49 2c 20 4d 65 74 68 6f 64 73 0a 0a 20 20 20  PI, Methods..   
0930: 20 74 79 70 65 6d 65 74 68 6f 64 20 70 72 6f 63   typemethod proc
0940: 65 73 73 20 7b 61 72 67 75 6d 65 6e 74 73 7d 20  ess {arguments} 
0950: 7b 0a 09 23 20 53 79 6e 74 61 78 20 6f 66 20 61  {..# Syntax of a
0960: 72 67 75 6d 65 6e 74 73 3a 20 3f 6f 70 74 69 6f  rguments: ?optio
0970: 6e 20 3f 76 61 6c 75 65 3f 2e 2e 2e 3f 20 2f 70  n ?value?...? /p
0980: 61 74 68 2f 74 6f 2f 63 76 73 2f 72 65 70 6f 73  ath/to/cvs/repos
0990: 69 74 6f 72 79 0a 0a 09 77 68 69 6c 65 20 7b 5b  itory...while {[
09a0: 49 73 4f 70 74 69 6f 6e 20 61 72 67 75 6d 65 6e  IsOption argumen
09b0: 74 73 20 2d 3e 20 6f 70 74 69 6f 6e 5d 7d 20 7b  ts -> option]} {
09c0: 0a 09 20 20 20 20 73 77 69 74 63 68 20 2d 65 78  ..    switch -ex
09d0: 61 63 74 20 2d 2d 20 24 6f 70 74 69 6f 6e 20 7b  act -- $option {
09e0: 0a 09 09 2d 68 20 20 20 20 20 20 20 20 20 20 20  ...-h           
09f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d                 -
0a00: 0a 09 09 2d 2d 68 65 6c 70 20 20 20 20 20 20 20  ...--help       
0a10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
0a20: 20 50 72 69 6e 74 48 65 6c 70 20 20 20 20 3b 20   PrintHelp    ; 
0a30: 65 78 69 74 20 30 20 7d 0a 09 09 2d 2d 68 65 6c  exit 0 }...--hel
0a40: 70 2d 70 61 73 73 65 73 20 20 20 20 20 20 20 20  p-passes        
0a50: 20 20 20 20 20 20 20 7b 20 70 61 73 73 20 68 65         { pass he
0a60: 6c 70 20 20 20 20 3b 20 65 78 69 74 20 30 20 7d  lp    ; exit 0 }
0a70: 0a 09 09 2d 2d 76 65 72 73 69 6f 6e 20 20 20 20  ...--version    
0a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b                 {
0a90: 20 50 72 69 6e 74 56 65 72 73 69 6f 6e 20 3b 20   PrintVersion ; 
0aa0: 65 78 69 74 20 30 20 7d 0a 09 09 2d 70 20 20 20  exit 0 }...-p   
0ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0ac0: 20 20 20 20 20 20 20 2d 0a 09 09 2d 2d 70 61 73         -...--pas
0ad0: 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  s               
0ae0: 20 20 20 20 20 20 20 2d 0a 09 09 2d 2d 70 61 73         -...--pas
0af0: 73 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20  ses             
0b00: 20 20 20 20 20 20 20 7b 20 70 61 73 73 20 73 65         { pass se
0b10: 6c 65 63 74 20 5b 56 61 6c 75 65 20 61 72 67 75  lect [Value argu
0b20: 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d 69 67 6e  ments] }...--ign
0b30: 6f 72 65 2d 63 6f 6e 66 6c 69 63 74 69 6e 67 2d  ore-conflicting-
0b40: 61 74 74 69 63 73 20 7b 20 63 6f 6c 6c 61 72 20  attics { collar 
0b50: 69 67 6e 6f 72 65 5f 63 6f 6e 66 6c 69 63 74 69  ignore_conflicti
0b60: 6e 67 5f 61 74 74 69 63 73 20 7d 0a 09 09 2d 2d  ng_attics }...--
0b70: 70 72 6f 6a 65 63 74 20 20 20 20 20 20 20 20 20  project         
0b80: 20 20 20 20 20 20 20 20 20 20 7b 20 72 65 70 6f            { repo
0b90: 73 69 74 6f 72 79 20 61 64 64 20 5b 56 61 6c 75  sitory add [Valu
0ba0: 65 20 61 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09  e arguments] }..
0bb0: 09 2d 76 20 20 20 20 20 20 20 20 20 20 20 20 20  .-v             
0bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 0a 09               -..
0bd0: 09 2d 2d 76 65 72 62 6f 73 65 20 20 20 20 20 20  .--verbose      
0be0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 6c               { l
0bf0: 6f 67 20 76 65 72 62 6f 73 65 20 7d 0a 09 09 2d  og verbose }...-
0c00: 71 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  q               
0c10: 20 20 20 20 20 20 20 20 20 20 20 2d 0a 09 09 2d             -...-
0c20: 2d 71 75 69 65 74 20 20 20 20 20 20 20 20 20 20  -quiet          
0c30: 20 20 20 20 20 20 20 20 20 20 20 7b 20 6c 6f 67             { log
0c40: 20 71 75 69 65 74 20 7d 0a 09 09 2d 2d 73 74 61   quiet }...--sta
0c50: 74 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20  te              
0c60: 20 20 20 20 20 20 20 7b 20 73 74 61 74 65 20 75         { state u
0c70: 73 65 20 5b 56 61 6c 75 65 20 61 72 67 75 6d 65  se [Value argume
0c80: 6e 74 73 5d 20 7d 0a 09 09 2d 2d 74 72 75 6e 6b  nts] }...--trunk
0c90: 2d 6f 6e 6c 79 20 20 20 20 20 20 20 20 20 20 20  -only           
0ca0: 20 20 20 20 20 7b 20 72 65 70 6f 73 69 74 6f 72       { repositor
0cb0: 79 20 74 72 75 6e 6b 6f 6e 6c 79 21 20 7d 0a 09  y trunkonly! }..
0cc0: 09 2d 2d 65 78 63 6c 75 64 65 20 20 20 20 20 20  .--exclude      
0cd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 70               { p
0ce0: 72 6f 6a 65 63 74 3a 3a 73 79 6d 20 65 78 63 6c  roject::sym excl
0cf0: 75 64 65 20 20 20 20 20 5b 56 61 6c 75 65 20 61  ude     [Value a
0d00: 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d  rguments] }...--
0d10: 66 6f 72 63 65 2d 74 61 67 20 20 20 20 20 20 20  force-tag       
0d20: 20 20 20 20 20 20 20 20 20 20 7b 20 70 72 6f 6a            { proj
0d30: 65 63 74 3a 3a 73 79 6d 20 66 6f 72 63 65 74 61  ect::sym forceta
0d40: 67 20 20 20 20 5b 56 61 6c 75 65 20 61 72 67 75  g    [Value argu
0d50: 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d 66 6f 72  ments] }...--for
0d60: 63 65 2d 62 72 61 6e 63 68 20 20 20 20 20 20 20  ce-branch       
0d70: 20 20 20 20 20 20 20 7b 20 70 72 6f 6a 65 63 74         { project
0d80: 3a 3a 73 79 6d 20 66 6f 72 63 65 62 72 61 6e 63  ::sym forcebranc
0d90: 68 20 5b 56 61 6c 75 65 20 61 72 67 75 6d 65 6e  h [Value argumen
0da0: 74 73 5d 20 7d 0a 09 09 2d 2d 62 61 74 63 68 20  ts] }...--batch 
0db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0dc0: 20 20 20 20 7b 20 6c 6f 67 20 6e 6f 70 72 6f 67      { log noprog
0dd0: 72 65 73 73 20 7d 0a 09 09 2d 2d 64 6f 74 73 20  ress }...--dots 
0de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0df0: 20 20 20 20 20 7b 20 63 79 63 6c 65 62 72 65 61       { cyclebrea
0e00: 6b 65 72 20 64 6f 74 73 74 6f 20 5b 56 61 6c 75  ker dotsto [Valu
0e10: 65 20 61 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09  e arguments] }..
0e20: 09 2d 2d 77 61 74 63 68 20 20 20 20 20 20 20 20  .--watch        
0e30: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 63               { c
0e40: 79 63 6c 65 62 72 65 61 6b 65 72 20 77 61 74 63  yclebreaker watc
0e50: 68 20 20 5b 56 61 6c 75 65 20 61 72 67 75 6d 65  h  [Value argume
0e60: 6e 74 73 5d 20 7d 0a 09 09 2d 2d 6c 6f 6f 70 63  nts] }...--loopc
0e70: 68 65 63 6b 20 20 20 20 20 20 20 20 20 20 20 20  heck            
0e80: 20 20 20 20 20 7b 20 69 6e 74 65 67 72 69 74 79       { integrity
0e90: 20 6c 6f 6f 70 63 68 65 63 6b 6f 6e 20 7d 0a 09   loopcheckon }..
0ea0: 09 64 65 66 61 75 6c 74 20 7b 0a 09 09 20 20 20  .default {...   
0eb0: 20 55 73 61 67 65 20 24 62 61 64 6f 70 74 69 6f   Usage $badoptio
0ec0: 6e 24 6f 70 74 69 6f 6e 5c 6e 24 67 65 74 68 65  n$option\n$gethe
0ed0: 6c 70 0a 09 09 7d 0a 09 20 20 20 20 7d 0a 09 7d  lp...}..    }..}
0ee0: 0a 0a 09 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20  ...if {[llength 
0ef0: 24 61 72 67 75 6d 65 6e 74 73 5d 20 3e 20 31 7d  $arguments] > 1}
0f00: 20 55 73 61 67 65 0a 09 69 66 20 7b 5b 6c 6c 65   Usage..if {[lle
0f10: 6e 67 74 68 20 24 61 72 67 75 6d 65 6e 74 73 5d  ngth $arguments]
0f20: 20 3c 20 31 7d 20 7b 20 55 73 61 67 65 20 24 6e   < 1} { Usage $n
0f30: 6f 63 76 73 20 7d 0a 09 72 65 70 6f 73 69 74 6f  ocvs }..reposito
0f40: 72 79 20 62 61 73 65 20 5b 73 74 72 69 70 74 72  ry base [striptr
0f50: 61 69 6c 69 6e 67 73 6c 61 73 68 20 5b 6c 69 6e  ailingslash [lin
0f60: 64 65 78 20 24 61 72 67 75 6d 65 6e 74 73 20 30  dex $arguments 0
0f70: 5d 5d 0a 0a 09 56 61 6c 69 64 61 74 65 0a 09 72  ]]...Validate..r
0f80: 65 74 75 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20  eturn.    }..   
0f90: 20 23 20 23 20 23 23 20 23 23 23 20 23 23 23 23   # # ## ### ####
0fa0: 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23 23  # ######## #####
0fb0: 23 23 23 23 23 23 23 23 0a 20 20 20 20 23 23 20  ########.    ## 
0fc0: 49 6e 74 65 72 6e 61 6c 20 6d 65 74 68 6f 64 73  Internal methods
0fd0: 2c 20 70 72 69 6e 74 69 6e 67 20 69 6e 66 6f 72  , printing infor
0fe0: 6d 61 74 69 6f 6e 2e 0a 0a 20 20 20 20 70 72 6f  mation...    pro
0ff0: 63 20 50 72 69 6e 74 48 65 6c 70 20 7b 7d 20 7b  c PrintHelp {} {
1000: 0a 09 67 6c 6f 62 61 6c 20 61 72 67 76 30 0a 09  ..global argv0..
1010: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 55 73  trouble info "Us
1020: 61 67 65 3a 20 24 61 72 67 76 30 20 24 75 73 61  age: $argv0 $usa
1030: 67 65 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66  ge"..trouble inf
1040: 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  o ""..trouble in
1050: 66 6f 20 22 20 20 49 6e 66 6f 72 6d 61 74 69 6f  fo "  Informatio
1060: 6e 20 6f 70 74 69 6f 6e 73 22 0a 09 74 72 6f 75  n options"..trou
1070: 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f  ble info ""..tro
1080: 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 2d  uble info "    -
1090: 68 2c 20 2d 2d 68 65 6c 70 20 20 20 20 50 72 69  h, --help    Pri
10a0: 6e 74 20 74 68 69 73 20 6d 65 73 73 61 67 65 20  nt this message 
10b0: 61 6e 64 20 65 78 69 74 20 77 69 74 68 20 73 75  and exit with su
10c0: 63 63 65 73 73 22 0a 09 74 72 6f 75 62 6c 65 20  ccess"..trouble 
10d0: 69 6e 66 6f 20 22 20 20 20 20 2d 2d 68 65 6c 70  info "    --help
10e0: 2d 70 61 73 73 65 73 20 50 72 69 6e 74 20 6c 69  -passes Print li
10f0: 73 74 20 6f 66 20 70 61 73 73 65 73 20 61 6e 64  st of passes and
1100: 20 65 78 69 74 20 77 69 74 68 20 73 75 63 63 65   exit with succe
1110: 73 73 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66  ss"..trouble inf
1120: 6f 20 22 20 20 20 20 2d 2d 76 65 72 73 69 6f 6e  o "    --version
1130: 20 20 20 20 20 50 72 69 6e 74 20 76 65 72 73 69       Print versi
1140: 6f 6e 20 6e 75 6d 62 65 72 20 6f 66 20 24 61 72  on number of $ar
1150: 67 76 30 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  gv0"..trouble in
1160: 66 6f 20 22 20 20 20 20 2d 76 2c 20 2d 2d 76 65  fo "    -v, --ve
1170: 72 62 6f 73 65 20 49 6e 63 72 65 61 73 65 20 61  rbose Increase a
1180: 70 70 6c 69 63 61 74 69 6f 6e 27 73 20 76 65 72  pplication's ver
1190: 62 6f 73 69 74 79 22 0a 09 74 72 6f 75 62 6c 65  bosity"..trouble
11a0: 20 69 6e 66 6f 20 22 20 20 20 20 2d 71 2c 20 2d   info "    -q, -
11b0: 2d 71 75 69 65 74 20 20 20 44 65 63 72 65 61 73  -quiet   Decreas
11c0: 65 20 61 70 70 6c 69 63 61 74 69 6f 6e 27 73 20  e application's 
11d0: 76 65 72 62 6f 73 69 74 79 22 0a 09 74 72 6f 75  verbosity"..trou
11e0: 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d  ble info "    --
11f0: 62 61 74 63 68 20 20 20 20 20 20 20 44 69 73 61  batch       Disa
1200: 62 6c 65 20 74 68 65 20 70 72 6f 67 72 65 73 73  ble the progress
1210: 20 66 65 65 64 62 61 63 6b 20 73 74 61 6e 64 61   feedback standa
1220: 72 64 20 74 6f 22 0a 09 74 72 6f 75 62 6c 65 20  rd to"..trouble 
1230: 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20  info "          
1240: 20 20 20 20 20 20 20 20 69 6e 74 65 72 61 63 74          interact
1250: 69 76 65 20 75 73 65 2e 22 0a 09 74 72 6f 75 62  ive use."..troub
1260: 6c 65 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75  le info ""..trou
1270: 62 6c 65 20 69 6e 66 6f 20 22 20 20 43 6f 6e 76  ble info "  Conv
1280: 65 72 73 69 6f 6e 20 63 6f 6e 74 72 6f 6c 20 6f  ersion control o
1290: 70 74 69 6f 6e 73 22 0a 09 74 72 6f 75 62 6c 65  ptions"..trouble
12a0: 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c   info ""..troubl
12b0: 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 70 2c 20  e info "    -p, 
12c0: 2d 2d 70 61 73 73 20 50 41 53 53 20 20 20 20 20  --pass PASS     
12d0: 20 20 20 20 20 20 20 52 75 6e 20 6f 6e 6c 79 20         Run only 
12e0: 74 68 65 20 73 70 65 63 69 66 69 65 64 20 63 6f  the specified co
12f0: 6e 76 65 72 73 69 6f 6e 20 70 61 73 73 22 0a 09  nversion pass"..
1300: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
1310: 20 20 2d 70 2c 20 2d 2d 70 61 73 73 65 73 20 3f    -p, --passes ?
1320: 53 54 41 52 54 3f 3a 3f 45 4e 44 3f 20 52 75 6e  START?:?END? Run
1330: 20 6f 6e 6c 79 20 74 68 65 20 70 61 73 73 65 73   only the passes
1340: 20 53 54 41 52 54 20 74 68 72 6f 75 67 68 20 45   START through E
1350: 4e 44 2c 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  ND,"..trouble in
1360: 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 20  fo "            
1370: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1380: 20 20 20 69 6e 63 6c 75 73 69 76 65 2e 22 0a 09     inclusive."..
1390: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a  trouble info "".
13a0: 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20  .trouble info " 
13b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
13c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 61                Pa
13d0: 73 73 65 73 20 61 72 65 20 73 70 65 63 69 66 69  sses are specifi
13e0: 65 64 20 62 79 20 6e 61 6d 65 2e 22 0a 09 74 72  ed by name."..tr
13f0: 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09 74  ouble info ""..t
1400: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20  rouble info "   
1410: 20 2d 2d 69 67 6e 6f 72 65 2d 63 6f 6e 66 6c 69   --ignore-confli
1420: 63 74 69 6e 67 2d 61 74 74 69 63 73 22 0a 09 74  cting-attics"..t
1430: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20  rouble info "   
1440: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1450: 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 76              Prev
1460: 65 6e 74 20 61 62 6f 72 74 20 77 68 65 6e 20 63  ent abort when c
1470: 6f 6e 66 6c 69 63 74 69 6e 67 20 61 72 63 68 69  onflicting archi
1480: 76 65 73 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  ves"..trouble in
1490: 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 20  fo "            
14a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
14b0: 20 20 20 77 65 72 65 20 66 6f 75 6e 64 20 69 6e     were found in
14c0: 20 62 6f 74 68 20 72 65 67 75 6c 61 72 20 61 6e   both regular an
14d0: 64 20 41 74 74 69 63 2e 22 0a 09 74 72 6f 75 62  d Attic."..troub
14e0: 6c 65 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75  le info ""..trou
14f0: 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d  ble info "    --
1500: 73 74 61 74 65 20 50 41 54 48 20 20 20 20 20 20  state PATH      
1510: 20 20 20 20 20 20 20 20 20 53 61 76 65 20 73 74           Save st
1520: 61 74 65 20 74 6f 20 74 68 65 20 73 70 65 63 69  ate to the speci
1530: 66 69 65 64 20 66 69 6c 65 2c 20 61 6e 64 22 0a  fied file, and".
1540: 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20  .trouble info " 
1550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1560: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f                lo
1570: 61 64 20 73 74 61 74 65 20 6f 66 20 70 72 65 76  ad state of prev
1580: 69 6f 75 73 20 72 75 6e 73 20 66 72 6f 6d 20 69  ious runs from i
1590: 74 20 74 6f 6f 2e 22 0a 09 74 72 6f 75 62 6c 65  t too."..trouble
15a0: 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c   info ""..troubl
15b0: 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d 65 78  e info "    --ex
15c0: 63 6c 75 64 65 20 3f 50 52 4f 4a 45 43 54 3a 3f  clude ?PROJECT:?
15d0: 53 59 4d 42 4f 4c 20 45 78 63 6c 75 64 65 20 74  SYMBOL Exclude t
15e0: 68 65 20 6e 61 6d 65 64 20 73 79 6d 62 6f 6c 20  he named symbol 
15f0: 66 72 6f 6d 20 61 6c 6c 20 6f 72 22 0a 09 74 72  from all or"..tr
1600: 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20  ouble info "    
1610: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1620: 20 20 20 20 20 20 20 20 20 20 20 6a 75 73 74 20             just 
1630: 74 68 65 20 73 70 65 63 69 66 69 65 64 20 70 72  the specified pr
1640: 6f 6a 65 63 74 2e 20 42 6f 74 68 20 70 72 6f 6a  oject. Both proj
1650: 65 63 74 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  ect"..trouble in
1660: 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 20  fo "            
1670: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1680: 20 20 20 61 6e 64 20 73 79 6d 62 6f 6c 20 6e 61     and symbol na
1690: 6d 65 73 20 61 72 65 20 67 6c 6f 62 20 70 61 74  mes are glob pat
16a0: 74 65 72 6e 73 2e 22 0a 09 74 72 6f 75 62 6c 65  terns."..trouble
16b0: 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c   info ""..troubl
16c0: 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d 66 6f  e info "    --fo
16d0: 72 63 65 2d 74 61 67 20 3f 50 52 4f 4a 45 43 54  rce-tag ?PROJECT
16e0: 3a 3f 53 59 4d 42 4f 4c 22 0a 09 74 72 6f 75 62  :?SYMBOL"..troub
16f0: 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20  le info "       
1700: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1710: 20 20 20 20 20 20 20 20 46 6f 72 63 65 20 74 68          Force th
1720: 65 20 6e 61 6d 65 64 20 73 79 6d 62 6f 6c 20 66  e named symbol f
1730: 72 6f 6d 20 61 6c 6c 20 6f 72 20 6a 75 73 74 22  rom all or just"
1740: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22  ..trouble info "
1750: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1760: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74                 t
1770: 68 65 20 73 70 65 63 69 66 69 65 64 20 70 72 6f  he specified pro
1780: 6a 65 63 74 20 74 6f 20 62 65 20 63 6f 6e 76 65  ject to be conve
1790: 72 74 65 64 20 61 73 22 0a 09 74 72 6f 75 62 6c  rted as"..troubl
17a0: 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20  e info "        
17b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
17c0: 20 20 20 20 20 20 20 74 61 67 2e 20 42 6f 74 68         tag. Both
17d0: 20 70 72 6f 6a 65 63 74 20 61 6e 64 20 73 79 6d   project and sym
17e0: 62 6f 6c 20 6e 61 6d 65 73 20 61 72 65 22 0a 09  bol names are"..
17f0: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
1800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1810: 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6c 6f               glo
1820: 62 20 70 61 74 74 65 72 6e 73 2e 22 0a 09 74 72  b patterns."..tr
1830: 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09 74  ouble info ""..t
1840: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20  rouble info "   
1850: 20 2d 2d 66 6f 72 63 65 2d 62 72 61 6e 63 68 20   --force-branch 
1860: 3f 50 52 4f 4a 45 43 54 3a 3f 53 59 4d 42 4f 4c  ?PROJECT:?SYMBOL
1870: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20  "..trouble info 
1880: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  "               
1890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18a0: 46 6f 72 63 65 20 74 68 65 20 6e 61 6d 65 64 20  Force the named 
18b0: 73 79 6d 62 6f 6c 20 66 72 6f 6d 20 61 6c 6c 20  symbol from all 
18c0: 6f 72 20 6a 75 73 74 22 0a 09 74 72 6f 75 62 6c  or just"..troubl
18d0: 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20  e info "        
18e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
18f0: 20 20 20 20 20 20 20 74 68 65 20 73 70 65 63 69         the speci
1900: 66 69 65 64 20 70 72 6f 6a 65 63 74 20 74 6f 20  fied project to 
1910: 62 65 20 63 6f 6e 76 65 72 74 65 64 20 61 73 22  be converted as"
1920: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22  ..trouble info "
1930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1940: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62                 b
1950: 72 61 6e 63 68 2e 20 42 6f 74 68 20 70 72 6f 6a  ranch. Both proj
1960: 65 63 74 20 61 6e 64 20 73 79 6d 62 6f 6c 20 6e  ect and symbol n
1970: 61 6d 65 73 22 0a 09 74 72 6f 75 62 6c 65 20 69  ames"..trouble i
1980: 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20  nfo "           
1990: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
19a0: 20 20 20 20 61 72 65 20 67 6c 6f 62 20 70 61 74      are glob pat
19b0: 74 65 72 6e 73 2e 22 0a 09 74 72 6f 75 62 6c 65  terns."..trouble
19c0: 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c   info ""..troubl
19d0: 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d 64 6f  e info "    --do
19e0: 74 73 20 50 41 54 48 20 20 20 20 20 20 20 20 20  ts PATH         
19f0: 20 20 20 20 20 20 20 57 72 69 74 65 20 74 68 65         Write the
1a00: 20 63 68 61 6e 67 65 73 65 74 20 67 72 61 70 68   changeset graph
1a10: 73 20 62 65 66 6f 72 65 2c 20 61 66 74 65 72 2c  s before, after,
1a20: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20  "..trouble info 
1a30: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  "               
1a40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1a50: 61 6e 64 20 64 75 72 69 6e 67 20 62 72 65 61 6b  and during break
1a60: 69 6e 67 20 74 68 65 20 6f 66 20 63 79 63 6c 65  ing the of cycle
1a70: 73 20 74 6f 20 74 68 65 22 0a 09 74 72 6f 75 62  s to the"..troub
1a80: 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20  le 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 64 69 72 65 63 6f 74 72          direcotr
1ab0: 79 20 50 41 54 48 2c 20 75 73 69 6e 67 20 47 72  y PATH, using Gr
1ac0: 61 70 68 56 69 7a 27 73 20 64 6f 74 20 66 6f 72  aphViz's dot for
1ad0: 6d 61 74 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e  mat"..trouble in
1ae0: 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 69  fo ""..trouble i
1af0: 6e 66 6f 20 22 20 20 20 20 2d 2d 6c 6f 6f 70 63  nfo "    --loopc
1b00: 68 65 63 6b 20 20 20 20 20 20 20 20 20 20 20 20  heck            
1b10: 20 20 20 20 41 63 74 69 76 61 74 65 20 74 68 65      Activate the
1b20: 20 65 78 70 65 6e 73 69 76 65 20 73 65 61 72 63   expensive searc
1b30: 68 20 66 6f 72 20 63 68 61 6e 67 65 2d 22 0a 09  h for change-"..
1b40: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20  trouble info "  
1b50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74               wit
1b70: 68 20 6c 6f 6f 70 73 2c 20 69 2e 65 2e 20 64 65  h loops, i.e. de
1b80: 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 6d 73  pending on thems
1b90: 65 6c 76 65 73 2e 22 0a 0a 09 23 20 2d 2d 70 72  elves."...# --pr
1ba0: 6f 6a 65 63 74 2c 20 2d 2d 63 61 63 68 65 0a 09  oject, --cache..
1bb0: 23 20 2e 2e 2e 0a 09 72 65 74 75 72 6e 0a 20 20  # .....return.  
1bc0: 20 20 7d 0a 0a 20 20 20 20 70 72 6f 63 20 50 72    }..    proc Pr
1bd0: 69 6e 74 56 65 72 73 69 6f 6e 20 7b 7d 20 7b 0a  intVersion {} {.
1be0: 09 67 6c 6f 62 61 6c 20 61 72 67 76 30 0a 09 73  .global argv0..s
1bf0: 65 74 20 76 20 5b 70 61 63 6b 61 67 65 20 72 65  et v [package re
1c00: 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 69 6c  quire vc::fossil
1c10: 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 5d 0a 09  ::import::cvs]..
1c20: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 24 61  trouble info "$a
1c30: 72 67 76 30 20 76 24 76 22 0a 09 72 65 74 75 72  rgv0 v$v"..retur
1c40: 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 72 6f  n.    }..    pro
1c50: 63 20 55 73 61 67 65 20 7b 7b 74 65 78 74 20 7b  c Usage {{text {
1c60: 7d 7d 7d 20 7b 0a 09 67 6c 6f 62 61 6c 20 61 72  }}} {..global ar
1c70: 67 76 30 0a 09 74 72 6f 75 62 6c 65 20 66 61 74  gv0..trouble fat
1c80: 61 6c 20 22 55 73 61 67 65 3a 20 24 61 72 67 76  al "Usage: $argv
1c90: 30 20 24 75 73 61 67 65 22 0a 09 69 66 20 7b 24  0 $usage"..if {$
1ca0: 74 65 78 74 20 6e 65 20 22 22 7d 20 7b 20 74 72  text ne ""} { tr
1cb0: 6f 75 62 6c 65 20 66 61 74 61 6c 20 22 24 74 65  ouble fatal "$te
1cc0: 78 74 22 20 7d 0a 09 65 78 69 74 20 31 0a 20 20  xt" }..exit 1.  
1cd0: 20 20 7d 0a 0a 20 20 20 20 23 20 23 20 23 23 20    }..    # # ## 
1ce0: 23 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23  ### ##### ######
1cf0: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23  ## #############
1d00: 0a 20 20 20 20 23 23 20 49 6e 74 65 72 6e 61 6c  .    ## Internal
1d10: 20 6d 65 74 68 6f 64 73 2c 20 63 6f 6d 6d 61 6e   methods, comman
1d20: 64 20 6c 69 6e 65 20 70 72 6f 63 65 73 73 69 6e  d line processin
1d30: 67 0a 0a 20 20 20 20 74 79 70 65 76 61 72 69 61  g..    typevaria
1d40: 62 6c 65 20 75 73 61 67 65 20 20 20 20 20 22 3f  ble usage     "?
1d50: 6f 70 74 69 6f 6e 20 3f 76 61 6c 75 65 3f 2e 2e  option ?value?..
1d60: 2e 3f 20 63 76 73 2d 72 65 70 6f 73 69 74 6f 72  .? cvs-repositor
1d70: 79 2d 70 61 74 68 22 0a 20 20 20 20 74 79 70 65  y-path".    type
1d80: 76 61 72 69 61 62 6c 65 20 6e 6f 63 76 73 20 20  variable nocvs  
1d90: 20 20 20 22 20 20 20 20 20 20 20 54 68 65 20 63     "       The c
1da0: 76 73 2d 72 65 70 6f 73 69 74 6f 72 79 2d 70 61  vs-repository-pa
1db0: 74 68 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 0a  th is missing.".
1dc0: 20 20 20 20 74 79 70 65 76 61 72 69 61 62 6c 65      typevariable
1dd0: 20 62 61 64 6f 70 74 69 6f 6e 20 22 20 20 20 20   badoption "    
1de0: 20 20 20 42 61 64 20 6f 70 74 69 6f 6e 20 22 0a     Bad option ".
1df0: 20 20 20 20 74 79 70 65 76 61 72 69 61 62 6c 65      typevariable
1e00: 20 67 65 74 68 65 6c 70 20 20 20 22 20 20 20 20   gethelp   "    
1e10: 20 20 20 55 73 65 20 2d 2d 68 65 6c 70 20 74 6f     Use --help to
1e20: 20 67 65 74 20 68 65 6c 70 2e 22 0a 0a 20 20 20   get help."..   
1e30: 20 70 72 6f 63 20 49 73 4f 70 74 69 6f 6e 20 7b   proc IsOption {
1e40: 61 76 20 5f 20 6f 76 7d 20 7b 0a 09 75 70 76 61  av _ ov} {..upva
1e50: 72 20 31 20 24 61 76 20 61 72 67 75 6d 65 6e 74  r 1 $av argument
1e60: 73 20 24 6f 76 20 6f 70 74 69 6f 6e 0a 09 73 65  s $ov option..se
1e70: 74 20 63 61 6e 64 69 64 61 74 65 20 5b 6c 69 6e  t candidate [lin
1e80: 64 65 78 20 24 61 72 67 75 6d 65 6e 74 73 20 30  dex $arguments 0
1e90: 5d 0a 09 69 66 20 7b 21 5b 73 74 72 69 6e 67 20  ]..if {![string 
1ea0: 6d 61 74 63 68 20 2d 2a 20 24 63 61 6e 64 69 64  match -* $candid
1eb0: 61 74 65 5d 7d 20 7b 72 65 74 75 72 6e 20 30 7d  ate]} {return 0}
1ec0: 0a 09 73 65 74 20 6f 70 74 69 6f 6e 20 20 20 20  ..set option    
1ed0: 24 63 61 6e 64 69 64 61 74 65 0a 09 73 65 74 20  $candidate..set 
1ee0: 61 72 67 75 6d 65 6e 74 73 20 5b 6c 72 61 6e 67  arguments [lrang
1ef0: 65 20 24 61 72 67 75 6d 65 6e 74 73 20 31 20 65  e $arguments 1 e
1f00: 6e 64 5d 0a 09 72 65 74 75 72 6e 20 31 0a 20 20  nd]..return 1.  
1f10: 20 20 7d 0a 0a 20 20 20 20 70 72 6f 63 20 56 61    }..    proc Va
1f20: 6c 75 65 20 7b 61 76 7d 20 7b 0a 09 75 70 76 61  lue {av} {..upva
1f30: 72 20 31 20 24 61 76 20 61 72 67 75 6d 65 6e 74  r 1 $av argument
1f40: 73 0a 09 73 65 74 20 76 20 20 20 20 20 20 20 20  s..set v        
1f50: 20 5b 6c 69 6e 64 65 78 20 24 61 72 67 75 6d 65   [lindex $argume
1f60: 6e 74 73 20 30 5d 0a 09 73 65 74 20 61 72 67 75  nts 0]..set argu
1f70: 6d 65 6e 74 73 20 5b 6c 72 61 6e 67 65 20 24 61  ments [lrange $a
1f80: 72 67 75 6d 65 6e 74 73 20 31 20 65 6e 64 5d 0a  rguments 1 end].
1f90: 09 72 65 74 75 72 6e 20 24 76 0a 20 20 20 20 7d  .return $v.    }
1fa0: 0a 0a 20 20 20 20 23 20 23 20 23 23 20 23 23 23  ..    # # ## ###
1fb0: 20 23 23 23 23 23 20 23 23 23 23 23 23 23 23 20   ##### ######## 
1fc0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 20 20  #############.  
1fd0: 20 20 23 23 20 49 6e 74 65 72 6e 61 6c 20 6d 65    ## Internal me
1fe0: 74 68 6f 64 73 2c 20 73 74 61 74 65 20 76 61 6c  thods, state val
1ff0: 69 64 61 74 69 6f 6e 0a 0a 20 20 20 20 70 72 6f  idation..    pro
2000: 63 20 56 61 6c 69 64 61 74 65 20 7b 7d 20 7b 0a  c Validate {} {.
2010: 09 23 20 50 72 65 76 65 6e 74 20 69 6e 2d 64 65  .# Prevent in-de
2020: 70 74 68 20 76 61 6c 69 64 61 74 69 6f 6e 20 69  pth validation i
2030: 66 20 74 68 65 20 6f 70 74 69 6f 6e 73 20 77 65  f the options we
2040: 72 65 20 61 6c 72 65 61 64 79 20 62 61 64 2e 0a  re already bad..
2050: 09 74 72 6f 75 62 6c 65 20 61 62 6f 72 74 3f 0a  .trouble abort?.
2060: 0a 09 72 65 70 6f 73 69 74 6f 72 79 20 76 61 6c  ..repository val
2070: 69 64 61 74 65 0a 09 73 74 61 74 65 20 20 20 20  idate..state    
2080: 20 20 73 65 74 75 70 0a 0a 09 74 72 6f 75 62 6c    setup...troubl
2090: 65 20 61 62 6f 72 74 3f 0a 09 72 65 74 75 72 6e  e abort?..return
20a0: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 23 20  .    }..    # # 
20b0: 23 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23  ## ### ##### ###
20c0: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23  ##### ##########
20d0: 23 23 23 0a 20 20 20 20 23 23 20 43 6f 6e 66 69  ###.    ## Confi
20e0: 67 75 72 61 74 69 6f 6e 0a 0a 20 20 20 20 70 72  guration..    pr
20f0: 61 67 6d 61 20 2d 68 61 73 69 6e 73 74 61 6e 63  agma -hasinstanc
2100: 65 73 20 20 20 6e 6f 20 3b 20 23 20 73 69 6e 67  es   no ; # sing
2110: 6c 65 74 6f 6e 0a 20 20 20 20 70 72 61 67 6d 61  leton.    pragma
2120: 20 2d 68 61 73 74 79 70 65 69 6e 66 6f 20 20 20   -hastypeinfo   
2130: 20 6e 6f 20 3b 20 23 20 6e 6f 20 69 6e 74 72 6f   no ; # no intro
2140: 73 70 65 63 74 69 6f 6e 0a 20 20 20 20 70 72 61  spection.    pra
2150: 67 6d 61 20 2d 68 61 73 74 79 70 65 64 65 73 74  gma -hastypedest
2160: 72 6f 79 20 6e 6f 20 3b 20 23 20 69 6d 6d 6f 72  roy no ; # immor
2170: 74 61 6c 0a 0a 20 20 20 20 23 20 23 20 23 23 20  tal..    # # ## 
2180: 23 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23  ### ##### ######
2190: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23  ## #############
21a0: 0a 7d 0a 0a 6e 61 6d 65 73 70 61 63 65 20 65 76  .}..namespace ev
21b0: 61 6c 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a  al ::vc::fossil:
21c0: 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 20 7b 0a 20  :import::cvs {. 
21d0: 20 20 20 6e 61 6d 65 73 70 61 63 65 20 65 78 70     namespace exp
21e0: 6f 72 74 20 6f 70 74 69 6f 6e 0a 20 20 20 20 6e  ort option.    n
21f0: 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 6f 70  amespace eval op
2200: 74 69 6f 6e 20 7b 0a 09 6e 61 6d 65 73 70 61 63  tion {..namespac
2210: 65 20 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a 74  e import ::vc::t
2220: 6f 6f 6c 73 3a 3a 6d 69 73 63 3a 3a 73 74 72 69  ools::misc::stri
2230: 70 74 72 61 69 6c 69 6e 67 73 6c 61 73 68 0a 09  ptrailingslash..
2240: 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f 72 74  namespace import
2250: 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69   ::vc::fossil::i
2260: 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73  mport::cvs::pass
2270: 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f  ..namespace impo
2280: 72 74 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a  rt ::vc::fossil:
2290: 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 61  :import::cvs::pa
22a0: 73 73 3a 3a 63 6f 6c 6c 61 72 0a 09 6e 61 6d 65  ss::collar..name
22b0: 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76  space import ::v
22c0: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72  c::fossil::impor
22d0: 74 3a 3a 63 76 73 3a 3a 63 79 63 6c 65 62 72 65  t::cvs::cyclebre
22e0: 61 6b 65 72 0a 09 6e 61 6d 65 73 70 61 63 65 20  aker..namespace 
22f0: 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a 66 6f 73  import ::vc::fos
2300: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73  sil::import::cvs
2310: 3a 3a 72 65 70 6f 73 69 74 6f 72 79 0a 09 6e 61  ::repository..na
2320: 6d 65 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a  mespace import :
2330: 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70  :vc::fossil::imp
2340: 6f 72 74 3a 3a 63 76 73 3a 3a 73 74 61 74 65 0a  ort::cvs::state.
2350: 09 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f 72  .namespace impor
2360: 74 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a  t ::vc::fossil::
2370: 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 69 6e 74  import::cvs::int
2380: 65 67 72 69 74 79 0a 09 6e 61 6d 65 73 70 61 63  egrity..namespac
2390: 65 20 65 76 61 6c 20 70 72 6f 6a 65 63 74 20 7b  e eval project {
23a0: 0a 09 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20  ..    namespace 
23b0: 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a 66 6f 73  import ::vc::fos
23c0: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73  sil::import::cvs
23d0: 3a 3a 70 72 6f 6a 65 63 74 3a 3a 73 79 6d 0a 09  ::project::sym..
23e0: 7d 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d 70  }..namespace imp
23f0: 6f 72 74 20 3a 3a 76 63 3a 3a 74 6f 6f 6c 73 3a  ort ::vc::tools:
2400: 3a 74 72 6f 75 62 6c 65 0a 09 6e 61 6d 65 73 70  :trouble..namesp
2410: 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76 63 3a  ace import ::vc:
2420: 3a 74 6f 6f 6c 73 3a 3a 6c 6f 67 0a 20 20 20 20  :tools::log.    
2430: 7d 0a 7d 0a 0a 23 20 23 20 23 23 20 23 23 23 20  }.}..# # ## ### 
2440: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23  ##### ######## #
2450: 23 23 23 23 23 23 23 23 23 23 23 23 20 23 23 23  ############ ###
2460: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23  ################
2470: 23 23 0a 23 23 20 52 65 61 64 79 0a 0a 70 61 63  ##.## Ready..pac
2480: 6b 61 67 65 20 70 72 6f 76 69 64 65 20 76 63 3a  kage provide vc:
2490: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a  :fossil::import:
24a0: 3a 63 76 73 3a 3a 6f 70 74 69 6f 6e 20 31 2e 30  :cvs::option 1.0
24b0: 0a 72 65 74 75 72 6e 0a                          .return.