Artifact d4147a8c46c33b27001ecd97992caf6d9f36464c:
File
tools/lib/fossil.tcl
part of check-in
[45cd12f05a]
- Continuing namespace changes, fossil backend.
by
aku on
2007-09-13 06:03:30.
0000: 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d # --------------
0010: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0020: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0030: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0040: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
0050: 23 20 52 65 70 6f 73 69 74 6f 72 79 20 6d 61 6e # Repository man
0060: 61 67 65 6d 65 6e 74 20 28 46 4f 53 53 49 4c 29 agement (FOSSIL)
0070: 0a 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..# ------------
0080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0090: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
00c0: 2d 0a 23 20 52 65 71 75 69 72 65 6d 65 6e 74 73 -.# Requirements
00d0: 0a 0a 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 ..package requir
00e0: 65 20 54 63 6c 20 38 2e 34 0a 70 61 63 6b 61 67 e Tcl 8.4.packag
00f0: 65 20 72 65 71 75 69 72 65 20 76 63 3a 3a 74 6f e require vc::to
0100: 6f 6c 73 3a 3a 6c 6f 67 20 3b 20 23 20 55 73 65 ols::log ; # Use
0110: 72 20 66 65 65 64 62 61 63 6b 0a 0a 6e 61 6d 65 r feedback..name
0120: 73 70 61 63 65 20 65 76 61 6c 20 3a 3a 76 63 3a space eval ::vc:
0130: 3a 66 6f 73 73 69 6c 3a 3a 77 73 20 7b 0a 20 20 :fossil::ws {.
0140: 20 20 76 63 3a 3a 74 6f 6f 6c 73 3a 3a 6c 6f 67 vc::tools::log
0150: 3a 3a 73 79 73 74 65 6d 20 66 6f 73 73 69 6c 0a ::system fossil.
0160: 20 20 20 20 6e 61 6d 65 73 70 61 63 65 20 69 6d namespace im
0170: 70 6f 72 74 20 3a 3a 76 63 3a 3a 74 6f 6f 6c 73 port ::vc::tools
0180: 3a 3a 6c 6f 67 3a 3a 77 72 69 74 65 0a 7d 0a 0a ::log::write.}..
0190: 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d # --------------
01a0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a ---------------.
01e0: 23 20 41 50 49 0a 0a 23 20 44 65 66 69 6e 65 20 # API..# Define
01f0: 72 65 70 6f 73 69 74 6f 72 79 20 66 69 6c 65 2c repository file,
0200: 20 61 6e 64 20 63 6f 6e 6e 65 63 74 20 74 6f 20 and connect to
0210: 77 6f 72 6b 73 70 61 63 65 20 69 6e 20 43 57 44 workspace in CWD
0220: 2e 0a 0a 70 72 6f 63 20 3a 3a 76 63 3a 3a 66 6f ...proc ::vc::fo
0230: 73 73 69 6c 3a 3a 77 73 3a 3a 6e 65 77 20 7b 7d ssil::ws::new {}
0240: 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 {. variable
0250: 66 72 20 20 20 20 20 5b 66 69 6c 65 20 6e 6f 72 fr [file nor
0260: 6d 61 6c 69 7a 65 20 5b 66 69 6c 65 75 74 69 6c malize [fileutil
0270: 3a 3a 74 65 6d 70 66 69 6c 65 20 69 6d 70 6f 72 ::tempfile impor
0280: 74 32 5f 66 73 6c 5f 72 70 5f 5d 5d 0a 20 20 20 t2_fsl_rp_]].
0290: 20 76 61 72 69 61 62 6c 65 20 66 6f 73 73 69 6c variable fossil
02a0: 0a 0a 20 20 20 20 23 20 70 77 64 20 3d 20 77 6f .. # pwd = wo
02b0: 72 6b 73 70 61 63 65 0a 20 20 20 20 65 78 65 63 rkspace. exec
02c0: 20 24 66 6f 73 73 69 6c 20 6e 65 77 20 20 24 66 $fossil new $f
02d0: 72 20 3b 20 23 20 63 72 65 61 74 65 20 61 6e 64 r ; # create and
02e0: 0a 20 20 20 20 65 78 65 63 20 24 66 6f 73 73 69 . exec $fossi
02f0: 6c 20 6f 70 65 6e 20 24 66 72 20 3b 20 23 20 63 l open $fr ; # c
0300: 6f 6e 6e 65 63 74 0a 0a 20 20 20 20 77 72 69 74 onnect.. writ
0310: 65 20 30 20 66 6f 73 73 69 6c 20 22 52 65 70 6f e 0 fossil "Repo
0320: 73 69 74 6f 72 79 3a 20 24 66 72 22 0a 0a 20 20 sitory: $fr"..
0330: 20 20 72 65 74 75 72 6e 20 24 66 72 0a 7d 0a 0a return $fr.}..
0340: 23 20 4d 6f 76 65 20 67 65 6e 65 72 61 74 65 64 # Move generated
0350: 20 66 6f 73 73 69 6c 20 72 65 70 6f 73 69 74 6f fossil reposito
0360: 72 79 20 74 6f 20 66 69 6e 61 6c 20 64 65 73 74 ry to final dest
0370: 69 6e 61 74 69 6f 6e 0a 0a 70 72 6f 63 20 3a 3a ination..proc ::
0380: 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 77 73 3a 3a vc::fossil::ws::
0390: 64 65 73 74 69 6e 61 74 69 6f 6e 20 7b 70 61 74 destination {pat
03a0: 68 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c h} {. variabl
03b0: 65 20 66 72 0a 20 20 20 20 66 69 6c 65 20 72 65 e fr. file re
03c0: 6e 61 6d 65 20 24 66 72 20 24 70 61 74 68 0a 20 name $fr $path.
03d0: 20 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 6e 61 6d return.}..nam
03e0: 65 73 70 61 63 65 20 65 76 61 6c 20 3a 3a 76 63 espace eval ::vc
03f0: 3a 3a 66 6f 73 73 69 6c 3a 3a 77 73 20 7b 0a 20 ::fossil::ws {.
0400: 20 20 20 23 20 52 65 70 6f 73 69 74 6f 72 79 20 # Repository
0410: 66 69 6c 65 0a 20 20 20 20 76 61 72 69 61 62 6c file. variabl
0420: 65 20 66 72 20 7b 7d 0a 0a 20 20 20 20 23 20 46 e fr {}.. # F
0430: 6f 73 73 69 6c 20 61 70 70 6c 69 63 61 74 69 6f ossil applicatio
0440: 6e 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 66 n. variable f
0450: 6f 73 73 69 6c 20 5b 61 75 74 6f 5f 65 78 65 63 ossil [auto_exec
0460: 6f 6b 20 66 6f 73 73 69 6c 5d 0a 0a 20 20 20 20 ok fossil]..
0470: 23 20 44 65 62 75 67 20 74 68 65 20 63 6f 6d 6d # Debug the comm
0480: 69 74 20 63 6f 6d 6d 61 6e 64 20 28 77 72 69 74 it command (writ
0490: 65 20 61 20 54 63 6c 20 73 63 72 69 70 74 20 63 e a Tcl script c
04a0: 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 20 20 ontaining the.
04b0: 20 20 23 20 65 78 61 63 74 20 63 6f 6d 6d 61 6e # exact comman
04c0: 64 20 75 73 65 64 29 2e 20 41 6e 64 20 74 68 65 d used). And the
04d0: 20 66 69 6c 65 20 74 68 65 20 64 61 74 61 20 67 file the data g
04e0: 6f 65 73 20 74 6f 2e 0a 20 20 20 20 76 61 72 69 oes to.. vari
04f0: 61 62 6c 65 20 64 65 62 75 67 63 6f 6d 6d 69 74 able debugcommit
0500: 20 30 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 0. variable
0510: 64 63 66 69 6c 65 20 20 20 20 20 20 7b 7d 0a 7d dcfile {}.}
0520: 0a 0a 70 72 6f 63 20 3a 3a 76 63 3a 3a 66 6f 73 ..proc ::vc::fos
0530: 73 69 6c 3a 3a 77 73 3a 3a 64 65 62 75 67 63 6f sil::ws::debugco
0540: 6d 6d 69 74 20 7b 66 6c 61 67 7d 20 7b 0a 20 20 mmit {flag} {.
0550: 20 20 76 61 72 69 61 62 6c 65 20 64 65 62 75 67 variable debug
0560: 63 6f 6d 6d 69 74 20 24 66 6c 61 67 0a 20 20 20 commit $flag.
0570: 20 69 66 20 7b 24 64 65 62 75 67 63 6f 6d 6d 69 if {$debugcommi
0580: 74 7d 20 7b 0a 09 76 61 72 69 61 62 6c 65 20 64 t} {..variable d
0590: 63 66 69 6c 65 20 5b 66 69 6c 65 20 6e 6f 72 6d cfile [file norm
05a0: 61 6c 69 7a 65 20 63 76 73 32 66 6f 73 73 69 6c alize cvs2fossil
05b0: 5f 63 6f 6d 6d 69 74 2e 74 63 6c 5d 0a 20 20 20 _commit.tcl].
05c0: 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 0a 7d 0a }. return.}.
05d0: 0a 70 72 6f 63 20 3a 3a 76 63 3a 3a 66 6f 73 73 .proc ::vc::foss
05e0: 69 6c 3a 3a 77 73 3a 3a 63 6f 6d 6d 69 74 20 7b il::ws::commit {
05f0: 62 72 65 61 6b 20 61 70 70 6e 61 6d 65 20 6e 6f break appname no
0600: 73 69 67 6e 20 6d 65 74 61 20 69 67 6e 6f 72 65 sign meta ignore
0610: 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 } {. variable
0620: 20 66 6f 73 73 69 6c 0a 20 20 20 20 76 61 72 69 fossil. vari
0630: 61 62 6c 65 20 6c 61 73 74 75 75 69 64 0a 20 20 able lastuuid.
0640: 20 20 76 61 72 69 61 62 6c 65 20 64 65 62 75 67 variable debug
0650: 63 6f 6d 6d 69 74 0a 20 20 20 20 76 61 72 69 61 commit. varia
0660: 62 6c 65 20 64 63 66 69 6c 65 0a 0a 20 20 20 20 ble dcfile..
0670: 23 20 43 6f 6d 6d 69 74 20 74 68 65 20 63 75 72 # Commit the cur
0680: 72 65 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 rent state of th
0690: 65 20 77 6f 72 6b 73 70 61 63 65 2e 20 53 63 61 e workspace. Sca
06a0: 6e 20 66 6f 72 20 6e 65 77 20 61 6e 64 0a 20 20 n for new and.
06b0: 20 20 23 20 72 65 6d 6f 76 65 64 20 66 69 6c 65 # removed file
06c0: 73 20 61 6e 64 20 69 73 73 75 65 20 74 68 65 20 s and issue the
06d0: 61 70 70 72 6f 70 72 69 61 74 65 20 66 6f 73 73 appropriate foss
06e0: 69 6c 20 61 64 64 2f 72 6d 20 63 6f 6d 6d 61 6e il add/rm comman
06f0: 64 73 0a 20 20 20 20 23 20 62 65 66 6f 72 65 20 ds. # before
0700: 61 63 74 75 61 6c 6c 79 20 63 6f 6d 69 74 74 69 actually comitti
0710: 6e 67 2e 0a 0a 20 20 20 20 23 20 4d 6f 64 69 66 ng... # Modif
0720: 69 65 64 2f 52 65 6d 6f 76 65 64 20 66 69 6c 65 ied/Removed file
0730: 73 20 66 69 72 73 74 2c 20 74 68 61 74 20 77 61 s first, that wa
0740: 79 20 74 68 65 72 65 20 77 6f 6e 27 74 20 62 65 y there won't be
0750: 20 61 6e 79 20 41 44 44 45 44 0a 20 20 20 20 23 any ADDED. #
0760: 20 69 6e 64 69 63 61 74 6f 72 73 2e 20 4e 6f 72 indicators. Nor
0770: 20 52 45 4d 4f 56 45 44 2c 20 6f 6e 6c 79 20 45 REMOVED, only E
0780: 44 49 54 45 44 2e 20 52 65 6d 6f 76 65 64 20 66 DITED. Removed f
0790: 69 6c 65 73 20 73 68 6f 77 20 75 70 20 61 73 0a iles show up as.
07a0: 20 20 20 20 23 20 45 44 49 54 45 44 20 77 68 69 # EDITED whi
07b0: 6c 65 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 le they are not
07c0: 72 65 67 69 73 74 65 72 65 64 20 61 73 20 72 65 registered as re
07d0: 6d 6f 76 65 64 2e 0a 0a 20 20 20 20 73 65 74 20 moved... set
07e0: 61 64 64 65 64 20 20 20 30 0a 20 20 20 20 73 65 added 0. se
07f0: 74 20 72 65 6d 6f 76 65 64 20 30 0a 20 20 20 20 t removed 0.
0800: 73 65 74 20 63 68 61 6e 67 65 64 20 30 0a 0a 20 set changed 0..
0810: 20 20 20 66 6f 72 65 61 63 68 20 6c 69 6e 65 20 foreach line
0820: 5b 73 70 6c 69 74 20 5b 65 78 65 63 20 24 66 6f [split [exec $fo
0830: 73 73 69 6c 20 63 68 61 6e 67 65 73 5d 20 5c 6e ssil changes] \n
0840: 5d 20 7b 0a 09 72 65 67 73 75 62 20 7b 5e 5c 73 ] {..regsub {^\s
0850: 2a 45 44 49 54 45 44 5c 73 2a 7d 20 24 6c 69 6e *EDITED\s*} $lin
0860: 65 20 7b 7d 20 70 61 74 68 0a 09 69 66 20 7b 5b e {} path..if {[
0870: 49 47 4e 4f 52 45 20 24 69 67 6e 6f 72 65 20 24 IGNORE $ignore $
0880: 70 61 74 68 5d 7d 20 63 6f 6e 74 69 6e 75 65 0a path]} continue.
0890: 0a 09 69 66 20 7b 21 5b 66 69 6c 65 20 65 78 69 ..if {![file exi
08a0: 73 74 73 20 24 70 61 74 68 5d 7d 20 7b 0a 09 20 sts $path]} {..
08b0: 20 20 20 65 78 65 63 20 24 66 6f 73 73 69 6c 20 exec $fossil
08c0: 72 6d 20 24 70 61 74 68 0a 09 20 20 20 20 69 6e rm $path.. in
08d0: 63 72 20 72 65 6d 6f 76 65 64 0a 09 20 20 20 20 cr removed..
08e0: 77 72 69 74 65 20 32 20 66 6f 73 73 69 6c 20 22 write 2 fossil "
08f0: 2d 20 20 24 70 61 74 68 22 0a 09 7d 20 65 6c 73 - $path"..} els
0900: 65 20 7b 0a 09 20 20 20 20 69 6e 63 72 20 63 68 e {.. incr ch
0910: 61 6e 67 65 64 0a 09 20 20 20 20 77 72 69 74 65 anged.. write
0920: 20 32 20 66 6f 73 73 69 6c 20 22 2a 20 20 24 70 2 fossil "* $p
0930: 61 74 68 22 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 ath"..}. }..
0940: 20 20 20 23 20 4e 6f 77 20 6c 6f 6f 6b 20 66 6f # Now look fo
0950: 72 20 75 6e 72 65 67 69 73 74 65 72 65 64 20 61 r unregistered a
0960: 64 64 65 64 20 66 69 6c 65 73 2e 0a 0a 20 20 20 dded files...
0970: 20 66 6f 72 65 61 63 68 20 70 61 74 68 20 5b 73 foreach path [s
0980: 70 6c 69 74 20 5b 65 78 65 63 20 24 66 6f 73 73 plit [exec $foss
0990: 69 6c 20 65 78 74 72 61 5d 20 5c 6e 5d 20 7b 0a il extra] \n] {.
09a0: 09 69 66 20 7b 5b 49 47 4e 4f 52 45 20 24 69 67 .if {[IGNORE $ig
09b0: 6e 6f 72 65 20 24 70 61 74 68 5d 7d 20 63 6f 6e nore $path]} con
09c0: 74 69 6e 75 65 0a 09 65 78 65 63 20 24 66 6f 73 tinue..exec $fos
09d0: 73 69 6c 20 61 64 64 20 24 70 61 74 68 0a 09 69 sil add $path..i
09e0: 6e 63 72 20 61 64 64 65 64 0a 09 77 72 69 74 65 ncr added..write
09f0: 20 32 20 66 6f 73 73 69 6c 20 22 2b 20 20 24 70 2 fossil "+ $p
0a00: 61 74 68 22 0a 20 20 20 20 7d 0a 0a 20 20 20 20 ath". }..
0a10: 23 20 4e 6f 77 20 63 6f 6d 6d 69 74 2c 20 75 73 # Now commit, us
0a20: 69 6e 67 20 74 68 65 20 70 72 6f 76 69 64 65 64 ing the provided
0a30: 20 6d 65 74 61 20 64 61 74 61 2c 20 61 6e 64 20 meta data, and
0a40: 63 61 70 74 75 72 65 20 74 68 65 20 75 75 69 64 capture the uuid
0a50: 0a 20 20 20 20 23 20 6f 66 20 74 68 65 20 6e 65 . # of the ne
0a60: 77 20 62 61 73 65 6c 69 6e 65 2e 0a 0a 20 20 20 w baseline...
0a70: 20 66 6f 72 65 61 63 68 20 7b 75 73 65 72 20 6d foreach {user m
0a80: 65 73 73 61 67 65 20 74 73 74 61 6d 70 7d 20 24 essage tstamp} $
0a90: 6d 65 74 61 20 62 72 65 61 6b 0a 0a 20 20 20 20 meta break..
0aa0: 73 65 74 20 6d 65 73 73 61 67 65 20 5b 6a 6f 69 set message [joi
0ab0: 6e 20 5b 6c 69 73 74 20 5c 0a 09 09 09 20 20 20 n [list \....
0ac0: 22 2d 2d 20 4f 72 69 67 69 6e 61 6c 6c 79 20 62 "-- Originally b
0ad0: 79 20 24 75 73 65 72 20 40 20 24 74 73 74 61 6d y $user @ $tstam
0ae0: 70 22 20 5c 0a 09 09 09 20 20 20 22 2d 2d 20 49 p" \.... "-- I
0af0: 6d 70 6f 72 74 65 64 20 62 79 20 24 61 70 70 6e mported by $appn
0b00: 61 6d 65 22 20 5c 0a 09 09 09 20 20 20 24 6d 65 ame" \.... $me
0b10: 73 73 61 67 65 5d 20 5c 6e 5d 0a 0a 20 20 20 20 ssage] \n]..
0b20: 69 66 20 7b 24 6e 6f 73 69 67 6e 7d 20 7b 0a 09 if {$nosign} {..
0b30: 73 65 74 20 63 6d 64 20 5b 6c 69 73 74 20 65 78 set cmd [list ex
0b40: 65 63 20 24 66 6f 73 73 69 6c 20 63 6f 6d 6d 69 ec $fossil commi
0b50: 74 20 2d 6d 20 24 6d 65 73 73 61 67 65 20 2d 2d t -m $message --
0b60: 6e 6f 73 69 67 6e 5d 0a 20 20 20 20 7d 20 65 6c nosign]. } el
0b70: 73 65 20 7b 0a 09 73 65 74 20 63 6d 64 20 5b 6c se {..set cmd [l
0b80: 69 73 74 20 65 78 65 63 20 24 66 6f 73 73 69 6c ist exec $fossil
0b90: 20 63 6f 6d 6d 69 74 20 2d 6d 20 24 6d 65 73 73 commit -m $mess
0ba0: 61 67 65 5d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 age]. }..
0bb0: 69 66 20 7b 24 64 65 62 75 67 63 6f 6d 6d 69 74 if {$debugcommit
0bc0: 7d 20 7b 0a 09 66 69 6c 65 75 74 69 6c 3a 3a 77 } {..fileutil::w
0bd0: 72 69 74 65 46 69 6c 65 20 24 64 63 66 69 6c 65 riteFile $dcfile
0be0: 20 22 5c 23 21 74 63 6c 73 68 5c 6e 24 63 6d 64 "\#!tclsh\n$cmd
0bf0: 5c 6e 22 0a 20 20 20 20 7d 0a 0a 20 20 20 20 23 \n". }.. #
0c00: 20 53 74 6f 70 2c 20 64 6f 20 6e 6f 74 20 61 63 Stop, do not ac
0c10: 74 75 61 6c 6c 79 20 63 6f 6d 6d 69 74 2e 0a 20 tually commit..
0c20: 20 20 20 69 66 20 7b 24 62 72 65 61 6b 7d 20 72 if {$break} r
0c30: 65 74 75 72 6e 0a 0a 20 20 20 20 69 66 20 7b 5b eturn.. if {[
0c40: 63 61 74 63 68 20 7b 0a 09 65 76 61 6c 20 24 63 catch {..eval $c
0c50: 6d 64 0a 20 20 20 20 7d 20 6c 69 6e 65 5d 7d 20 md. } line]}
0c60: 7b 0a 09 69 66 20 7b 21 5b 73 74 72 69 6e 67 20 {..if {![string
0c70: 6d 61 74 63 68 20 22 2a 6e 6f 74 68 69 6e 67 20 match "*nothing
0c80: 68 61 73 20 63 68 61 6e 67 65 64 2a 22 20 24 6c has changed*" $l
0c90: 69 6e 65 5d 7d 20 7b 0a 09 20 20 20 20 72 65 74 ine]} {.. ret
0ca0: 75 72 6e 20 2d 63 6f 64 65 20 65 72 72 6f 72 20 urn -code error
0cb0: 24 6c 69 6e 65 0a 09 7d 0a 0a 09 23 20 27 4e 6f $line..}...# 'No
0cc0: 74 68 69 6e 67 20 63 68 61 6e 67 65 64 27 20 63 thing changed' c
0cd0: 61 6e 20 68 61 70 70 65 6e 20 66 6f 72 20 63 68 an happen for ch
0ce0: 61 6e 67 65 73 65 74 73 20 63 6f 6e 74 61 69 6e angesets contain
0cf0: 69 6e 67 20 6f 6e 6c 79 0a 09 23 20 64 65 61 64 ing only..# dead
0d00: 2d 66 69 72 73 74 20 72 65 76 69 73 69 6f 6e 73 -first revisions
0d10: 20 6f 66 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 of one or more
0d20: 66 69 6c 65 73 2e 20 46 6f 72 20 66 6f 73 73 69 files. For fossi
0d30: 6c 20 77 65 0a 09 23 20 72 65 2d 75 73 65 20 74 l we..# re-use t
0d40: 68 65 20 6c 61 73 74 20 62 61 73 65 6c 69 6e 65 he last baseline
0d50: 2e 20 54 4f 44 4f 3a 20 4d 61 72 6b 20 74 68 65 . TODO: Mark the
0d60: 6d 20 61 73 20 62 72 61 6e 63 68 70 6f 69 6e 74 m as branchpoint
0d70: 2c 0a 09 23 20 61 6e 64 20 66 6f 72 20 77 68 61 ,..# and for wha
0d80: 74 20 66 69 6c 65 2e 0a 0a 09 77 72 69 74 65 20 t file....write
0d90: 31 20 66 6f 73 73 69 6c 20 22 55 4e 43 48 41 4e 1 fossil "UNCHAN
0da0: 47 45 44 2c 20 6b 65 65 70 69 6e 67 20 6c 61 73 GED, keeping las
0db0: 74 22 0a 0a 09 72 65 74 75 72 6e 20 5b 6c 69 73 t"...return [lis
0dc0: 74 20 24 6c 61 73 74 75 75 69 64 20 30 20 30 20 t $lastuuid 0 0
0dd0: 30 5d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65 0]. }.. se
0de0: 74 20 6c 69 6e 65 20 5b 73 74 72 69 6e 67 20 74 t line [string t
0df0: 72 69 6d 20 24 6c 69 6e 65 5d 0a 20 20 20 20 72 rim $line]. r
0e00: 65 67 73 75 62 20 2d 6e 6f 63 61 73 65 20 2d 2d egsub -nocase --
0e10: 20 7b 5e 5c 73 2a 4e 65 77 5f 56 65 72 73 69 6f {^\s*New_Versio
0e20: 6e 3a 5c 73 2a 7d 20 24 6c 69 6e 65 20 7b 7d 20 n:\s*} $line {}
0e30: 75 75 69 64 0a 0a 20 20 20 20 73 65 74 20 6c 61 uuid.. set la
0e40: 73 74 75 75 69 64 20 24 75 75 69 64 0a 20 20 20 stuuid $uuid.
0e50: 20 72 65 74 75 72 6e 20 5b 6c 69 73 74 20 24 75 return [list $u
0e60: 75 69 64 20 24 61 64 64 65 64 20 24 72 65 6d 6f uid $added $remo
0e70: 76 65 64 20 24 63 68 61 6e 67 65 64 5d 0a 7d 0a ved $changed].}.
0e80: 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .# -------------
0e90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0eb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0ec0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0ed0: 0a 23 20 49 6e 74 65 72 6e 61 6c 20 68 65 6c 70 .# Internal help
0ee0: 65 72 20 63 6f 6d 6d 61 6e 64 73 0a 0a 70 72 6f er commands..pro
0ef0: 63 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a c ::vc::fossil::
0f00: 77 73 3a 3a 49 47 4e 4f 52 45 20 7b 69 67 6e 6f ws::IGNORE {igno
0f10: 72 65 20 70 61 74 68 7d 20 7b 0a 20 20 20 20 72 re path} {. r
0f20: 65 74 75 72 6e 20 5b 75 70 6c 65 76 65 6c 20 23 eturn [uplevel #
0f30: 30 20 5b 6c 69 6e 73 65 72 74 20 24 69 67 6e 6f 0 [linsert $igno
0f40: 72 65 20 65 6e 64 20 24 70 61 74 68 5d 5d 0a 7d re end $path]].}
0f50: 0a 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..# ------------
0f60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0f90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0fa0: 2d 0a 23 20 52 65 61 64 79 0a 0a 70 61 63 6b 61 -.# Ready..packa
0fb0: 67 65 20 70 72 6f 76 69 64 65 20 76 63 3a 3a 66 ge provide vc::f
0fc0: 6f 73 73 69 6c 3a 3a 77 73 20 31 2e 30 0a 72 65 ossil::ws 1.0.re
0fd0: 74 75 72 6e 0a turn.