Artifact 6007a4dcd03cc7c05e767725aef774b5a06c502a:
File
tools/cvs2fossil/lib/c2f_frev.tcl
part of check-in
[67c24820c7]
- Reworked the whole handling of meta data (author, commit message, plus project/branch information), so that revisions now store only the meta id, everything else is stored centrally. All the relevant pieces (author, cmessage, symbols, projects) now also get numeric ids assigned early instead of when being saved to the state. Project ids are loaded from the state now too.
by
aku on
2007-10-14 01:58:07.
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 52 65 76 ########..## Rev
0200: 69 73 69 6f 6e 73 20 70 65 72 20 66 69 6c 65 2e isions per file.
0210: 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 23 23 ..# # ## ### ###
0220: 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23 ## ######## ####
0230: 23 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23 ######### ######
0240: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a ###############.
0250: 23 23 20 52 65 71 75 69 72 65 6d 65 6e 74 73 0a ## Requirements.
0260: 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 .package require
0270: 20 54 63 6c 20 38 2e 34 20 20 20 20 20 20 20 20 Tcl 8.4
0280: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0290: 20 20 20 20 20 3b 20 23 20 52 65 71 75 69 72 65 ; # Require
02a0: 64 20 72 75 6e 74 69 6d 65 2e 0a 70 61 63 6b 61 d runtime..packa
02b0: 67 65 20 72 65 71 75 69 72 65 20 73 6e 69 74 20 ge require snit
02c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ;
02e0: 20 23 20 4f 4f 20 73 79 73 74 65 6d 2e 0a 0a 23 # OO system...#
02f0: 20 23 20 23 23 20 23 23 23 20 23 23 23 23 23 20 # ## ### #####
0300: 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 ######## #######
0310: 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 ###### #########
0320: 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 23 20 ############.##
0330: 0a 0a 73 6e 69 74 3a 3a 74 79 70 65 20 3a 3a 76 ..snit::type ::v
0340: 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 c::fossil::impor
0350: 74 3a 3a 63 76 73 3a 3a 66 69 6c 65 3a 3a 72 65 t::cvs::file::re
0360: 76 20 7b 0a 20 20 20 20 23 20 23 20 23 23 20 23 v {. # # ## #
0370: 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23 23 ## ##### #######
0380: 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 0a # #############.
0390: 20 20 20 20 23 23 20 50 75 62 6c 69 63 20 41 50 ## Public AP
03a0: 49 0a 0a 20 20 20 20 63 6f 6e 73 74 72 75 63 74 I.. construct
03b0: 6f 72 20 7b 72 65 76 6e 72 20 64 61 74 65 20 73 or {revnr date s
03c0: 74 61 74 65 20 74 68 65 66 69 6c 65 7d 20 7b 0a tate thefile} {.
03d0: 09 73 65 74 20 6d 79 72 65 76 6e 72 20 20 20 20 .set myrevnr
03e0: 24 72 65 76 6e 72 0a 09 73 65 74 20 6d 79 64 61 $revnr..set myda
03f0: 74 65 20 20 20 20 20 24 64 61 74 65 0a 09 73 65 te $date..se
0400: 74 20 6d 79 6f 72 69 67 64 61 74 65 20 24 64 61 t myorigdate $da
0410: 74 65 0a 09 73 65 74 20 6d 79 73 74 61 74 65 20 te..set mystate
0420: 20 20 20 24 73 74 61 74 65 0a 09 73 65 74 20 6d $state..set m
0430: 79 66 69 6c 65 20 20 20 20 20 24 74 68 65 66 69 yfile $thefi
0440: 6c 65 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d le..return. }
0450: 0a 0a 20 20 20 20 23 20 42 61 73 69 63 20 70 69 .. # Basic pi
0460: 65 63 65 73 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f eces ___________
0470: 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0a 0a 20 _____________..
0480: 20 20 20 6d 65 74 68 6f 64 20 68 61 73 6d 65 74 method hasmet
0490: 61 20 7b 7d 20 20 20 20 20 7b 20 72 65 74 75 72 a {} { retur
04a0: 6e 20 5b 65 78 70 72 20 7b 24 6d 79 6d 65 74 61 n [expr {$mymeta
04b0: 69 64 20 6e 65 20 22 22 7d 5d 20 7d 0a 20 20 20 id ne ""}] }.
04c0: 20 6d 65 74 68 6f 64 20 73 65 74 6d 65 74 61 20 method setmeta
04d0: 7b 6d 65 74 61 7d 20 7b 20 73 65 74 20 6d 79 6d {meta} { set mym
04e0: 65 74 61 69 64 20 24 6d 65 74 61 20 3b 20 72 65 etaid $meta ; re
04f0: 74 75 72 6e 20 7d 0a 20 20 20 20 6d 65 74 68 6f turn }. metho
0500: 64 20 73 65 74 74 65 78 74 20 7b 74 65 78 74 7d d settext {text}
0510: 20 7b 20 73 65 74 20 6d 79 74 65 78 74 20 20 20 { set mytext
0520: 24 74 65 78 74 20 3b 20 72 65 74 75 72 6e 20 7d $text ; return }
0530: 0a 0a 20 20 20 20 6d 65 74 68 6f 64 20 72 65 76 .. method rev
0540: 6e 72 20 7b 7d 20 7b 20 72 65 74 75 72 6e 20 24 nr {} { return $
0550: 6d 79 72 65 76 6e 72 20 7d 0a 0a 20 20 20 20 23 myrevnr }.. #
0560: 20 42 61 73 69 63 20 70 61 72 65 6e 74 2f 63 68 Basic parent/ch
0570: 69 6c 64 20 6c 69 6e 6b 61 67 65 20 5f 5f 5f 5f ild linkage ____
0580: 5f 5f 5f 5f 5f 5f 0a 0a 20 20 20 20 6d 65 74 68 ______.. meth
0590: 6f 64 20 68 61 73 70 61 72 65 6e 74 20 7b 7d 20 od hasparent {}
05a0: 7b 20 72 65 74 75 72 6e 20 5b 65 78 70 72 20 7b { return [expr {
05b0: 24 6d 79 70 61 72 65 6e 74 20 6e 65 20 22 22 7d $myparent ne ""}
05c0: 5d 20 7d 0a 20 20 20 20 6d 65 74 68 6f 64 20 68 ] }. method h
05d0: 61 73 63 68 69 6c 64 20 20 7b 7d 20 7b 20 72 65 aschild {} { re
05e0: 74 75 72 6e 20 5b 65 78 70 72 20 7b 24 6d 79 63 turn [expr {$myc
05f0: 68 69 6c 64 20 20 6e 65 20 22 22 7d 5d 20 7d 0a hild ne ""}] }.
0600: 0a 20 20 20 20 6d 65 74 68 6f 64 20 73 65 74 70 . method setp
0610: 61 72 65 6e 74 20 7b 70 61 72 65 6e 74 7d 20 7b arent {parent} {
0620: 0a 09 69 66 20 7b 24 6d 79 70 61 72 65 6e 74 20 ..if {$myparent
0630: 6e 65 20 22 22 7d 20 7b 20 74 72 6f 75 62 6c 65 ne ""} { trouble
0640: 20 69 6e 74 65 72 6e 61 6c 20 22 50 61 72 65 6e internal "Paren
0650: 74 20 61 6c 72 65 61 64 79 20 64 65 66 69 6e 65 t already define
0660: 64 22 20 7d 0a 09 73 65 74 20 6d 79 70 61 72 65 d" }..set mypare
0670: 6e 74 20 24 70 61 72 65 6e 74 0a 09 72 65 74 75 nt $parent..retu
0680: 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6d 65 rn. }.. me
0690: 74 68 6f 64 20 73 65 74 63 68 69 6c 64 20 7b 63 thod setchild {c
06a0: 68 69 6c 64 7d 20 7b 0a 09 69 66 20 7b 24 6d 79 hild} {..if {$my
06b0: 63 68 69 6c 64 20 6e 65 20 22 22 7d 20 7b 20 74 child ne ""} { t
06c0: 72 6f 75 62 6c 65 20 69 6e 74 65 72 6e 61 6c 20 rouble internal
06d0: 22 43 68 69 6c 64 20 61 6c 72 65 61 64 79 20 64 "Child already d
06e0: 65 66 69 6e 65 64 22 20 7d 0a 09 73 65 74 20 6d efined" }..set m
06f0: 79 63 68 69 6c 64 20 24 63 68 69 6c 64 0a 09 72 ychild $child..r
0700: 65 74 75 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 eturn. }..
0710: 20 6d 65 74 68 6f 64 20 70 61 72 65 6e 74 20 7b method parent {
0720: 7d 20 7b 20 72 65 74 75 72 6e 20 24 6d 79 70 61 } { return $mypa
0730: 72 65 6e 74 20 7d 0a 20 20 20 20 6d 65 74 68 6f rent }. metho
0740: 64 20 63 68 69 6c 64 20 20 7b 7d 20 7b 20 72 65 d child {} { re
0750: 74 75 72 6e 20 24 6d 79 63 68 69 6c 64 20 20 7d turn $mychild }
0760: 0a 0a 20 20 20 20 23 20 42 72 61 6e 63 68 20 6c .. # Branch l
0770: 69 6e 6b 61 67 65 20 5f 5f 5f 5f 5f 5f 5f 5f 5f inkage _________
0780: 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0a 0a 20 _____________..
0790: 20 20 20 6d 65 74 68 6f 64 20 73 65 74 70 61 72 method setpar
07a0: 65 6e 74 62 72 61 6e 63 68 20 7b 62 72 61 6e 63 entbranch {branc
07b0: 68 7d 20 7b 0a 09 69 66 20 7b 24 6d 79 70 61 72 h} {..if {$mypar
07c0: 65 6e 74 62 72 61 6e 63 68 20 6e 65 20 22 22 7d entbranch ne ""}
07d0: 20 7b 20 74 72 6f 75 62 6c 65 20 69 6e 74 65 72 { trouble inter
07e0: 6e 61 6c 20 22 42 72 61 6e 63 68 20 70 61 72 65 nal "Branch pare
07f0: 6e 74 20 61 6c 72 65 61 64 79 20 64 65 66 69 6e nt already defin
0800: 65 64 22 20 7d 0a 09 73 65 74 20 6d 79 70 61 72 ed" }..set mypar
0810: 65 6e 74 62 72 61 6e 63 68 20 24 62 72 61 6e 63 entbranch $branc
0820: 68 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a h..return. }.
0830: 0a 20 20 20 20 6d 65 74 68 6f 64 20 61 64 64 62 . method addb
0840: 72 61 6e 63 68 20 7b 62 72 61 6e 63 68 7d 20 7b ranch {branch} {
0850: 0a 09 6c 61 70 70 65 6e 64 20 6d 79 62 72 61 6e ..lappend mybran
0860: 63 68 65 73 20 24 62 72 61 6e 63 68 0a 09 23 73 ches $branch..#s
0870: 6f 72 74 65 64 20 69 6e 20 61 73 63 65 6e 64 69 orted in ascendi
0880: 6e 67 20 6f 72 64 65 72 20 62 79 20 62 72 61 6e ng order by bran
0890: 63 68 20 6e 75 6d 62 65 72 3f 0a 09 72 65 74 75 ch number?..retu
08a0: 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6d 65 rn. }.. me
08b0: 74 68 6f 64 20 61 64 64 63 68 69 6c 64 6f 6e 62 thod addchildonb
08c0: 72 61 6e 63 68 20 7b 63 68 69 6c 64 7d 20 7b 0a ranch {child} {.
08d0: 09 6c 61 70 70 65 6e 64 20 6d 79 62 72 61 6e 63 .lappend mybranc
08e0: 68 63 68 69 6c 64 72 65 6e 20 24 63 68 69 6c 64 hchildren $child
08f0: 0a 09 72 65 74 75 72 6e 0a 20 20 20 20 7d 0a 0a ..return. }..
0900: 20 20 20 20 23 20 54 61 67 20 6c 69 6e 6b 61 67 # Tag linkag
0910: 65 20 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f e ______________
0920: 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0a 0a 20 20 20 ___________..
0930: 20 6d 65 74 68 6f 64 20 61 64 64 74 61 67 20 7b method addtag {
0940: 74 61 67 7d 20 7b 0a 09 6c 61 70 70 65 6e 64 20 tag} {..lappend
0950: 6d 79 74 61 67 73 20 24 74 61 67 0a 09 72 65 74 mytags $tag..ret
0960: 75 72 6e 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6d urn. }.. m
0970: 65 74 68 6f 64 20 73 6f 72 74 62 72 61 6e 63 68 ethod sortbranch
0980: 65 73 20 7b 7d 20 7b 0a 09 69 66 20 7b 21 5b 6c es {} {..if {![l
0990: 6c 65 6e 67 74 68 20 24 6d 79 62 72 61 6e 63 68 length $mybranch
09a0: 65 73 5d 7d 20 72 65 74 75 72 6e 0a 0a 09 23 20 es]} return...#
09b0: 53 6f 72 74 20 74 68 65 20 62 72 61 6e 63 68 65 Sort the branche
09c0: 73 20 73 70 61 77 6e 65 64 20 62 79 20 74 68 69 s spawned by thi
09d0: 73 20 72 65 76 69 73 69 6f 6e 20 69 6e 20 63 72 s revision in cr
09e0: 65 61 74 69 6f 6e 0a 09 23 20 6f 72 64 65 72 2e eation..# order.
09f0: 20 54 6f 20 68 65 6c 70 20 69 6e 20 74 68 69 73 To help in this
0a00: 20 6f 75 72 20 66 69 6c 65 20 67 61 76 65 20 61 our file gave a
0a10: 6c 6c 20 62 72 61 6e 63 68 65 73 20 61 20 70 6f ll branches a po
0a20: 73 69 74 69 6f 6e 0a 09 23 20 69 64 2c 20 69 6e sition..# id, in
0a30: 20 6f 72 64 65 72 20 6f 66 20 74 68 65 69 72 20 order of their
0a40: 64 65 66 69 6e 69 74 69 6f 6e 20 62 79 20 74 68 definition by th
0a50: 65 20 52 43 53 20 61 72 63 68 69 76 65 2e 0a 09 e RCS archive...
0a60: 23 0a 09 23 20 54 68 65 20 63 72 65 61 74 69 6f #..# The creatio
0a70: 6e 20 6f 72 64 65 72 20 69 73 20 28 61 70 70 61 n order is (appa
0a80: 72 65 6e 74 6c 79 29 20 74 68 65 20 72 65 76 65 rently) the reve
0a90: 72 73 65 20 6f 66 20 74 68 65 0a 09 23 20 64 65 rse of the..# de
0aa0: 66 69 6e 69 74 69 6f 6e 20 6f 72 64 65 72 2e 20 finition order.
0ab0: 28 49 66 20 61 20 62 72 61 6e 63 68 20 69 73 20 (If a branch is
0ac0: 63 72 65 61 74 65 64 20 74 68 65 6e 20 64 65 6c created then del
0ad0: 65 74 65 64 2c 20 61 0a 09 23 20 6c 61 74 65 72 eted, a..# later
0ae0: 20 62 72 61 6e 63 68 20 63 61 6e 20 62 65 20 61 branch can be a
0af0: 73 73 69 67 6e 65 64 20 74 68 65 20 72 65 63 79 ssigned the recy
0b00: 63 6c 65 64 20 62 72 61 6e 63 68 20 6e 75 6d 62 cled branch numb
0b10: 65 72 3b 0a 09 23 20 74 68 65 72 65 66 6f 72 65 er;..# therefore
0b20: 20 62 72 61 6e 63 68 20 6e 75 6d 62 65 72 73 20 branch numbers
0b30: 61 72 65 20 6e 6f 74 20 61 6e 20 69 6e 64 69 63 are not an indic
0b40: 61 74 69 6f 6e 20 6f 66 20 63 72 65 61 74 69 6f ation of creatio
0b50: 6e 0a 09 23 20 6f 72 64 65 72 2e 29 0a 0a 09 73 n..# order.)...s
0b60: 65 74 20 74 6d 70 20 7b 7d 0a 09 66 6f 72 65 61 et tmp {}..forea
0b70: 63 68 20 62 72 61 6e 63 68 20 24 6d 79 62 72 61 ch branch $mybra
0b80: 6e 63 68 65 73 20 7b 0a 09 20 20 20 20 6c 61 70 nches {.. lap
0b90: 70 65 6e 64 20 74 6d 70 20 5b 6c 69 73 74 20 24 pend tmp [list $
0ba0: 62 72 61 6e 63 68 20 5b 24 62 72 61 6e 63 68 20 branch [$branch
0bb0: 70 6f 73 69 74 69 6f 6e 5d 5d 0a 09 7d 0a 0a 09 position]]..}...
0bc0: 73 65 74 20 6d 79 62 72 61 6e 63 68 65 73 20 7b set mybranches {
0bd0: 7d 0a 09 66 6f 72 65 61 63 68 20 69 74 65 6d 20 }..foreach item
0be0: 5b 6c 73 6f 72 74 20 2d 69 6e 64 65 78 20 31 20 [lsort -index 1
0bf0: 2d 64 65 63 72 65 61 73 69 6e 67 20 24 74 6d 70 -decreasing $tmp
0c00: 5d 20 7b 0a 09 20 20 20 20 73 74 72 75 63 74 3a ] {.. struct:
0c10: 3a 6c 69 73 74 20 61 73 73 69 67 6e 20 24 69 74 :list assign $it
0c20: 65 6d 20 2d 3e 20 62 72 61 6e 63 68 20 70 6f 73 em -> branch pos
0c30: 69 74 69 6f 6e 0a 09 20 20 20 20 6c 61 70 70 65 ition.. lappe
0c40: 6e 64 20 6d 79 62 72 61 6e 63 68 65 73 20 24 62 nd mybranches $b
0c50: 72 61 6e 63 68 0a 09 7d 0a 09 72 65 74 75 72 6e ranch..}..return
0c60: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 20 23 20 . }.. # #
0c70: 23 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23 ## ### ##### ###
0c80: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23 ##### ##########
0c90: 23 23 23 0a 20 20 20 20 23 23 20 54 79 70 65 20 ###. ## Type
0ca0: 41 50 49 0a 0a 20 20 20 20 74 79 70 65 6d 65 74 API.. typemet
0cb0: 68 6f 64 20 69 73 74 72 75 6e 6b 72 65 76 6e 72 hod istrunkrevnr
0cc0: 20 7b 72 65 76 6e 72 7d 20 7b 0a 09 72 65 74 75 {revnr} {..retu
0cd0: 72 6e 20 5b 65 78 70 72 20 7b 5b 6c 6c 65 6e 67 rn [expr {[lleng
0ce0: 74 68 20 5b 73 70 6c 69 74 20 24 72 65 76 6e 72 th [split $revnr
0cf0: 20 2e 5d 5d 20 3d 3d 20 32 7d 5d 0a 20 20 20 20 .]] == 2}].
0d00: 7d 0a 0a 20 20 20 20 74 79 70 65 6d 65 74 68 6f }.. typemetho
0d10: 64 20 69 73 62 72 61 6e 63 68 72 65 76 6e 72 20 d isbranchrevnr
0d20: 7b 72 65 76 6e 72 20 5f 20 62 76 7d 20 7b 0a 09 {revnr _ bv} {..
0d30: 69 66 20 7b 5b 72 65 67 65 78 70 20 24 6d 79 62 if {[regexp $myb
0d40: 72 61 6e 63 68 70 61 74 74 65 72 6e 20 24 72 65 ranchpattern $re
0d50: 76 6e 72 20 2d 3e 20 68 65 61 64 20 74 61 69 6c vnr -> head tail
0d60: 5d 7d 20 7b 0a 09 20 20 20 20 75 70 76 61 72 20 ]} {.. upvar
0d70: 31 20 24 62 76 20 62 72 61 6e 63 68 6e 72 0a 09 1 $bv branchnr..
0d80: 20 20 20 20 73 65 74 20 62 72 61 6e 63 68 6e 72 set branchnr
0d90: 20 24 7b 68 65 61 64 7d 24 74 61 69 6c 0a 09 20 ${head}$tail..
0da0: 20 20 20 72 65 74 75 72 6e 20 31 0a 09 7d 0a 09 return 1..}..
0db0: 72 65 74 75 72 6e 20 30 0a 20 20 20 20 7d 0a 0a return 0. }..
0dc0: 20 20 20 20 74 79 70 65 6d 65 74 68 6f 64 20 32 typemethod 2
0dd0: 62 72 61 6e 63 68 6e 72 20 7b 72 65 76 6e 72 7d branchnr {revnr}
0de0: 20 7b 0a 09 23 20 49 6e 70 75 74 20 69 73 20 61 {..# Input is a
0df0: 20 62 72 61 6e 63 68 20 72 65 76 69 73 69 6f 6e branch revision
0e00: 20 6e 75 6d 62 65 72 2c 20 69 2e 65 2e 20 61 20 number, i.e. a
0e10: 72 65 76 69 73 69 6f 6e 20 6e 75 6d 62 65 72 0a revision number.
0e20: 09 23 20 77 69 74 68 20 61 6e 20 65 76 65 6e 20 .# with an even
0e30: 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6d 70 6f 6e number of compon
0e40: 65 6e 74 73 3b 20 66 6f 72 20 65 78 61 6d 70 6c ents; for exampl
0e50: 65 20 27 32 2e 39 2e 32 2e 31 27 0a 09 23 20 28 e '2.9.2.1'..# (
0e60: 6e 65 76 65 72 20 27 32 2e 39 2e 32 27 20 6e 6f never '2.9.2' no
0e70: 72 20 27 32 2e 39 2e 30 2e 32 27 29 2e 20 20 54 r '2.9.0.2'). T
0e80: 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 he return value
0e90: 69 73 20 74 68 65 0a 09 23 20 62 72 61 6e 63 68 is the..# branch
0ea0: 20 6e 75 6d 62 65 72 20 28 66 6f 72 20 65 78 61 number (for exa
0eb0: 6d 70 6c 65 2c 20 27 32 2e 39 2e 32 27 29 2e 20 mple, '2.9.2').
0ec0: 20 46 6f 72 20 74 72 75 6e 6b 20 72 65 76 69 73 For trunk revis
0ed0: 69 6f 6e 73 2c 0a 09 23 20 6c 69 6b 65 20 27 33 ions,..# like '3
0ee0: 2e 34 27 2c 20 77 65 20 72 65 74 75 72 6e 20 74 .4', we return t
0ef0: 68 65 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e he empty string.
0f00: 0a 0a 09 69 66 20 7b 5b 24 74 79 70 65 20 69 73 ...if {[$type is
0f10: 74 72 75 6e 6b 72 65 76 6e 72 20 24 72 65 76 6e trunkrevnr $revn
0f20: 72 5d 7d 20 7b 0a 09 20 20 20 20 72 65 74 75 72 r]} {.. retur
0f30: 6e 20 22 22 0a 09 7d 0a 09 72 65 74 75 72 6e 20 n ""..}..return
0f40: 5b 6a 6f 69 6e 20 5b 6c 72 61 6e 67 65 20 5b 73 [join [lrange [s
0f50: 70 6c 69 74 20 24 72 65 76 6e 72 20 2e 5d 20 30 plit $revnr .] 0
0f60: 20 65 6e 64 2d 31 5d 20 2e 5d 0a 20 20 20 20 7d end-1] .]. }
0f70: 0a 0a 20 20 20 20 74 79 70 65 6d 65 74 68 6f 64 .. typemethod
0f80: 20 32 62 72 61 6e 63 68 70 61 72 65 6e 74 72 65 2branchparentre
0f90: 76 6e 72 20 7b 62 72 61 6e 63 68 6e 72 7d 20 7b vnr {branchnr} {
0fa0: 0a 09 23 20 43 68 6f 70 20 74 68 65 20 6c 61 73 ..# Chop the las
0fb0: 74 20 73 65 67 6d 65 6e 74 20 6f 66 66 0a 09 72 t segment off..r
0fc0: 65 74 75 72 6e 20 5b 6a 6f 69 6e 20 5b 6c 72 61 eturn [join [lra
0fd0: 6e 67 65 20 5b 73 70 6c 69 74 20 24 62 72 61 6e nge [split $bran
0fe0: 63 68 6e 72 20 2e 5d 20 30 20 65 6e 64 2d 31 5d chnr .] 0 end-1]
0ff0: 20 2e 5d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 .]. }.. #
1000: 20 23 20 23 23 20 23 23 23 20 23 23 23 23 23 20 # ## ### #####
1010: 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 ######## #######
1020: 23 23 23 23 23 23 0a 20 20 20 20 23 23 20 53 74 ######. ## St
1030: 61 74 65 0a 0a 20 20 20 20 74 79 70 65 76 61 72 ate.. typevar
1040: 69 61 62 6c 65 20 6d 79 62 72 61 6e 63 68 70 61 iable mybranchpa
1050: 74 74 65 72 6e 20 7b 5e 28 28 3f 3a 5c 64 2b 5c ttern {^((?:\d+\
1060: 2e 5c 64 2b 5c 2e 29 2b 29 28 3f 3a 30 5c 2e 29 .\d+\.)+)(?:0\.)
1070: 3f 28 5c 64 2b 29 24 7d 0a 20 20 20 20 23 20 46 ?(\d+)$}. # F
1080: 69 72 73 74 20 61 20 6e 6f 6e 7a 65 72 6f 20 65 irst a nonzero e
1090: 76 65 6e 20 6e 75 6d 62 65 72 20 6f 66 20 64 69 ven number of di
10a0: 67 69 74 20 67 72 6f 75 70 73 20 77 69 74 68 20 git groups with
10b0: 74 72 61 69 6c 69 6e 67 20 64 6f 74 0a 20 20 20 trailing dot.
10c0: 20 23 20 43 56 53 20 74 68 65 6e 20 73 74 69 63 # CVS then stic
10d0: 6b 73 20 61 6e 20 65 78 74 72 61 20 30 20 69 6e ks an extra 0 in
10e0: 20 68 65 72 65 3b 20 52 43 53 20 64 6f 65 73 20 here; RCS does
10f0: 6e 6f 74 2e 0a 20 20 20 20 23 20 41 6e 64 20 74 not.. # And t
1100: 68 65 20 6c 61 73 74 20 64 69 67 69 74 20 67 72 he last digit gr
1110: 6f 75 70 2e 0a 0a 20 20 20 20 76 61 72 69 61 62 oup... variab
1120: 6c 65 20 6d 79 72 65 76 6e 72 20 20 20 20 20 7b le myrevnr {
1130: 7d 20 3b 20 23 20 52 65 76 69 73 69 6f 6e 20 6e } ; # Revision n
1140: 75 6d 62 65 72 20 6f 66 20 74 68 65 20 72 65 76 umber of the rev
1150: 69 73 69 6f 6e 2e 0a 20 20 20 20 76 61 72 69 61 ision.. varia
1160: 62 6c 65 20 6d 79 64 61 74 65 20 20 20 20 20 20 ble mydate
1170: 7b 7d 20 3b 20 23 20 54 69 6d 65 73 74 61 6d 70 {} ; # Timestamp
1180: 20 6f 66 20 74 68 65 20 72 65 76 69 73 69 6f 6e of the revision
1190: 2c 20 73 65 63 6f 6e 64 73 20 73 69 6e 63 65 20 , seconds since
11a0: 65 70 6f 63 68 0a 20 20 20 20 76 61 72 69 61 62 epoch. variab
11b0: 6c 65 20 6d 79 6f 72 69 67 64 61 74 65 20 20 7b le myorigdate {
11c0: 7d 20 3b 20 23 20 4f 72 69 67 69 6e 61 6c 20 75 } ; # Original u
11d0: 6e 6d 6f 64 69 66 69 65 64 20 74 69 6d 65 73 74 nmodified timest
11e0: 61 6d 70 2e 0a 20 20 20 20 76 61 72 69 61 62 6c amp.. variabl
11f0: 65 20 6d 79 73 74 61 74 65 20 20 20 20 20 7b 7d e mystate {}
1200: 20 3b 20 23 20 53 74 61 74 65 20 6f 66 20 74 68 ; # State of th
1210: 65 20 72 65 76 69 73 69 6f 6e 2e 0a 20 20 20 20 e revision..
1220: 76 61 72 69 61 62 6c 65 20 6d 79 66 69 6c 65 20 variable myfile
1230: 20 20 20 20 20 7b 7d 20 3b 20 23 20 52 65 66 20 {} ; # Ref
1240: 74 6f 20 74 68 65 20 66 69 6c 65 20 6f 62 6a 65 to the file obje
1250: 63 74 20 74 68 65 20 72 65 76 69 73 69 6f 6e 20 ct the revision
1260: 62 65 6c 6f 6e 67 73 20 74 6f 2e 0a 20 20 20 20 belongs to..
1270: 76 61 72 69 61 62 6c 65 20 6d 79 74 65 78 74 20 variable mytext
1280: 20 20 20 20 20 7b 7d 20 3b 20 23 20 52 61 6e 67 {} ; # Rang
1290: 65 20 6f 66 20 74 68 65 20 28 64 65 6c 74 61 29 e of the (delta)
12a0: 20 74 65 78 74 20 66 6f 72 20 74 68 69 73 20 72 text for this r
12b0: 65 76 69 73 69 6f 6e 20 69 6e 20 74 68 65 20 66 evision in the f
12c0: 69 6c 65 2e 0a 0a 20 20 20 20 76 61 72 69 61 62 ile... variab
12d0: 6c 65 20 6d 79 6d 65 74 61 69 64 20 20 20 20 7b le mymetaid {
12e0: 7d 20 3b 20 23 20 49 64 20 6f 66 20 74 68 65 20 } ; # Id of the
12f0: 6d 65 74 61 20 64 61 74 61 20 67 72 6f 75 70 20 meta data group
1300: 74 68 65 20 72 65 76 69 73 69 6f 6e 0a 09 09 09 the revision....
1310: 20 20 20 20 20 20 23 20 62 65 6c 6f 6e 67 73 20 # belongs
1320: 74 6f 2e 20 54 68 69 73 20 69 73 20 6c 61 74 65 to. This is late
1330: 72 20 75 73 65 64 20 74 6f 20 70 75 74 0a 09 09 r used to put...
1340: 09 20 20 20 20 20 20 23 20 74 68 65 20 66 69 6c . # the fil
1350: 65 20 72 65 76 69 73 69 6f 6e 73 20 69 6e 74 6f e revisions into
1360: 20 70 72 65 6c 69 6d 69 6e 61 72 79 0a 09 09 09 preliminary....
1370: 20 20 20 20 20 20 23 20 63 68 61 6e 67 65 73 65 # changese
1380: 74 73 20 28 61 6b 61 20 70 72 6f 6a 65 63 74 20 ts (aka project
1390: 72 65 76 69 73 69 6f 6e 73 29 2e 0a 09 09 09 20 revisions).....
13a0: 20 20 20 20 20 23 20 54 68 69 73 20 69 64 20 65 # This id e
13b0: 6e 63 6f 64 65 73 20 34 20 70 69 65 63 65 73 20 ncodes 4 pieces
13c0: 6f 66 20 64 61 74 61 2c 0a 09 09 09 20 20 20 20 of data,....
13d0: 20 20 23 20 6e 61 6d 65 6c 79 3a 20 74 68 65 20 # namely: the
13e0: 70 72 6f 6a 65 63 74 20 61 6e 64 20 62 72 61 6e project and bran
13f0: 63 68 20 74 68 65 0a 09 09 09 20 20 20 20 20 20 ch the....
1400: 23 20 72 65 76 69 73 69 6f 6e 20 77 61 73 20 63 # revision was c
1410: 6f 6d 6d 69 74 74 65 64 20 74 6f 2c 20 74 68 65 ommitted to, the
1420: 20 61 75 74 68 6f 72 0a 09 09 09 20 20 20 20 20 author....
1430: 20 23 20 77 68 6f 20 64 69 64 20 74 68 65 20 63 # who did the c
1440: 6f 6d 6d 69 74 2c 20 61 6e 64 20 74 68 65 20 6d ommit, and the m
1450: 65 73 73 61 67 65 0a 09 09 09 20 20 20 20 20 20 essage....
1460: 23 20 75 73 65 64 2e 0a 0a 20 20 20 20 23 20 42 # used... # B
1470: 61 73 69 63 20 70 61 72 65 6e 74 2f 63 68 69 6c asic parent/chil
1480: 64 20 6c 69 6e 6b 61 67 65 20 28 6c 69 6e 65 73 d linkage (lines
1490: 20 6f 66 20 64 65 76 65 6c 6f 70 6d 65 6e 74 29 of development)
14a0: 0a 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 6d .. variable m
14b0: 79 70 61 72 65 6e 74 20 7b 7d 20 3b 20 23 20 52 yparent {} ; # R
14c0: 65 66 20 74 6f 20 70 61 72 65 6e 74 20 72 65 76 ef to parent rev
14d0: 69 73 69 6f 6e 20 6f 62 6a 65 63 74 2e 20 4c 69 ision object. Li
14e0: 6e 6b 20 72 65 71 75 69 72 65 64 20 62 65 63 61 nk required beca
14f0: 75 73 65 20 6f 66 0a 20 20 20 20 23 20 20 20 20 use of. #
1500: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1510: 3b 20 23 20 27 63 76 73 61 64 6d 69 6e 20 2d 6f ; # 'cvsadmin -o
1520: 27 2c 20 77 68 69 63 68 20 63 61 6e 20 63 72 65 ', which can cre
1530: 61 74 65 20 61 72 62 69 74 72 61 72 79 20 67 61 ate arbitrary ga
1540: 70 73 20 69 6e 20 74 68 65 0a 20 20 20 20 23 20 ps in the. #
1550: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1560: 20 20 20 3b 20 23 20 6e 75 6d 62 65 72 69 6e 67 ; # numbering
1570: 20 73 65 71 75 65 6e 63 65 2e 20 54 68 69 73 20 sequence. This
1580: 69 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6c is in the same l
1590: 69 6e 65 20 6f 66 20 64 65 76 65 6c 6f 70 6d 65 ine of developme
15a0: 6e 74 0a 20 20 20 20 23 20 20 20 20 20 20 20 20 nt. #
15b0: 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 23 20 ; #
15c0: 4e 6f 74 65 3a 20 46 6f 72 20 74 68 65 20 66 69 Note: For the fi
15d0: 72 73 74 20 72 65 76 69 73 69 6f 6e 20 6f 6e 20 rst revision on
15e0: 61 20 62 72 61 6e 63 68 20 74 68 65 20 72 65 76 a branch the rev
15f0: 69 73 69 6f 6e 0a 20 20 20 20 23 20 20 20 20 20 ision. #
1600: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b ;
1610: 20 23 20 69 74 20 77 61 73 20 73 70 61 77 6e 65 # it was spawne
1620: 64 20 66 72 6f 6d 20 69 73 20 74 68 65 20 70 61 d from is the pa
1630: 72 65 6e 74 2e 20 4f 6e 6c 79 20 74 68 65 20 72 rent. Only the r
1640: 6f 6f 74 20 72 65 76 69 73 69 6f 6e 0a 20 20 20 oot revision.
1650: 20 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 #
1660: 20 20 20 20 20 20 3b 20 23 20 6f 66 20 6d 79 66 ; # of myf
1670: 69 6c 65 27 73 20 72 65 76 69 73 69 6f 6e 20 74 ile's revision t
1680: 72 65 65 20 68 61 73 20 6e 6f 74 68 69 6e 67 20 ree has nothing
1690: 73 65 74 20 68 65 72 65 2e 0a 20 20 20 20 23 20 set here.. #
16a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
16b0: 20 20 20 3b 20 23 0a 0a 20 20 20 20 76 61 72 69 ; #.. vari
16c0: 61 62 6c 65 20 6d 79 63 68 69 6c 64 20 20 7b 7d able mychild {}
16d0: 20 3b 20 23 20 52 65 66 20 74 6f 20 74 68 65 20 ; # Ref to the
16e0: 70 72 69 6d 61 72 79 20 63 68 69 6c 64 20 72 65 primary child re
16f0: 76 69 73 69 6f 6e 20 6f 62 6a 65 63 74 2c 20 69 vision object, i
1700: 2e 65 2e 20 74 68 65 20 6e 65 78 74 0a 20 20 20 .e. the next.
1710: 20 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 #
1720: 20 20 20 20 20 20 3b 20 23 20 72 65 76 69 73 69 ; # revisi
1730: 6f 6e 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6c on in the same l
1740: 69 6e 65 20 6f 66 20 64 65 76 65 6c 6f 70 6d 65 ine of developme
1750: 6e 74 2e 0a 0a 20 20 20 20 23 20 42 72 61 6e 63 nt... # Branc
1760: 68 20 6c 69 6e 6b 61 67 65 20 5f 5f 5f 5f 5f 5f h linkage ______
1770: 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 0a 0a ______________..
1780: 20 20 20 20 76 61 72 69 61 62 6c 65 20 6d 79 62 variable myb
1790: 72 61 6e 63 68 65 73 20 20 20 20 20 7b 7d 20 3b ranches {} ;
17a0: 20 23 20 4c 69 73 74 20 6f 66 20 74 68 65 20 62 # List of the b
17b0: 72 61 6e 63 68 65 73 20 28 6f 62 6a 73 29 20 73 ranches (objs) s
17c0: 70 61 77 6e 65 64 20 62 79 20 74 68 69 73 20 72 pawned by this r
17d0: 65 76 69 73 69 6f 6e 2e 0a 20 20 20 20 76 61 72 evision.. var
17e0: 69 61 62 6c 65 20 6d 79 70 61 72 65 6e 74 62 72 iable myparentbr
17f0: 61 6e 63 68 20 7b 7d 20 3b 20 23 20 46 6f 72 20 anch {} ; # For
1800: 74 68 65 20 66 69 72 73 74 20 72 65 76 69 73 69 the first revisi
1810: 6f 6e 20 6f 6e 20 61 20 62 72 61 6e 63 68 20 74 on on a branch t
1820: 68 65 20 72 65 6c 65 76 61 6e 74 0a 20 20 20 20 he relevant.
1830: 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 #
1840: 20 20 20 20 20 20 20 20 20 20 20 3b 20 23 20 62 ; # b
1850: 72 61 6e 63 68 20 6f 62 6a 65 63 74 2e 20 54 68 ranch object. Th
1860: 69 73 20 61 6c 73 6f 20 61 6c 6c 6f 77 73 20 75 is also allows u
1870: 73 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69 s to determine i
1880: 66 0a 20 20 20 20 23 20 20 20 20 20 20 20 20 20 f. #
1890: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
18a0: 20 3b 20 23 20 6d 79 70 61 72 65 6e 74 20 69 73 ; # myparent is
18b0: 20 69 6e 20 74 68 65 20 73 61 6d 65 20 4c 4f 44 in the same LOD
18c0: 2c 20 6f 72 20 74 68 65 20 72 65 76 69 73 69 6f , or the revisio
18d0: 6e 20 74 68 65 0a 20 20 20 20 23 20 20 20 20 20 n the. #
18e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
18f0: 20 20 20 20 20 3b 20 23 20 62 72 61 6e 63 68 20 ; # branch
1900: 73 70 61 77 6e 65 64 20 66 72 6f 6d 2e 0a 0a 20 spawned from...
1910: 20 20 20 23 20 4c 69 73 74 20 6f 66 20 74 68 65 # List of the
1920: 20 72 65 76 69 73 69 6f 6e 20 6f 62 6a 65 63 74 revision object
1930: 73 20 6f 66 20 74 68 65 20 66 69 72 73 74 20 63 s of the first c
1940: 6f 6d 6d 69 74 73 20 6f 6e 20 61 6e 79 0a 20 20 ommits on any.
1950: 20 20 23 20 62 72 61 6e 63 68 65 73 20 73 70 61 # branches spa
1960: 77 6e 65 64 20 62 79 20 74 68 69 73 20 72 65 76 wned by this rev
1970: 69 73 69 6f 6e 20 6f 6e 20 77 68 69 63 68 20 63 ision on which c
1980: 6f 6d 6d 69 74 73 20 6f 63 63 75 72 72 65 64 2e ommits occurred.
1990: 0a 20 20 20 20 23 20 54 68 69 73 20 64 65 70 65 . # This depe
19a0: 6e 64 65 6e 63 79 20 69 73 20 6b 65 70 74 20 65 ndency is kept e
19b0: 78 70 6c 69 63 69 74 6c 79 20 62 65 63 61 75 73 xplicitly becaus
19c0: 65 20 6f 74 68 65 72 77 69 73 65 20 61 0a 20 20 e otherwise a.
19d0: 20 20 23 20 72 65 76 69 73 69 6f 6e 2d 6f 6e 6c # revision-onl
19e0: 79 20 74 6f 70 6f 6c 6f 67 69 63 61 6c 20 73 6f y topological so
19f0: 72 74 20 77 6f 75 6c 64 20 6d 69 73 73 20 74 68 rt would miss th
1a00: 65 20 64 65 70 65 6e 64 65 6e 63 79 20 74 68 61 e dependency tha
1a10: 74 0a 20 20 20 20 23 20 65 78 69 73 74 73 20 76 t. # exists v
1a20: 69 61 20 2d 3e 20 6d 79 62 72 61 6e 63 68 65 73 ia -> mybranches
1a30: 2e 0a 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 ... variable
1a40: 6d 79 62 72 61 6e 63 68 63 68 69 6c 64 72 65 6e mybranchchildren
1a50: 20 7b 7d 20 3b 20 23 20 4c 69 73 74 20 6f 66 20 {} ; # List of
1a60: 74 68 65 20 72 65 76 69 73 69 6f 6e 73 20 28 6f the revisions (o
1a70: 62 6a 73 29 20 77 68 69 63 68 20 61 72 65 20 74 bjs) which are t
1a80: 68 65 20 66 69 72 73 74 0a 20 20 20 20 23 20 20 he first. #
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 3b 20 23 20 63 6f ; # co
1ab0: 6d 6d 69 74 73 20 6f 6e 20 61 6e 79 20 6f 66 20 mmits on any of
1ac0: 74 68 65 20 62 72 61 6e 63 68 65 73 20 73 70 61 the branches spa
1ad0: 77 6e 65 64 20 66 72 6f 6d 20 74 68 69 73 0a 20 wned from this.
1ae0: 20 20 20 23 20 20 20 20 20 20 20 20 20 20 20 20 #
1af0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b00: 3b 20 23 20 72 65 76 69 73 69 6f 6e 2e 20 54 68 ; # revision. Th
1b10: 65 20 64 65 70 65 6e 64 65 6e 63 79 20 69 73 20 e dependency is
1b20: 6b 65 70 74 20 65 78 70 6c 69 63 69 74 6c 79 20 kept explicitly
1b30: 74 6f 0a 20 20 20 20 23 20 20 20 20 20 20 20 20 to. #
1b40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1b50: 20 20 20 20 3b 20 23 20 65 6e 73 75 72 65 20 74 ; # ensure t
1b60: 68 61 74 20 61 20 72 65 76 69 73 69 6f 6e 2d 6f hat a revision-o
1b70: 6e 6c 79 20 74 6f 70 6f 6c 6f 67 69 63 61 6c 20 nly topological
1b80: 73 6f 72 74 20 77 69 6c 6c 0a 20 20 20 20 23 20 sort will. #
1b90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
1ba0: 20 20 20 20 20 20 20 20 20 20 20 3b 20 23 20 6e ; # n
1bb0: 6f 74 20 6d 69 73 73 20 69 74 2c 20 61 73 20 69 ot miss it, as i
1bc0: 74 20 6f 74 68 65 72 77 69 73 65 20 65 78 69 73 t otherwise exis
1bd0: 74 73 20 6f 6e 6c 79 20 76 69 61 0a 20 20 20 20 ts only via.
1be0: 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 #
1bf0: 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 23 ; #
1c00: 20 6d 79 62 72 61 6e 63 68 65 73 2e 0a 0a 20 20 mybranches...
1c10: 20 20 23 20 54 61 67 20 6c 69 6e 6b 61 67 65 20 # Tag linkage
1c20: 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f 5f ________________
1c30: 5f 5f 5f 5f 5f 5f 5f 5f 0a 0a 20 20 20 20 76 61 ________.. va
1c40: 72 69 61 62 6c 65 20 6d 79 74 61 67 73 20 7b 7d riable mytags {}
1c50: 20 3b 20 23 20 4c 69 73 74 20 6f 66 20 74 61 67 ; # List of tag
1c60: 73 20 28 6f 62 6a 73 29 20 61 73 73 6f 63 69 61 s (objs) associa
1c70: 74 65 64 20 77 69 74 68 20 74 68 69 73 20 72 65 ted with this re
1c80: 76 69 73 69 6f 6e 2e 0a 0a 20 20 20 20 23 20 23 vision... # #
1c90: 20 23 23 20 23 23 23 20 23 23 23 23 23 20 23 23 ## ### ##### ##
1ca0: 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 ###### #########
1cb0: 23 23 23 23 0a 20 20 20 20 23 23 20 49 6e 74 65 ####. ## Inte
1cc0: 72 6e 61 6c 20 6d 65 74 68 6f 64 73 0a 0a 20 20 rnal methods..
1cd0: 20 20 23 20 23 20 23 23 20 23 23 23 20 23 23 23 # # ## ### ###
1ce0: 23 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23 ## ######## ####
1cf0: 23 23 23 23 23 23 23 23 23 0a 20 20 20 20 23 23 #########. ##
1d00: 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 0a Configuration..
1d10: 20 20 20 20 70 72 61 67 6d 61 20 2d 68 61 73 74 pragma -hast
1d20: 79 70 65 69 6e 66 6f 20 20 20 20 6e 6f 20 20 3b ypeinfo no ;
1d30: 20 23 20 6e 6f 20 74 79 70 65 20 69 6e 74 72 6f # no type intro
1d40: 73 70 65 63 74 69 6f 6e 0a 20 20 20 20 70 72 61 spection. pra
1d50: 67 6d 61 20 2d 68 61 73 69 6e 66 6f 20 20 20 20 gma -hasinfo
1d60: 20 20 20 20 6e 6f 20 20 3b 20 23 20 6e 6f 20 6f no ; # no o
1d70: 62 6a 65 63 74 20 69 6e 74 72 6f 73 70 65 63 74 bject introspect
1d80: 69 6f 6e 0a 20 20 20 20 70 72 61 67 6d 61 20 2d ion. pragma -
1d90: 73 69 6d 70 6c 65 64 69 73 70 61 74 63 68 20 79 simpledispatch y
1da0: 65 73 20 3b 20 23 20 73 69 6d 70 6c 65 20 66 61 es ; # simple fa
1db0: 73 74 20 64 69 73 70 61 74 63 68 0a 0a 20 20 20 st dispatch..
1dc0: 20 23 20 23 20 23 23 20 23 23 23 20 23 23 23 23 # # ## ### ####
1dd0: 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23 23 # ######## #####
1de0: 23 23 23 23 23 23 23 23 0a 7d 0a 0a 6e 61 6d 65 ########.}..name
1df0: 73 70 61 63 65 20 65 76 61 6c 20 3a 3a 76 63 3a space eval ::vc:
1e00: 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a :fossil::import:
1e10: 3a 63 76 73 3a 3a 66 69 6c 65 20 7b 0a 20 20 20 :cvs::file {.
1e20: 20 6e 61 6d 65 73 70 61 63 65 20 65 78 70 6f 72 namespace expor
1e30: 74 20 72 65 76 0a 7d 0a 0a 23 20 23 20 23 23 20 t rev.}..# # ##
1e40: 23 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23 ### ##### ######
1e50: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 ## #############
1e60: 20 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ###############
1e70: 23 23 23 23 23 23 0a 23 23 20 52 65 61 64 79 0a ######.## Ready.
1e80: 0a 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 .package provide
1e90: 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 vc::fossil::imp
1ea0: 6f 72 74 3a 3a 63 76 73 3a 3a 66 69 6c 65 3a 3a ort::cvs::file::
1eb0: 72 65 76 20 31 2e 30 0a 72 65 74 75 72 6e 0a rev 1.0.return.