Artifact be274ee7965f632cdfa642fb28c98726b607aa17:
File
tools/cvs2fossil/lib/c2f_option.tcl
part of check-in
[be2f99e6a4]
- Merge with aku's branch.
by
drh on
2008-02-13 14:44:50.
Also file
tools/cvs2fossil/lib/c2f_option.tcl
part of check-in
[c1dc8701ef]
- Added code to skip of administrative .cvsignore files. Added code to detect and warn about dot files (.FOO). Allow the user to import dot files by converting their names to non-dot form (.FOO -> dot-FOO).
by
aku on
2008-02-12 04:24:42.
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 66 6f 73 73 mport::cvs::foss
04c0: 69 6c 20 20 20 20 20 20 20 3b 20 23 20 46 6f 73 il ; # Fos
04d0: 73 69 6c 20 72 65 70 6f 73 69 74 6f 72 79 20 61 sil repository a
04e0: 63 63 65 73 73 0a 70 61 63 6b 61 67 65 20 72 65 ccess.package re
04f0: 71 75 69 72 65 20 76 63 3a 3a 66 6f 73 73 69 6c quire vc::fossil
0500: 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 ::import::cvs::p
0510: 61 73 73 20 20 20 20 20 20 20 20 20 3b 20 23 20 ass ; #
0520: 50 61 73 73 20 6d 61 6e 61 67 65 6d 65 6e 74 0a Pass management.
0530: 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 package require
0540: 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f vc::fossil::impo
0550: 72 74 3a 3a 63 76 73 3a 3a 70 61 73 73 3a 3a 63 rt::cvs::pass::c
0560: 6f 6c 6c 61 72 20 3b 20 23 20 50 61 73 73 20 49 ollar ; # Pass I
0570: 2e 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 ..package requir
0580: 65 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d e vc::fossil::im
0590: 70 6f 72 74 3a 3a 63 76 73 3a 3a 72 65 70 6f 73 port::cvs::repos
05a0: 69 74 6f 72 79 20 20 20 3b 20 23 20 52 65 70 6f itory ; # Repo
05b0: 73 69 74 6f 72 79 20 6d 61 6e 61 67 65 6d 65 6e sitory managemen
05c0: 74 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 t.package requir
05d0: 65 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d e vc::fossil::im
05e0: 70 6f 72 74 3a 3a 63 76 73 3a 3a 73 74 61 74 65 port::cvs::state
05f0: 20 20 20 20 20 20 20 20 3b 20 23 20 53 74 61 74 ; # Stat
0600: 65 20 73 74 6f 72 61 67 65 0a 70 61 63 6b 61 67 e storage.packag
0610: 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a 66 6f e require vc::fo
0620: 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 ssil::import::cv
0630: 73 3a 3a 69 6e 74 65 67 72 69 74 79 20 20 20 20 s::integrity
0640: 3b 20 23 20 53 74 61 74 65 20 69 6e 74 65 67 72 ; # State integr
0650: 69 74 79 20 63 68 65 63 6b 73 2e 0a 70 61 63 6b ity checks..pack
0660: 61 67 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a age require vc::
0670: 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a fossil::import::
0680: 63 76 73 3a 3a 70 72 6f 6a 65 63 74 3a 3a 73 79 cvs::project::sy
0690: 6d 20 3b 20 23 20 50 72 6f 6a 65 63 74 20 6c 65 m ; # Project le
06a0: 76 65 6c 20 73 79 6d 62 6f 6c 73 0a 70 61 63 6b vel symbols.pack
06b0: 61 67 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a age require vc::
06c0: 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a fossil::import::
06d0: 63 76 73 3a 3a 63 79 63 6c 65 62 72 65 61 6b 65 cvs::cyclebreake
06e0: 72 20 3b 20 23 20 42 72 65 61 6b 69 6e 67 20 64 r ; # Breaking d
06f0: 65 70 65 6e 64 65 6e 63 79 20 63 79 63 6c 65 73 ependency cycles
0700: 2e 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 23 ...# # ## ### ##
0710: 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23 ### ######## ###
0720: 23 23 23 23 23 23 23 23 23 23 20 23 23 23 23 23 ########## #####
0730: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
0740: 0a 23 23 0a 0a 73 6e 69 74 3a 3a 74 79 70 65 20 .##..snit::type
0750: 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d ::vc::fossil::im
0760: 70 6f 72 74 3a 3a 63 76 73 3a 3a 6f 70 74 69 6f port::cvs::optio
0770: 6e 20 7b 0a 20 20 20 20 23 20 23 20 23 23 20 23 n {. # # ## #
0780: 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23 23 ## ##### #######
0790: 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 0a # #############.
07a0: 20 20 20 20 23 23 20 50 75 62 6c 69 63 20 41 50 ## Public AP
07b0: 49 2c 20 4f 70 74 69 6f 6e 73 2e 0a 0a 20 20 20 I, Options...
07c0: 20 23 20 2d 2d 68 65 6c 70 2c 20 2d 2d 68 65 6c # --help, --hel
07d0: 70 2d 70 61 73 73 65 73 2c 20 2d 68 0a 20 20 20 p-passes, -h.
07e0: 20 23 20 2d 2d 76 65 72 73 69 6f 6e 0a 20 20 20 # --version.
07f0: 20 23 20 2d 70 2c 20 2d 2d 70 61 73 73 2c 20 2d # -p, --pass, -
0800: 2d 70 61 73 73 65 73 0a 20 20 20 20 23 20 2d 2d -passes. # --
0810: 69 67 6e 6f 72 65 2d 63 6f 6e 66 6c 69 63 74 69 ignore-conflicti
0820: 6e 67 2d 61 74 74 69 63 73 0a 20 20 20 20 23 20 ng-attics. #
0830: 2d 2d 63 6f 6e 76 65 72 74 2d 64 6f 74 66 69 6c --convert-dotfil
0840: 65 73 0a 20 20 20 20 23 20 2d 2d 70 72 6f 6a 65 es. # --proje
0850: 63 74 0a 20 20 20 20 23 20 2d 76 2c 20 2d 2d 76 ct. # -v, --v
0860: 65 72 62 6f 73 65 0a 20 20 20 20 23 20 2d 71 2c erbose. # -q,
0870: 20 2d 2d 71 75 69 65 74 0a 20 20 20 20 23 20 2d --quiet. # -
0880: 2d 73 74 61 74 65 20 28 63 6f 6e 76 65 72 73 69 -state (conversi
0890: 6f 6e 20 73 74 61 74 75 73 2c 20 61 6c 61 20 63 on status, ala c
08a0: 6f 6e 66 69 67 2e 63 61 63 68 65 29 0a 20 20 20 onfig.cache).
08b0: 20 23 20 2d 2d 74 72 75 6e 6b 2d 6f 6e 6c 79 0a # --trunk-only.
08c0: 20 20 20 20 23 20 2d 2d 65 78 63 6c 75 64 65 2c # --exclude,
08d0: 20 2d 2d 66 6f 72 63 65 2d 74 61 67 2c 20 2d 2d --force-tag, --
08e0: 66 6f 72 63 65 2d 62 72 61 6e 63 68 0a 20 20 20 force-branch.
08f0: 20 23 20 2d 2d 62 61 74 63 68 0a 20 20 20 20 23 # --batch. #
0900: 20 2d 2d 66 6f 73 73 69 6c 20 50 41 54 48 0a 0a --fossil PATH..
0910: 20 20 20 20 23 20 2d 6f 2c 20 2d 2d 6f 75 74 70 # -o, --outp
0920: 75 74 0a 20 20 20 20 23 20 2d 2d 64 72 79 2d 72 ut. # --dry-r
0930: 75 6e 0a 20 20 20 20 23 20 2d 2d 73 79 6d 62 6f un. # --symbo
0940: 6c 2d 74 72 61 6e 73 66 6f 72 6d 20 52 45 3a 58 l-transform RE:X
0950: 58 0a 0a 20 20 20 20 23 20 23 20 23 23 20 23 23 X.. # # ## ##
0960: 23 20 23 23 23 23 23 20 23 23 23 23 23 23 23 23 # ##### ########
0970: 20 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 20 #############.
0980: 20 20 20 23 23 20 50 75 62 6c 69 63 20 41 50 49 ## Public API
0990: 2c 20 4d 65 74 68 6f 64 73 0a 0a 20 20 20 20 74 , Methods.. t
09a0: 79 70 65 6d 65 74 68 6f 64 20 70 72 6f 63 65 73 ypemethod proces
09b0: 73 20 7b 61 72 67 75 6d 65 6e 74 73 7d 20 7b 0a s {arguments} {.
09c0: 09 23 20 53 79 6e 74 61 78 20 6f 66 20 61 72 67 .# Syntax of arg
09d0: 75 6d 65 6e 74 73 3a 20 3f 6f 70 74 69 6f 6e 20 uments: ?option
09e0: 3f 76 61 6c 75 65 3f 2e 2e 2e 3f 20 2f 70 61 74 ?value?...? /pat
09f0: 68 2f 74 6f 2f 63 76 73 2f 72 65 70 6f 73 69 74 h/to/cvs/reposit
0a00: 6f 72 79 0a 0a 09 77 68 69 6c 65 20 7b 5b 49 73 ory...while {[Is
0a10: 4f 70 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 Option arguments
0a20: 20 2d 3e 20 6f 70 74 69 6f 6e 5d 7d 20 7b 0a 09 -> option]} {..
0a30: 20 20 20 20 73 77 69 74 63 68 20 2d 65 78 61 63 switch -exac
0a40: 74 20 2d 2d 20 24 6f 70 74 69 6f 6e 20 7b 0a 09 t -- $option {..
0a50: 09 2d 68 20 20 20 20 20 20 20 20 20 20 20 20 20 .-h
0a60: 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 0a 09 -..
0a70: 09 2d 2d 68 65 6c 70 20 20 20 20 20 20 20 20 20 .--help
0a80: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 50 { P
0a90: 72 69 6e 74 48 65 6c 70 20 20 20 20 3b 20 65 78 rintHelp ; ex
0aa0: 69 74 20 30 20 7d 0a 09 09 2d 2d 68 65 6c 70 2d it 0 }...--help-
0ab0: 70 61 73 73 65 73 20 20 20 20 20 20 20 20 20 20 passes
0ac0: 20 20 20 20 20 7b 20 70 61 73 73 20 68 65 6c 70 { pass help
0ad0: 20 20 20 20 3b 20 65 78 69 74 20 30 20 7d 0a 09 ; exit 0 }..
0ae0: 09 2d 2d 76 65 72 73 69 6f 6e 20 20 20 20 20 20 .--version
0af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 50 { P
0b00: 72 69 6e 74 56 65 72 73 69 6f 6e 20 3b 20 65 78 rintVersion ; ex
0b10: 69 74 20 30 20 7d 0a 09 09 2d 70 20 20 20 20 20 it 0 }...-p
0b20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0b30: 20 20 20 20 20 2d 0a 09 09 2d 2d 70 61 73 73 20 -...--pass
0b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0b50: 20 20 20 20 20 2d 0a 09 09 2d 2d 70 61 73 73 65 -...--passe
0b60: 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s
0b70: 20 20 20 20 20 7b 20 70 61 73 73 20 73 65 6c 65 { pass sele
0b80: 63 74 20 5b 56 61 6c 75 65 20 61 72 67 75 6d 65 ct [Value argume
0b90: 6e 74 73 5d 20 7d 0a 09 09 2d 2d 69 67 6e 6f 72 nts] }...--ignor
0ba0: 65 2d 63 6f 6e 66 6c 69 63 74 69 6e 67 2d 61 74 e-conflicting-at
0bb0: 74 69 63 73 20 7b 20 63 6f 6c 6c 61 72 20 69 67 tics { collar ig
0bc0: 6e 6f 72 65 5f 63 6f 6e 66 6c 69 63 74 69 6e 67 nore_conflicting
0bd0: 5f 61 74 74 69 63 73 20 7d 0a 09 09 2d 2d 63 6f _attics }...--co
0be0: 6e 76 65 72 74 2d 64 6f 74 66 69 6c 65 73 20 20 nvert-dotfiles
0bf0: 20 20 20 20 20 20 20 20 7b 20 63 6f 6c 6c 61 72 { collar
0c00: 20 61 63 63 65 70 74 5f 61 6e 64 5f 63 6f 6e 76 accept_and_conv
0c10: 65 72 74 5f 64 6f 74 66 69 6c 65 73 20 7d 0a 09 ert_dotfiles }..
0c20: 09 2d 2d 70 72 6f 6a 65 63 74 20 20 20 20 20 20 .--project
0c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 72 { r
0c40: 65 70 6f 73 69 74 6f 72 79 20 61 64 64 20 5b 56 epository add [V
0c50: 61 6c 75 65 20 61 72 67 75 6d 65 6e 74 73 5d 20 alue arguments]
0c60: 7d 0a 09 09 2d 76 20 20 20 20 20 20 20 20 20 20 }...-v
0c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0c80: 2d 0a 09 09 2d 2d 76 65 72 62 6f 73 65 20 20 20 -...--verbose
0c90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0ca0: 7b 20 6c 6f 67 20 76 65 72 62 6f 73 65 20 7d 0a { log verbose }.
0cb0: 09 09 2d 71 20 20 20 20 20 20 20 20 20 20 20 20 ..-q
0cc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2d 0a -.
0cd0: 09 09 2d 2d 71 75 69 65 74 20 20 20 20 20 20 20 ..--quiet
0ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 {
0cf0: 6c 6f 67 20 71 75 69 65 74 20 7d 0a 09 09 2d 2d log quiet }...--
0d00: 73 74 61 74 65 20 20 20 20 20 20 20 20 20 20 20 state
0d10: 20 20 20 20 20 20 20 20 20 20 7b 20 73 74 61 74 { stat
0d20: 65 20 75 73 65 64 62 20 5b 56 61 6c 75 65 20 61 e usedb [Value a
0d30: 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d rguments] }...--
0d40: 74 72 75 6e 6b 2d 6f 6e 6c 79 20 20 20 20 20 20 trunk-only
0d50: 20 20 20 20 20 20 20 20 20 20 7b 20 72 65 70 6f { repo
0d60: 73 69 74 6f 72 79 20 74 72 75 6e 6b 6f 6e 6c 79 sitory trunkonly
0d70: 21 20 7d 0a 09 09 2d 2d 65 78 63 6c 75 64 65 20 ! }...--exclude
0d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0d90: 20 20 7b 20 70 72 6f 6a 65 63 74 3a 3a 73 79 6d { project::sym
0da0: 20 65 78 63 6c 75 64 65 20 20 20 20 20 5b 56 61 exclude [Va
0db0: 6c 75 65 20 61 72 67 75 6d 65 6e 74 73 5d 20 7d lue arguments] }
0dc0: 0a 09 09 2d 2d 66 6f 72 63 65 2d 74 61 67 20 20 ...--force-tag
0dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b {
0de0: 20 70 72 6f 6a 65 63 74 3a 3a 73 79 6d 20 66 6f project::sym fo
0df0: 72 63 65 74 61 67 20 20 20 20 5b 56 61 6c 75 65 rcetag [Value
0e00: 20 61 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09 09 arguments] }...
0e10: 2d 2d 66 6f 72 63 65 2d 62 72 61 6e 63 68 20 20 --force-branch
0e20: 20 20 20 20 20 20 20 20 20 20 20 20 7b 20 70 72 { pr
0e30: 6f 6a 65 63 74 3a 3a 73 79 6d 20 66 6f 72 63 65 oject::sym force
0e40: 62 72 61 6e 63 68 20 5b 56 61 6c 75 65 20 61 72 branch [Value ar
0e50: 67 75 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d 62 guments] }...--b
0e60: 61 74 63 68 20 20 20 20 20 20 20 20 20 20 20 20 atch
0e70: 20 20 20 20 20 20 20 20 20 7b 20 6c 6f 67 20 6e { log n
0e80: 6f 70 72 6f 67 72 65 73 73 20 7d 0a 09 09 2d 2d oprogress }...--
0e90: 64 6f 74 73 20 20 20 20 20 20 20 20 20 20 20 20 dots
0ea0: 20 20 20 20 20 20 20 20 20 20 7b 20 63 79 63 6c { cycl
0eb0: 65 62 72 65 61 6b 65 72 20 64 6f 74 73 74 6f 20 ebreaker dotsto
0ec0: 5b 56 61 6c 75 65 20 61 72 67 75 6d 65 6e 74 73 [Value arguments
0ed0: 5d 20 7d 0a 09 09 2d 2d 77 61 74 63 68 20 20 20 ] }...--watch
0ee0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0ef0: 20 20 7b 20 63 79 63 6c 65 62 72 65 61 6b 65 72 { cyclebreaker
0f00: 20 77 61 74 63 68 20 20 5b 56 61 6c 75 65 20 61 watch [Value a
0f10: 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09 09 2d 2d rguments] }...--
0f20: 73 74 61 74 65 73 61 76 65 71 75 65 72 69 65 73 statesavequeries
0f30: 74 6f 20 20 20 20 20 20 20 20 7b 20 73 74 61 74 to { stat
0f40: 65 20 73 61 76 65 71 75 65 72 69 65 73 74 6f 20 e savequeriesto
0f50: 5b 56 61 6c 75 65 20 61 72 67 75 6d 65 6e 74 73 [Value arguments
0f60: 5d 20 7d 0a 09 09 2d 2d 66 6f 73 73 69 6c 20 20 ] }...--fossil
0f70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0f80: 20 20 7b 20 66 6f 73 73 69 6c 20 73 65 74 6c 6f { fossil setlo
0f90: 63 61 74 69 6f 6e 20 20 5b 56 61 6c 75 65 20 61 cation [Value a
0fa0: 72 67 75 6d 65 6e 74 73 5d 20 7d 0a 09 09 64 65 rguments] }...de
0fb0: 66 61 75 6c 74 20 7b 0a 09 09 20 20 20 20 55 73 fault {... Us
0fc0: 61 67 65 20 24 62 61 64 6f 70 74 69 6f 6e 24 6f age $badoption$o
0fd0: 70 74 69 6f 6e 5c 6e 24 67 65 74 68 65 6c 70 0a ption\n$gethelp.
0fe0: 09 09 7d 0a 09 20 20 20 20 7d 0a 09 7d 0a 0a 09 ..}.. }..}...
0ff0: 69 66 20 7b 5b 6c 6c 65 6e 67 74 68 20 24 61 72 if {[llength $ar
1000: 67 75 6d 65 6e 74 73 5d 20 3e 20 31 7d 20 55 73 guments] > 1} Us
1010: 61 67 65 0a 09 69 66 20 7b 5b 6c 6c 65 6e 67 74 age..if {[llengt
1020: 68 20 24 61 72 67 75 6d 65 6e 74 73 5d 20 3c 20 h $arguments] <
1030: 31 7d 20 7b 20 55 73 61 67 65 20 24 6e 6f 63 76 1} { Usage $nocv
1040: 73 20 7d 0a 09 72 65 70 6f 73 69 74 6f 72 79 20 s }..repository
1050: 62 61 73 65 20 5b 73 74 72 69 70 74 72 61 69 6c base [striptrail
1060: 69 6e 67 73 6c 61 73 68 20 5b 6c 69 6e 64 65 78 ingslash [lindex
1070: 20 24 61 72 67 75 6d 65 6e 74 73 20 30 5d 5d 0a $arguments 0]].
1080: 0a 09 56 61 6c 69 64 61 74 65 0a 09 72 65 74 75 ..Validate..retu
1090: 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 rn. }.. #
10a0: 23 20 23 23 20 23 23 23 20 23 23 23 23 23 20 23 # ## ### ##### #
10b0: 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 ####### ########
10c0: 23 23 23 23 23 0a 20 20 20 20 23 23 20 49 6e 74 #####. ## Int
10d0: 65 72 6e 61 6c 20 6d 65 74 68 6f 64 73 2c 20 70 ernal methods, p
10e0: 72 69 6e 74 69 6e 67 20 69 6e 66 6f 72 6d 61 74 rinting informat
10f0: 69 6f 6e 2e 0a 0a 20 20 20 20 70 72 6f 63 20 50 ion... proc P
1100: 72 69 6e 74 48 65 6c 70 20 7b 7d 20 7b 0a 09 67 rintHelp {} {..g
1110: 6c 6f 62 61 6c 20 61 72 67 76 30 0a 09 74 72 6f lobal argv0..tro
1120: 75 62 6c 65 20 69 6e 66 6f 20 22 55 73 61 67 65 uble info "Usage
1130: 3a 20 24 61 72 67 76 30 20 24 75 73 61 67 65 22 : $argv0 $usage"
1140: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 ..trouble info "
1150: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 "..trouble info
1160: 22 20 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f " Information o
1170: 70 74 69 6f 6e 73 22 0a 09 74 72 6f 75 62 6c 65 ptions"..trouble
1180: 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c info ""..troubl
1190: 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 68 2c 20 e info " -h,
11a0: 2d 2d 68 65 6c 70 20 20 20 20 50 72 69 6e 74 20 --help Print
11b0: 74 68 69 73 20 6d 65 73 73 61 67 65 20 61 6e 64 this message and
11c0: 20 65 78 69 74 20 77 69 74 68 20 73 75 63 63 65 exit with succe
11d0: 73 73 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 ss"..trouble inf
11e0: 6f 20 22 20 20 20 20 2d 2d 68 65 6c 70 2d 70 61 o " --help-pa
11f0: 73 73 65 73 20 50 72 69 6e 74 20 6c 69 73 74 20 sses Print list
1200: 6f 66 20 70 61 73 73 65 73 20 61 6e 64 20 65 78 of passes and ex
1210: 69 74 20 77 69 74 68 20 73 75 63 63 65 73 73 22 it with success"
1220: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 ..trouble info "
1230: 20 20 20 20 2d 2d 76 65 72 73 69 6f 6e 20 20 20 --version
1240: 20 20 50 72 69 6e 74 20 76 65 72 73 69 6f 6e 20 Print version
1250: 6e 75 6d 62 65 72 20 6f 66 20 24 61 72 67 76 30 number of $argv0
1260: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 "..trouble info
1270: 22 20 20 20 20 2d 76 2c 20 2d 2d 76 65 72 62 6f " -v, --verbo
1280: 73 65 20 49 6e 63 72 65 61 73 65 20 61 70 70 6c se Increase appl
1290: 69 63 61 74 69 6f 6e 27 73 20 76 65 72 62 6f 73 ication's verbos
12a0: 69 74 79 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e ity"..trouble in
12b0: 66 6f 20 22 20 20 20 20 2d 71 2c 20 2d 2d 71 75 fo " -q, --qu
12c0: 69 65 74 20 20 20 44 65 63 72 65 61 73 65 20 61 iet Decrease a
12d0: 70 70 6c 69 63 61 74 69 6f 6e 27 73 20 76 65 72 pplication's ver
12e0: 62 6f 73 69 74 79 22 0a 09 74 72 6f 75 62 6c 65 bosity"..trouble
12f0: 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d 62 61 74 info " --bat
1300: 63 68 20 20 20 20 20 20 20 44 69 73 61 62 6c 65 ch Disable
1310: 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 66 65 the progress fe
1320: 65 64 62 61 63 6b 20 73 74 61 6e 64 61 72 64 20 edback standard
1330: 74 6f 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 to"..trouble inf
1340: 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 20 20 o "
1350: 20 20 20 20 20 69 6e 74 65 72 61 63 74 69 76 65 interactive
1360: 20 75 73 65 2e 22 0a 09 74 72 6f 75 62 6c 65 20 use."..trouble
1370: 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 info ""..trouble
1380: 20 69 6e 66 6f 20 22 20 20 43 6f 6e 76 65 72 73 info " Convers
1390: 69 6f 6e 20 63 6f 6e 74 72 6f 6c 20 6f 70 74 69 ion control opti
13a0: 6f 6e 73 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e ons"..trouble in
13b0: 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 69 fo ""..trouble i
13c0: 6e 66 6f 20 22 20 20 20 20 2d 70 2c 20 2d 2d 70 nfo " -p, --p
13d0: 61 73 73 20 50 41 53 53 20 20 20 20 20 20 20 20 ass PASS
13e0: 20 20 20 20 52 75 6e 20 6f 6e 6c 79 20 74 68 65 Run only the
13f0: 20 73 70 65 63 69 66 69 65 64 20 63 6f 6e 76 65 specified conve
1400: 72 73 69 6f 6e 20 70 61 73 73 22 0a 09 74 72 6f rsion pass"..tro
1410: 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 2d uble info " -
1420: 70 2c 20 2d 2d 70 61 73 73 65 73 20 3f 53 54 41 p, --passes ?STA
1430: 52 54 3f 3a 3f 45 4e 44 3f 20 52 75 6e 20 6f 6e RT?:?END? Run on
1440: 6c 79 20 74 68 65 20 70 61 73 73 65 73 20 53 54 ly the passes ST
1450: 41 52 54 20 74 68 72 6f 75 67 68 20 45 4e 44 2c ART through END,
1460: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 "..trouble info
1470: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "
1480: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1490: 69 6e 63 6c 75 73 69 76 65 2e 22 0a 09 74 72 6f inclusive."..tro
14a0: 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09 74 72 uble info ""..tr
14b0: 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 ouble info "
14c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14d0: 20 20 20 20 20 20 20 20 20 20 20 50 61 73 73 65 Passe
14e0: 73 20 61 72 65 20 73 70 65 63 69 66 69 65 64 20 s are specified
14f0: 62 79 20 6e 61 6d 65 2e 22 0a 09 74 72 6f 75 62 by name."..troub
1500: 6c 65 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 le info ""..trou
1510: 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d ble info " --
1520: 69 67 6e 6f 72 65 2d 63 6f 6e 66 6c 69 63 74 69 ignore-conflicti
1530: 6e 67 2d 61 74 74 69 63 73 22 0a 09 74 72 6f 75 ng-attics"..trou
1540: 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 ble 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 50 72 65 76 65 6e 74 Prevent
1570: 20 61 62 6f 72 74 20 77 68 65 6e 20 63 6f 6e 66 abort when conf
1580: 6c 69 63 74 69 6e 67 20 61 72 63 68 69 76 65 73 licting archives
1590: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 "..trouble info
15a0: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "
15b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
15c0: 77 65 72 65 20 66 6f 75 6e 64 20 69 6e 20 62 6f were found in bo
15d0: 74 68 20 72 65 67 75 6c 61 72 20 61 6e 64 20 41 th regular and A
15e0: 74 74 69 63 2e 22 0a 09 74 72 6f 75 62 6c 65 20 ttic."..trouble
15f0: 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 info ""..trouble
1600: 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d 63 6f 6e info " --con
1610: 76 65 72 74 2d 64 6f 74 66 69 6c 65 73 22 0a 09 vert-dotfiles"..
1620: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 trouble info "
1630: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1640: 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 Pre
1650: 76 65 6e 74 20 61 62 6f 72 74 20 77 68 65 6e 20 vent abort when
1660: 64 6f 74 2d 66 69 6c 65 73 20 77 65 72 65 20 66 dot-files were f
1670: 6f 75 6e 64 2c 22 0a 09 74 72 6f 75 62 6c 65 20 ound,"..trouble
1680: 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 info "
1690: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
16a0: 20 20 20 20 20 63 61 75 73 69 6e 67 20 74 68 65 causing the
16b0: 69 72 20 63 6f 6e 76 65 72 73 69 6f 6e 20 74 6f ir conversion to
16c0: 20 6e 6f 6e 64 6f 74 2d 66 6f 72 6d 22 0a 09 74 nondot-form"..t
16d0: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 rouble info "
16e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
16f0: 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 73 74 inst
1700: 65 61 64 2e 22 0a 09 74 72 6f 75 62 6c 65 20 69 ead."..trouble i
1710: 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 nfo ""..trouble
1720: 69 6e 66 6f 20 22 20 20 20 20 2d 2d 73 74 61 74 info " --stat
1730: 65 20 50 41 54 48 20 20 20 20 20 20 20 20 20 20 e PATH
1740: 20 20 20 20 20 53 61 76 65 20 73 74 61 74 65 20 Save state
1750: 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 to the specified
1760: 20 66 69 6c 65 2c 20 61 6e 64 22 0a 09 74 72 6f file, and"..tro
1770: 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20 uble info "
1780: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1790: 20 20 20 20 20 20 20 20 20 20 6c 6f 61 64 20 73 load s
17a0: 74 61 74 65 20 6f 66 20 70 72 65 76 69 6f 75 73 tate of previous
17b0: 20 72 75 6e 73 20 66 72 6f 6d 20 69 74 20 74 6f runs from it to
17c0: 6f 2e 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 o."..trouble inf
17d0: 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e o ""..trouble in
17e0: 66 6f 20 22 20 20 20 20 2d 2d 65 78 63 6c 75 64 fo " --exclud
17f0: 65 20 3f 50 52 4f 4a 45 43 54 3a 3f 53 59 4d 42 e ?PROJECT:?SYMB
1800: 4f 4c 20 45 78 63 6c 75 64 65 20 74 68 65 20 6e OL Exclude the n
1810: 61 6d 65 64 20 73 79 6d 62 6f 6c 20 66 72 6f 6d amed symbol from
1820: 20 61 6c 6c 20 6f 72 22 0a 09 74 72 6f 75 62 6c all or"..troubl
1830: 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 e info "
1840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1850: 20 20 20 20 20 20 20 6a 75 73 74 20 74 68 65 20 just the
1860: 73 70 65 63 69 66 69 65 64 20 70 72 6f 6a 65 63 specified projec
1870: 74 2e 20 42 6f 74 68 20 70 72 6f 6a 65 63 74 22 t. Both project"
1880: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 ..trouble info "
1890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
18a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 a
18b0: 6e 64 20 73 79 6d 62 6f 6c 20 6e 61 6d 65 73 20 nd symbol names
18c0: 61 72 65 20 67 6c 6f 62 20 70 61 74 74 65 72 6e are glob pattern
18d0: 73 2e 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 s."..trouble inf
18e0: 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e o ""..trouble in
18f0: 66 6f 20 22 20 20 20 20 2d 2d 66 6f 72 63 65 2d fo " --force-
1900: 74 61 67 20 3f 50 52 4f 4a 45 43 54 3a 3f 53 59 tag ?PROJECT:?SY
1910: 4d 42 4f 4c 22 0a 09 74 72 6f 75 62 6c 65 20 69 MBOL"..trouble i
1920: 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 nfo "
1930: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1940: 20 20 20 20 46 6f 72 63 65 20 74 68 65 20 6e 61 Force the na
1950: 6d 65 64 20 73 79 6d 62 6f 6c 20 66 72 6f 6d 20 med symbol from
1960: 61 6c 6c 20 6f 72 20 6a 75 73 74 22 0a 09 74 72 all or just"..tr
1970: 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 ouble info "
1980: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1990: 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 73 the s
19a0: 70 65 63 69 66 69 65 64 20 70 72 6f 6a 65 63 74 pecified project
19b0: 20 74 6f 20 62 65 20 63 6f 6e 76 65 72 74 65 64 to be converted
19c0: 20 61 73 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e as"..trouble in
19d0: 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 20 fo "
19e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
19f0: 20 20 20 74 61 67 2e 20 42 6f 74 68 20 70 72 6f tag. Both pro
1a00: 6a 65 63 74 20 61 6e 64 20 73 79 6d 62 6f 6c 20 ject and symbol
1a10: 6e 61 6d 65 73 20 61 72 65 22 0a 09 74 72 6f 75 names are"..trou
1a20: 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 ble info "
1a30: 20 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 67 6c 6f 62 20 70 61 glob pa
1a50: 74 74 65 72 6e 73 2e 22 0a 09 74 72 6f 75 62 6c tterns."..troubl
1a60: 65 20 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 e info ""..troub
1a70: 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d 66 le info " --f
1a80: 6f 72 63 65 2d 62 72 61 6e 63 68 20 3f 50 52 4f orce-branch ?PRO
1a90: 4a 45 43 54 3a 3f 53 59 4d 42 4f 4c 22 0a 09 74 JECT:?SYMBOL"..t
1aa0: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 rouble info "
1ab0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1ac0: 20 20 20 20 20 20 20 20 20 20 20 20 46 6f 72 63 Forc
1ad0: 65 20 74 68 65 20 6e 61 6d 65 64 20 73 79 6d 62 e the named symb
1ae0: 6f 6c 20 66 72 6f 6d 20 61 6c 6c 20 6f 72 20 6a ol from all or j
1af0: 75 73 74 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e ust"..trouble in
1b00: 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 20 fo "
1b10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b20: 20 20 20 74 68 65 20 73 70 65 63 69 66 69 65 64 the specified
1b30: 20 70 72 6f 6a 65 63 74 20 74 6f 20 62 65 20 63 project to be c
1b40: 6f 6e 76 65 72 74 65 64 20 61 73 22 0a 09 74 72 onverted as"..tr
1b50: 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 ouble info "
1b60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b70: 20 20 20 20 20 20 20 20 20 20 20 62 72 61 6e 63 branc
1b80: 68 2e 20 42 6f 74 68 20 70 72 6f 6a 65 63 74 20 h. Both project
1b90: 61 6e 64 20 73 79 6d 62 6f 6c 20 6e 61 6d 65 73 and symbol names
1ba0: 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 "..trouble info
1bb0: 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "
1bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1bd0: 61 72 65 20 67 6c 6f 62 20 70 61 74 74 65 72 6e are glob pattern
1be0: 73 2e 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 s."..trouble inf
1bf0: 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e o ""..trouble in
1c00: 66 6f 20 22 20 20 4f 75 74 70 75 74 20 63 6f 6e fo " Output con
1c10: 74 72 6f 6c 20 6f 70 74 69 6f 6e 73 22 0a 09 74 trol options"..t
1c20: 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 22 0a 09 rouble info ""..
1c30: 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 trouble info "
1c40: 20 20 2d 2d 66 6f 73 73 69 6c 20 50 41 54 48 20 --fossil PATH
1c50: 20 20 20 20 20 20 20 20 20 20 20 20 20 53 70 65 Spe
1c60: 63 69 66 79 20 77 68 65 72 65 20 74 6f 20 66 69 cify where to fi
1c70: 6e 64 20 74 68 65 20 66 6f 73 73 69 6c 20 65 78 nd the fossil ex
1c80: 65 63 75 2d 22 0a 09 74 72 6f 75 62 6c 65 20 69 ecu-"..trouble i
1c90: 6e 66 6f 20 22 20 20 20 20 20 20 20 20 20 20 20 nfo "
1ca0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1cb0: 20 20 20 20 74 61 62 6c 65 20 69 66 20 63 76 32 table if cv2
1cc0: 66 6f 73 73 69 6c 20 63 6f 75 6c 64 20 6e 6f 74 fossil could not
1cd0: 20 66 69 6e 64 20 69 74 20 69 6e 22 0a 09 74 72 find it in"..tr
1ce0: 6f 75 62 6c 65 20 69 6e 66 6f 20 22 20 20 20 20 ouble info "
1cf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1d00: 20 20 20 20 20 20 20 20 20 20 20 74 68 65 20 50 the P
1d10: 41 54 48 2e 22 0a 09 74 72 6f 75 62 6c 65 20 69 ATH."..trouble i
1d20: 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 20 nfo ""..trouble
1d30: 69 6e 66 6f 20 22 20 20 44 65 62 75 67 20 6f 70 info " Debug op
1d40: 74 69 6f 6e 73 22 0a 09 74 72 6f 75 62 6c 65 20 tions"..trouble
1d50: 69 6e 66 6f 20 22 22 0a 09 74 72 6f 75 62 6c 65 info ""..trouble
1d60: 20 69 6e 66 6f 20 22 20 20 20 20 2d 2d 64 6f 74 info " --dot
1d70: 73 20 50 41 54 48 20 20 20 20 20 20 20 20 20 20 s PATH
1d80: 20 20 20 20 20 20 57 72 69 74 65 20 74 68 65 20 Write the
1d90: 63 68 61 6e 67 65 73 65 74 20 67 72 61 70 68 73 changeset graphs
1da0: 20 62 65 66 6f 72 65 2c 20 61 66 74 65 72 2c 22 before, after,"
1db0: 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 6f 20 22 ..trouble info "
1dc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1dd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 a
1de0: 6e 64 20 64 75 72 69 6e 67 20 62 72 65 61 6b 69 nd during breaki
1df0: 6e 67 20 74 68 65 20 6f 66 20 63 79 63 6c 65 73 ng the of cycles
1e00: 20 74 6f 20 74 68 65 22 0a 09 74 72 6f 75 62 6c to the"..troubl
1e10: 65 20 69 6e 66 6f 20 22 20 20 20 20 20 20 20 20 e info "
1e20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1e30: 20 20 20 20 20 20 20 64 69 72 65 63 6f 74 72 79 direcotry
1e40: 20 50 41 54 48 2c 20 75 73 69 6e 67 20 47 72 61 PATH, using Gra
1e50: 70 68 56 69 7a 27 73 20 64 6f 74 20 66 6f 72 6d phViz's dot form
1e60: 61 74 22 0a 09 74 72 6f 75 62 6c 65 20 69 6e 66 at"..trouble inf
1e70: 6f 20 22 22 0a 0a 09 23 20 2d 2d 70 72 6f 6a 65 o ""...# --proje
1e80: 63 74 2c 20 2d 2d 63 61 63 68 65 0a 09 23 20 2e ct, --cache..# .
1e90: 2e 2e 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d ....return. }
1ea0: 0a 0a 20 20 20 20 70 72 6f 63 20 50 72 69 6e 74 .. proc Print
1eb0: 56 65 72 73 69 6f 6e 20 7b 7d 20 7b 0a 09 67 6c Version {} {..gl
1ec0: 6f 62 61 6c 20 61 72 67 76 30 0a 09 73 65 74 20 obal argv0..set
1ed0: 76 20 5b 70 61 63 6b 61 67 65 20 72 65 71 75 69 v [package requi
1ee0: 72 65 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 re vc::fossil::i
1ef0: 6d 70 6f 72 74 3a 3a 63 76 73 5d 0a 09 74 72 6f mport::cvs]..tro
1f00: 75 62 6c 65 20 69 6e 66 6f 20 22 24 61 72 67 76 uble info "$argv
1f10: 30 20 76 24 76 22 0a 09 72 65 74 75 72 6e 0a 20 0 v$v"..return.
1f20: 20 20 20 7d 0a 0a 20 20 20 20 70 72 6f 63 20 55 }.. proc U
1f30: 73 61 67 65 20 7b 7b 74 65 78 74 20 7b 7d 7d 7d sage {{text {}}}
1f40: 20 7b 0a 09 67 6c 6f 62 61 6c 20 61 72 67 76 30 {..global argv0
1f50: 0a 09 74 72 6f 75 62 6c 65 20 66 61 74 61 6c 20 ..trouble fatal
1f60: 22 55 73 61 67 65 3a 20 24 61 72 67 76 30 20 24 "Usage: $argv0 $
1f70: 75 73 61 67 65 22 0a 09 69 66 20 7b 24 74 65 78 usage"..if {$tex
1f80: 74 20 6e 65 20 22 22 7d 20 7b 20 74 72 6f 75 62 t ne ""} { troub
1f90: 6c 65 20 66 61 74 61 6c 20 22 24 74 65 78 74 22 le fatal "$text"
1fa0: 20 7d 0a 09 65 78 69 74 20 31 0a 20 20 20 20 7d }..exit 1. }
1fb0: 0a 0a 20 20 20 20 23 20 23 20 23 23 20 23 23 23 .. # # ## ###
1fc0: 20 23 23 23 23 23 20 23 23 23 23 23 23 23 23 20 ##### ########
1fd0: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 20 20 #############.
1fe0: 20 20 23 23 20 49 6e 74 65 72 6e 61 6c 20 6d 65 ## Internal me
1ff0: 74 68 6f 64 73 2c 20 63 6f 6d 6d 61 6e 64 20 6c thods, command l
2000: 69 6e 65 20 70 72 6f 63 65 73 73 69 6e 67 0a 0a ine processing..
2010: 20 20 20 20 74 79 70 65 76 61 72 69 61 62 6c 65 typevariable
2020: 20 75 73 61 67 65 20 20 20 20 20 22 3f 6f 70 74 usage "?opt
2030: 69 6f 6e 20 3f 76 61 6c 75 65 3f 2e 2e 2e 3f 20 ion ?value?...?
2040: 63 76 73 2d 72 65 70 6f 73 69 74 6f 72 79 2d 70 cvs-repository-p
2050: 61 74 68 22 0a 20 20 20 20 74 79 70 65 76 61 72 ath". typevar
2060: 69 61 62 6c 65 20 6e 6f 63 76 73 20 20 20 20 20 iable nocvs
2070: 22 20 20 20 20 20 20 20 54 68 65 20 63 76 73 2d " The cvs-
2080: 72 65 70 6f 73 69 74 6f 72 79 2d 70 61 74 68 20 repository-path
2090: 69 73 20 6d 69 73 73 69 6e 67 2e 22 0a 20 20 20 is missing.".
20a0: 20 74 79 70 65 76 61 72 69 61 62 6c 65 20 62 61 typevariable ba
20b0: 64 6f 70 74 69 6f 6e 20 22 20 20 20 20 20 20 20 doption "
20c0: 42 61 64 20 6f 70 74 69 6f 6e 20 22 0a 20 20 20 Bad option ".
20d0: 20 74 79 70 65 76 61 72 69 61 62 6c 65 20 67 65 typevariable ge
20e0: 74 68 65 6c 70 20 20 20 22 20 20 20 20 20 20 20 thelp "
20f0: 55 73 65 20 2d 2d 68 65 6c 70 20 74 6f 20 67 65 Use --help to ge
2100: 74 20 68 65 6c 70 2e 22 0a 0a 20 20 20 20 70 72 t help.".. pr
2110: 6f 63 20 49 73 4f 70 74 69 6f 6e 20 7b 61 76 20 oc IsOption {av
2120: 5f 20 6f 76 7d 20 7b 0a 09 75 70 76 61 72 20 31 _ ov} {..upvar 1
2130: 20 24 61 76 20 61 72 67 75 6d 65 6e 74 73 20 24 $av arguments $
2140: 6f 76 20 6f 70 74 69 6f 6e 0a 09 73 65 74 20 63 ov option..set c
2150: 61 6e 64 69 64 61 74 65 20 5b 6c 69 6e 64 65 78 andidate [lindex
2160: 20 24 61 72 67 75 6d 65 6e 74 73 20 30 5d 0a 09 $arguments 0]..
2170: 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 6d 61 74 if {![string mat
2180: 63 68 20 2d 2a 20 24 63 61 6e 64 69 64 61 74 65 ch -* $candidate
2190: 5d 7d 20 7b 72 65 74 75 72 6e 20 30 7d 0a 09 73 ]} {return 0}..s
21a0: 65 74 20 6f 70 74 69 6f 6e 20 20 20 20 24 63 61 et option $ca
21b0: 6e 64 69 64 61 74 65 0a 09 73 65 74 20 61 72 67 ndidate..set arg
21c0: 75 6d 65 6e 74 73 20 5b 6c 72 61 6e 67 65 20 24 uments [lrange $
21d0: 61 72 67 75 6d 65 6e 74 73 20 31 20 65 6e 64 5d arguments 1 end]
21e0: 0a 09 72 65 74 75 72 6e 20 31 0a 20 20 20 20 7d ..return 1. }
21f0: 0a 0a 20 20 20 20 70 72 6f 63 20 56 61 6c 75 65 .. proc Value
2200: 20 7b 61 76 7d 20 7b 0a 09 75 70 76 61 72 20 31 {av} {..upvar 1
2210: 20 24 61 76 20 61 72 67 75 6d 65 6e 74 73 0a 09 $av arguments..
2220: 73 65 74 20 76 20 20 20 20 20 20 20 20 20 5b 6c set v [l
2230: 69 6e 64 65 78 20 24 61 72 67 75 6d 65 6e 74 73 index $arguments
2240: 20 30 5d 0a 09 73 65 74 20 61 72 67 75 6d 65 6e 0]..set argumen
2250: 74 73 20 5b 6c 72 61 6e 67 65 20 24 61 72 67 75 ts [lrange $argu
2260: 6d 65 6e 74 73 20 31 20 65 6e 64 5d 0a 09 72 65 ments 1 end]..re
2270: 74 75 72 6e 20 24 76 0a 20 20 20 20 7d 0a 0a 20 turn $v. }..
2280: 20 20 20 23 20 23 20 23 23 20 23 23 23 20 23 23 # # ## ### ##
2290: 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23 ### ######## ###
22a0: 23 23 23 23 23 23 23 23 23 23 0a 20 20 20 20 23 ##########. #
22b0: 23 20 49 6e 74 65 72 6e 61 6c 20 6d 65 74 68 6f # Internal metho
22c0: 64 73 2c 20 73 74 61 74 65 20 76 61 6c 69 64 61 ds, state valida
22d0: 74 69 6f 6e 0a 0a 20 20 20 20 70 72 6f 63 20 56 tion.. proc V
22e0: 61 6c 69 64 61 74 65 20 7b 7d 20 7b 0a 09 23 20 alidate {} {..#
22f0: 50 72 65 76 65 6e 74 20 69 6e 2d 64 65 70 74 68 Prevent in-depth
2300: 20 76 61 6c 69 64 61 74 69 6f 6e 20 69 66 20 74 validation if t
2310: 68 65 20 6f 70 74 69 6f 6e 73 20 77 65 72 65 20 he options were
2320: 61 6c 72 65 61 64 79 20 62 61 64 2e 0a 09 74 72 already bad...tr
2330: 6f 75 62 6c 65 20 61 62 6f 72 74 3f 0a 0a 09 66 ouble abort?...f
2340: 6f 73 73 69 6c 20 20 20 20 20 76 61 6c 69 64 61 ossil valida
2350: 74 65 0a 09 72 65 70 6f 73 69 74 6f 72 79 20 76 te..repository v
2360: 61 6c 69 64 61 74 65 0a 09 73 74 61 74 65 20 20 alidate..state
2370: 20 20 20 20 73 65 74 75 70 0a 0a 09 74 72 6f 75 setup...trou
2380: 62 6c 65 20 61 62 6f 72 74 3f 0a 09 72 65 74 75 ble abort?..retu
2390: 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 rn. }.. #
23a0: 23 20 23 23 20 23 23 23 20 23 23 23 23 23 20 23 # ## ### ##### #
23b0: 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 ####### ########
23c0: 23 23 23 23 23 0a 20 20 20 20 23 23 20 43 6f 6e #####. ## Con
23d0: 66 69 67 75 72 61 74 69 6f 6e 0a 0a 20 20 20 20 figuration..
23e0: 70 72 61 67 6d 61 20 2d 68 61 73 69 6e 73 74 61 pragma -hasinsta
23f0: 6e 63 65 73 20 20 20 6e 6f 20 3b 20 23 20 73 69 nces no ; # si
2400: 6e 67 6c 65 74 6f 6e 0a 20 20 20 20 70 72 61 67 ngleton. prag
2410: 6d 61 20 2d 68 61 73 74 79 70 65 69 6e 66 6f 20 ma -hastypeinfo
2420: 20 20 20 6e 6f 20 3b 20 23 20 6e 6f 20 69 6e 74 no ; # no int
2430: 72 6f 73 70 65 63 74 69 6f 6e 0a 20 20 20 20 70 rospection. p
2440: 72 61 67 6d 61 20 2d 68 61 73 74 79 70 65 64 65 ragma -hastypede
2450: 73 74 72 6f 79 20 6e 6f 20 3b 20 23 20 69 6d 6d stroy no ; # imm
2460: 6f 72 74 61 6c 0a 0a 20 20 20 20 23 20 23 20 23 ortal.. # # #
2470: 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23 23 # ### ##### ####
2480: 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23 23 #### ###########
2490: 23 23 0a 7d 0a 0a 6e 61 6d 65 73 70 61 63 65 20 ##.}..namespace
24a0: 65 76 61 6c 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 eval ::vc::fossi
24b0: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 20 7b l::import::cvs {
24c0: 0a 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 65 . namespace e
24d0: 78 70 6f 72 74 20 6f 70 74 69 6f 6e 0a 20 20 20 xport option.
24e0: 20 6e 61 6d 65 73 70 61 63 65 20 65 76 61 6c 20 namespace eval
24f0: 6f 70 74 69 6f 6e 20 7b 0a 09 6e 61 6d 65 73 70 option {..namesp
2500: 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76 63 3a ace import ::vc:
2510: 3a 74 6f 6f 6c 73 3a 3a 6d 69 73 63 3a 3a 73 74 :tools::misc::st
2520: 72 69 70 74 72 61 69 6c 69 6e 67 73 6c 61 73 68 riptrailingslash
2530: 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f ..namespace impo
2540: 72 74 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a rt ::vc::fossil:
2550: 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 66 6f :import::cvs::fo
2560: 73 73 69 6c 0a 09 6e 61 6d 65 73 70 61 63 65 20 ssil..namespace
2570: 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a 66 6f 73 import ::vc::fos
2580: 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 sil::import::cvs
2590: 3a 3a 70 61 73 73 0a 09 6e 61 6d 65 73 70 61 63 ::pass..namespac
25a0: 65 20 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a 66 e import ::vc::f
25b0: 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 ossil::import::c
25c0: 76 73 3a 3a 70 61 73 73 3a 3a 63 6f 6c 6c 61 72 vs::pass::collar
25d0: 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f ..namespace impo
25e0: 72 74 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a rt ::vc::fossil:
25f0: 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 63 79 :import::cvs::cy
2600: 63 6c 65 62 72 65 61 6b 65 72 0a 09 6e 61 6d 65 clebreaker..name
2610: 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76 space import ::v
2620: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 c::fossil::impor
2630: 74 3a 3a 63 76 73 3a 3a 72 65 70 6f 73 69 74 6f t::cvs::reposito
2640: 72 79 0a 09 6e 61 6d 65 73 70 61 63 65 20 69 6d ry..namespace im
2650: 70 6f 72 74 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 port ::vc::fossi
2660: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a l::import::cvs::
2670: 73 74 61 74 65 0a 09 6e 61 6d 65 73 70 61 63 65 state..namespace
2680: 20 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a 66 6f import ::vc::fo
2690: 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 63 76 ssil::import::cv
26a0: 73 3a 3a 69 6e 74 65 67 72 69 74 79 0a 09 6e 61 s::integrity..na
26b0: 6d 65 73 70 61 63 65 20 65 76 61 6c 20 70 72 6f mespace eval pro
26c0: 6a 65 63 74 20 7b 0a 09 20 20 20 20 6e 61 6d 65 ject {.. name
26d0: 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76 space import ::v
26e0: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 c::fossil::impor
26f0: 74 3a 3a 63 76 73 3a 3a 70 72 6f 6a 65 63 74 3a t::cvs::project:
2700: 3a 73 79 6d 0a 09 7d 0a 09 6e 61 6d 65 73 70 61 :sym..}..namespa
2710: 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76 63 3a 3a ce import ::vc::
2720: 74 6f 6f 6c 73 3a 3a 74 72 6f 75 62 6c 65 0a 09 tools::trouble..
2730: 6e 61 6d 65 73 70 61 63 65 20 69 6d 70 6f 72 74 namespace import
2740: 20 3a 3a 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 6c 6f ::vc::tools::lo
2750: 67 0a 20 20 20 20 7d 0a 7d 0a 0a 23 20 23 20 23 g. }.}..# # #
2760: 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23 23 # ### ##### ####
2770: 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23 23 #### ###########
2780: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 ## #############
2790: 23 23 23 23 23 23 23 23 0a 23 23 20 52 65 61 64 ########.## Read
27a0: 79 0a 0a 70 61 63 6b 61 67 65 20 70 72 6f 76 69 y..package provi
27b0: 64 65 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 de vc::fossil::i
27c0: 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 6f 70 74 69 mport::cvs::opti
27d0: 6f 6e 20 31 2e 30 0a 72 65 74 75 72 6e 0a on 1.0.return.