Artifact e2a62e00ad5a3368dc0cfa5f85b08ca0f7f46da8:
File
tools/cvs2fossil/lib/c2f_psym.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 53 79 6d ########..## Sym
0200: 62 6f 6c 73 20 28 54 61 67 73 2c 20 42 72 61 6e bols (Tags, Bran
0210: 63 68 65 73 29 20 70 65 72 20 70 72 6f 6a 65 63 ches) per projec
0220: 74 2e 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 t...# # ## ### #
0230: 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 #### ######## ##
0240: 23 23 23 23 23 23 23 23 23 23 23 20 23 23 23 23 ########### ####
0250: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
0260: 23 0a 23 23 20 52 65 71 75 69 72 65 6d 65 6e 74 #.## Requirement
0270: 73 0a 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 s..package requi
0280: 72 65 20 54 63 6c 20 38 2e 34 20 20 20 20 20 20 re Tcl 8.4
0290: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02a0: 20 20 20 20 20 20 20 3b 20 23 20 52 65 71 75 69 ; # Requi
02b0: 72 65 64 20 72 75 6e 74 69 6d 65 2e 0a 70 61 63 red runtime..pac
02c0: 6b 61 67 65 20 72 65 71 75 69 72 65 20 73 6e 69 kage require sni
02d0: 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t
02e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
02f0: 20 3b 20 23 20 4f 4f 20 73 79 73 74 65 6d 2e 0a ; # OO system..
0300: 0a 23 20 23 20 23 23 20 23 23 23 20 23 23 23 23 .# # ## ### ####
0310: 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23 23 # ######## #####
0320: 23 23 23 23 23 23 23 23 20 23 23 23 23 23 23 23 ######## #######
0330: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 23 ##############.#
0340: 23 20 0a 0a 73 6e 69 74 3a 3a 74 79 70 65 20 3a # ..snit::type :
0350: 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 :vc::fossil::imp
0360: 6f 72 74 3a 3a 63 76 73 3a 3a 70 72 6f 6a 65 63 ort::cvs::projec
0370: 74 3a 3a 73 79 6d 20 7b 0a 20 20 20 20 23 20 23 t::sym {. # #
0380: 20 23 23 20 23 23 23 20 23 23 23 23 23 20 23 23 ## ### ##### ##
0390: 23 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 ###### #########
03a0: 23 23 23 23 0a 20 20 20 20 23 23 20 50 75 62 6c ####. ## Publ
03b0: 69 63 20 41 50 49 0a 0a 20 20 20 20 63 6f 6e 73 ic API.. cons
03c0: 74 72 75 63 74 6f 72 20 7b 6e 61 6d 65 20 69 64 tructor {name id
03d0: 7d 20 7b 0a 09 73 65 74 20 6d 79 6e 61 6d 65 20 } {..set myname
03e0: 24 6e 61 6d 65 0a 09 73 65 74 20 6d 79 69 64 20 $name..set myid
03f0: 20 20 24 69 64 0a 09 72 65 74 75 72 6e 0a 20 20 $id..return.
0400: 20 20 7d 0a 0a 20 20 20 20 6d 65 74 68 6f 64 20 }.. method
0410: 6e 61 6d 65 20 7b 7d 20 7b 20 72 65 74 75 72 6e name {} { return
0420: 20 24 6d 79 6e 61 6d 65 20 20 20 7d 0a 20 20 20 $myname }.
0430: 20 6d 65 74 68 6f 64 20 69 64 20 20 20 7b 7d 20 method id {}
0440: 7b 20 72 65 74 75 72 6e 20 24 6d 79 69 64 20 7d { return $myid }
0450: 0a 0a 20 20 20 20 23 20 23 20 23 23 20 23 23 23 .. # # ## ###
0460: 20 23 23 23 23 23 20 23 23 23 23 23 23 23 23 20 ##### ########
0470: 23 23 23 23 23 23 23 23 23 23 23 23 23 0a 20 20 #############.
0480: 20 20 23 23 20 53 74 61 74 65 0a 0a 20 20 20 20 ## State..
0490: 76 61 72 69 61 62 6c 65 20 6d 79 6e 61 6d 65 20 variable myname
04a0: 7b 7d 20 3b 20 23 20 54 68 65 20 73 79 6d 62 6f {} ; # The symbo
04b0: 6c 27 73 20 6e 61 6d 65 0a 20 20 20 20 76 61 72 l's name. var
04c0: 69 61 62 6c 65 20 6d 79 69 64 20 20 20 7b 7d 20 iable myid {}
04d0: 3b 20 23 20 52 65 70 6f 73 69 74 6f 72 79 20 77 ; # Repository w
04e0: 69 64 65 20 6e 75 6d 65 72 69 63 20 69 64 20 6f ide numeric id o
04f0: 66 20 74 68 65 20 73 79 6d 62 6f 6c 2e 0a 09 09 f the symbol....
0500: 09 20 23 20 54 68 69 73 20 69 6d 70 6c 69 63 69 . # This implici
0510: 74 6c 79 20 65 6e 63 6f 64 65 73 20 74 68 65 20 tly encodes the
0520: 70 72 6f 6a 65 63 74 20 61 73 0a 09 09 09 20 23 project as.... #
0530: 20 77 65 6c 6c 2e 0a 0a 20 20 20 20 23 20 23 20 well... # #
0540: 23 23 20 23 23 23 20 23 23 23 23 23 20 23 23 23 ## ### ##### ###
0550: 23 23 23 23 23 20 23 23 23 23 23 23 23 23 23 23 ##### ##########
0560: 23 23 23 0a 20 20 20 20 23 23 20 49 6e 74 65 72 ###. ## Inter
0570: 6e 61 6c 20 6d 65 74 68 6f 64 73 0a 0a 20 20 20 nal methods..
0580: 20 23 20 23 20 23 23 20 23 23 23 20 23 23 23 23 # # ## ### ####
0590: 23 20 23 23 23 23 23 23 23 23 20 23 23 23 23 23 # ######## #####
05a0: 23 23 23 23 23 23 23 23 0a 20 20 20 20 23 23 20 ########. ##
05b0: 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 0a 20 Configuration..
05c0: 20 20 20 70 72 61 67 6d 61 20 2d 68 61 73 74 79 pragma -hasty
05d0: 70 65 69 6e 66 6f 20 20 20 20 6e 6f 20 20 3b 20 peinfo no ;
05e0: 23 20 6e 6f 20 74 79 70 65 20 69 6e 74 72 6f 73 # no type intros
05f0: 70 65 63 74 69 6f 6e 0a 20 20 20 20 70 72 61 67 pection. prag
0600: 6d 61 20 2d 68 61 73 69 6e 66 6f 20 20 20 20 20 ma -hasinfo
0610: 20 20 20 6e 6f 20 20 3b 20 23 20 6e 6f 20 6f 62 no ; # no ob
0620: 6a 65 63 74 20 69 6e 74 72 6f 73 70 65 63 74 69 ject introspecti
0630: 6f 6e 0a 20 20 20 20 70 72 61 67 6d 61 20 2d 68 on. pragma -h
0640: 61 73 74 79 70 65 6d 65 74 68 6f 64 73 20 6e 6f astypemethods no
0650: 20 20 3b 20 23 20 74 79 70 65 20 69 73 20 6e 6f ; # type is no
0660: 74 20 72 65 6c 65 76 61 6e 74 2e 0a 20 20 20 20 t relevant..
0670: 70 72 61 67 6d 61 20 2d 73 69 6d 70 6c 65 64 69 pragma -simpledi
0680: 73 70 61 74 63 68 20 79 65 73 20 3b 20 23 20 73 spatch yes ; # s
0690: 69 6d 70 6c 65 20 66 61 73 74 20 64 69 73 70 61 imple fast dispa
06a0: 74 63 68 0a 0a 20 20 20 20 23 20 23 20 23 23 20 tch.. # # ##
06b0: 23 23 23 20 23 23 23 23 23 20 23 23 23 23 23 23 ### ##### ######
06c0: 23 23 20 23 23 23 23 23 23 23 23 23 23 23 23 23 ## #############
06d0: 0a 7d 0a 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 .}..namespace ev
06e0: 61 6c 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a al ::vc::fossil:
06f0: 3a 69 6d 70 6f 72 74 3a 3a 63 76 73 3a 3a 70 72 :import::cvs::pr
0700: 6f 6a 65 63 74 20 7b 0a 20 20 20 20 6e 61 6d 65 oject {. name
0710: 73 70 61 63 65 20 65 78 70 6f 72 74 20 73 79 6d space export sym
0720: 0a 7d 0a 0a 23 20 23 20 23 23 20 23 23 23 20 23 .}..# # ## ### #
0730: 23 23 23 23 20 23 23 23 23 23 23 23 23 20 23 23 #### ######## ##
0740: 23 23 23 23 23 23 23 23 23 23 23 20 23 23 23 23 ########### ####
0750: 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ################
0760: 23 0a 23 23 20 52 65 61 64 79 0a 0a 70 61 63 6b #.## Ready..pack
0770: 61 67 65 20 70 72 6f 76 69 64 65 20 76 63 3a 3a age provide vc::
0780: 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a fossil::import::
0790: 63 76 73 3a 3a 70 72 6f 6a 65 63 74 3a 3a 73 79 cvs::project::sy
07a0: 6d 20 31 2e 30 0a 72 65 74 75 72 6e 0a m 1.0.return.