Artifact aa215e83ab0d99d2badb25987102602565e62679:
File
tools/lib/import_statistics.tcl
part of check-in
[b504674c5f]
- Fixed problems with the untested statistics module.
Moved cset <-> uuid map out of cvs to control layer, separate package.
Currently not really useful, will be needed when handling cvs branches.
Moved some user feedback around, and the import control too.
by
aku on
2007-09-15 03:18:31.
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 4d 61 6e 61 67 65 6d 65 6e 74 20 6f 66 20 # Management of
0060: 73 74 61 74 69 73 74 69 63 73 20 66 6f 72 20 61 statistics for a
0070: 6e 20 69 6d 70 6f 72 74 20 72 75 6e 2e 0a 0a 23 n import run...#
0080: 20 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 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 --------------.#
00d0: 20 52 65 71 75 69 72 65 6d 65 6e 74 73 0a 0a 70 Requirements..p
00e0: 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 20 54 ackage require T
00f0: 63 6c 20 38 2e 34 0a 70 61 63 6b 61 67 65 20 72 cl 8.4.package r
0100: 65 71 75 69 72 65 20 76 63 3a 3a 74 6f 6f 6c 73 equire vc::tools
0110: 3a 3a 6c 6f 67 20 20 3b 20 23 20 55 73 65 72 20 ::log ; # User
0120: 66 65 65 64 62 61 63 6b 0a 0a 6e 61 6d 65 73 70 feedback..namesp
0130: 61 63 65 20 65 76 61 6c 20 3a 3a 76 63 3a 3a 66 ace eval ::vc::f
0140: 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 73 ossil::import::s
0150: 74 61 74 73 20 7b 0a 20 20 20 20 76 63 3a 3a 74 tats {. vc::t
0160: 6f 6f 6c 73 3a 3a 6c 6f 67 3a 3a 73 79 73 74 65 ools::log::syste
0170: 6d 20 73 74 61 74 73 0a 20 20 20 20 6e 61 6d 65 m stats. name
0180: 73 70 61 63 65 20 69 6d 70 6f 72 74 20 3a 3a 76 space import ::v
0190: 63 3a 3a 74 6f 6f 6c 73 3a 3a 6c 6f 67 3a 3a 77 c::tools::log::w
01a0: 72 69 74 65 0a 7d 0a 0a 23 20 2d 2d 2d 2d 2d 2d rite.}..# ------
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 2d ----------------
01e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01f0: 2d 2d 2d 2d 2d 2d 2d 0a 23 20 41 50 49 0a 0a 23 -------.# API..#
0200: 20 20 20 20 20 76 63 3a 3a 66 6f 73 73 69 6c 3a vc::fossil:
0210: 3a 69 6d 70 6f 72 74 3a 3a 73 74 61 74 73 0a 23 :import::stats.#
0220: 20 20 20 20 20 20 20 20 20 73 65 74 75 70 20 6e setup n
0230: 20 6d 20 20 2d 20 49 6e 69 74 69 61 6c 69 7a 65 m - Initialize
0240: 20 6d 6f 64 75 6c 65 2c 20 65 78 70 65 63 74 20 module, expect
0250: 6e 20 63 68 61 6e 67 65 73 65 74 73 2c 20 6f 66 n changesets, of
0260: 20 6d 2e 0a 23 20 20 20 20 20 20 20 20 20 64 6f m..# do
0270: 6e 65 20 20 20 20 20 20 20 2d 20 57 72 69 74 65 ne - Write
0280: 20 66 69 6e 61 6c 20 73 74 61 74 69 73 74 69 63 final statistic
0290: 73 2e 0a 23 20 20 20 20 20 20 20 20 20 63 73 62 s..# csb
02a0: 65 67 69 6e 20 69 64 20 2d 20 49 6d 70 6f 72 74 egin id - Import
02b0: 20 6f 66 20 69 64 65 6e 74 69 66 69 65 64 20 63 of identified c
02c0: 68 61 6e 67 65 73 65 74 20 62 65 67 69 6e 73 2e hangeset begins.
02d0: 0a 23 20 20 20 20 20 20 20 20 20 63 73 65 6e 64 .# csend
02e0: 20 78 20 20 20 20 2d 20 49 74 20 74 6f 6f 6b 20 x - It took
02f0: 78 20 73 65 63 6f 6e 64 73 20 74 6f 20 69 6d 70 x seconds to imp
0300: 6f 72 74 20 74 68 65 20 63 68 61 6e 67 65 73 65 ort the changese
0310: 74 2e 0a 23 20 20 20 20 20 20 20 20 20 0a 0a 23 t..# ..#
0320: 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------
0330: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0340: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0350: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0360: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 23 --------------.#
0370: 20 41 50 49 20 49 6d 70 6c 65 6d 65 6e 74 61 74 API Implementat
0380: 69 6f 6e 20 2d 20 46 75 6e 63 74 69 6f 6e 61 6c ion - Functional
0390: 69 74 79 0a 0a 70 72 6f 63 20 3a 3a 76 63 3a 3a ity..proc ::vc::
03a0: 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a fossil::import::
03b0: 73 74 61 74 73 3a 3a 73 65 74 75 70 20 7b 6e 20 stats::setup {n
03c0: 6d 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c m} {. variabl
03d0: 65 20 72 75 6e 5f 66 6f 72 6d 61 74 20 20 20 20 e run_format
03e0: 25 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 %[string length
03f0: 24 6e 5d 73 0a 20 20 20 20 76 61 72 69 61 62 6c $n]s. variabl
0400: 65 20 6d 61 78 5f 66 6f 72 6d 61 74 20 20 20 20 e max_format
0410: 25 5b 73 74 72 69 6e 67 20 6c 65 6e 67 74 68 20 %[string length
0420: 24 6d 5d 73 0a 20 20 20 20 76 61 72 69 61 62 6c $m]s. variabl
0430: 65 20 74 6f 74 61 6c 5f 63 73 65 74 73 20 20 20 e total_csets
0440: 24 6e 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 $n. variable
0450: 74 6f 74 61 6c 5f 72 75 6e 6e 69 6e 67 20 30 0a total_running 0.
0460: 20 20 20 20 76 61 72 69 61 62 6c 65 20 74 6f 74 variable tot
0470: 61 6c 5f 73 65 63 6f 6e 64 73 20 30 2e 30 0a 20 al_seconds 0.0.
0480: 20 20 20 72 65 74 75 72 6e 0a 7d 0a 0a 70 72 6f return.}..pro
0490: 63 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a c ::vc::fossil::
04a0: 69 6d 70 6f 72 74 3a 3a 73 74 61 74 73 3a 3a 64 import::stats::d
04b0: 6f 6e 65 20 7b 7d 20 7b 0a 20 20 20 20 76 61 72 one {} {. var
04c0: 69 61 62 6c 65 20 74 6f 74 61 6c 5f 63 73 65 74 iable total_cset
04d0: 73 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 74 s. variable t
04e0: 6f 74 61 6c 5f 73 65 63 6f 6e 64 73 0a 0a 20 20 otal_seconds..
04f0: 20 20 77 72 69 74 65 20 30 20 73 74 61 74 73 20 write 0 stats
0500: 22 3d 3d 3d 3d 3d 3d 3d 3d 3d 20 5b 73 74 72 69 "========= [stri
0510: 6e 67 20 72 65 70 65 61 74 20 3d 20 36 31 5d 22 ng repeat = 61]"
0520: 0a 20 20 20 20 77 72 69 74 65 20 30 20 73 74 61 . write 0 sta
0530: 74 73 20 22 49 6d 70 6f 72 74 65 64 20 24 74 6f ts "Imported $to
0540: 74 61 6c 5f 63 73 65 74 73 20 5b 65 78 70 72 20 tal_csets [expr
0550: 7b 28 24 74 6f 74 61 6c 5f 63 73 65 74 73 20 3d {($total_csets =
0560: 3d 20 31 29 20 3f 20 22 63 68 61 6e 67 65 73 65 = 1) ? "changese
0570: 74 22 20 3a 20 22 63 68 61 6e 67 65 73 65 74 73 t" : "changesets
0580: 22 7d 5d 22 0a 20 20 20 20 77 72 69 74 65 20 30 "}]". write 0
0590: 20 73 74 61 74 73 20 22 57 69 74 68 69 6e 20 5b stats "Within [
05a0: 46 20 24 74 6f 74 61 6c 5f 73 65 63 6f 6e 64 73 F $total_seconds
05b0: 5d 20 73 65 63 6f 6e 64 73 20 28 61 76 67 20 5b ] seconds (avg [
05c0: 46 20 5b 41 76 67 5d 5d 20 73 65 63 6f 6e 64 73 F [Avg]] seconds
05d0: 2f 63 68 61 6e 67 65 73 65 74 29 22 0a 20 20 20 /changeset)".
05e0: 20 72 65 74 75 72 6e 0a 7d 0a 0a 70 72 6f 63 20 return.}..proc
05f0: 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d ::vc::fossil::im
0600: 70 6f 72 74 3a 3a 73 74 61 74 73 3a 3a 63 73 62 port::stats::csb
0610: 65 67 69 6e 20 7b 63 73 65 74 7d 20 7b 0a 20 20 egin {cset} {.
0620: 20 20 76 61 72 69 61 62 6c 65 20 6d 61 78 5f 66 variable max_f
0630: 6f 72 6d 61 74 0a 20 20 20 20 76 61 72 69 61 62 ormat. variab
0640: 6c 65 20 72 75 6e 5f 66 6f 72 6d 61 74 0a 20 20 le run_format.
0650: 20 20 76 61 72 69 61 62 6c 65 20 74 6f 74 61 6c variable total
0660: 5f 72 75 6e 6e 69 6e 67 0a 20 20 20 20 76 61 72 _running. var
0670: 69 61 62 6c 65 20 74 6f 74 61 6c 5f 63 73 65 74 iable total_cset
0680: 73 0a 0a 20 20 20 20 77 72 69 74 65 20 30 20 73 s.. write 0 s
0690: 74 61 74 73 20 22 43 68 61 6e 67 65 53 65 74 20 tats "ChangeSet
06a0: 5b 66 6f 72 6d 61 74 20 24 6d 61 78 5f 66 6f 72 [format $max_for
06b0: 6d 61 74 20 24 63 73 65 74 5d 20 40 20 5b 66 6f mat $cset] @ [fo
06c0: 72 6d 61 74 20 24 72 75 6e 5f 66 6f 72 6d 61 74 rmat $run_format
06d0: 20 24 74 6f 74 61 6c 5f 72 75 6e 6e 69 6e 67 5d $total_running]
06e0: 2f 24 74 6f 74 61 6c 5f 63 73 65 74 73 20 28 5b /$total_csets ([
06f0: 46 36 20 5b 65 78 70 72 20 7b 24 74 6f 74 61 6c F6 [expr {$total
0700: 5f 72 75 6e 6e 69 6e 67 2a 31 30 30 2e 30 2f 24 _running*100.0/$
0710: 74 6f 74 61 6c 5f 63 73 65 74 73 7d 5d 5d 25 29 total_csets}]]%)
0720: 22 0a 20 20 20 20 72 65 74 75 72 6e 0a 7d 0a 0a ". return.}..
0730: 70 72 6f 63 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 proc ::vc::fossi
0740: 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 73 74 61 74 73 l::import::stats
0750: 3a 3a 63 73 65 6e 64 20 7b 73 65 63 6f 6e 64 73 ::csend {seconds
0760: 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 62 6c 65 } {. variable
0770: 20 74 6f 74 61 6c 5f 63 73 65 74 73 0a 20 20 20 total_csets.
0780: 20 76 61 72 69 61 62 6c 65 20 74 6f 74 61 6c 5f variable total_
0790: 73 65 63 6f 6e 64 73 0a 20 20 20 20 76 61 72 69 seconds. vari
07a0: 61 62 6c 65 20 74 6f 74 61 6c 5f 72 75 6e 6e 69 able total_runni
07b0: 6e 67 0a 0a 20 20 20 20 69 6e 63 72 20 74 6f 74 ng.. incr tot
07c0: 61 6c 5f 72 75 6e 6e 69 6e 67 0a 20 20 20 20 73 al_running. s
07d0: 65 74 20 20 74 6f 74 61 6c 5f 73 65 63 6f 6e 64 et total_second
07e0: 73 20 5b 65 78 70 72 20 7b 24 74 6f 74 61 6c 5f s [expr {$total_
07f0: 73 65 63 6f 6e 64 73 20 2b 20 24 73 65 63 6f 6e seconds + $secon
0800: 64 73 7d 5d 0a 0a 20 20 20 20 73 65 74 20 61 76 ds}].. set av
0810: 67 20 5b 41 76 67 5d 0a 20 20 20 20 73 65 74 20 g [Avg]. set
0820: 65 6e 64 20 5b 65 78 70 72 20 7b 24 74 6f 74 61 end [expr {$tota
0830: 6c 5f 63 73 65 74 73 20 2a 20 24 61 76 67 7d 5d l_csets * $avg}]
0840: 0a 20 20 20 20 73 65 74 20 72 65 6d 20 5b 65 78 . set rem [ex
0850: 70 72 20 7b 24 65 6e 64 20 2d 20 24 74 6f 74 61 pr {$end - $tota
0860: 6c 5f 73 65 63 6f 6e 64 73 7d 5d 0a 0a 20 20 20 l_seconds}]..
0870: 20 77 72 69 74 65 20 32 20 73 74 61 74 73 20 22 write 2 stats "
0880: 49 6d 70 6f 72 74 65 64 20 69 6e 20 20 20 20 20 Imported in
0890: 20 20 20 5b 46 37 20 24 73 65 63 6f 6e 64 73 5d [F7 $seconds]
08a0: 20 73 65 63 6f 6e 64 73 22 0a 20 20 20 20 77 72 seconds". wr
08b0: 69 74 65 20 33 20 73 74 61 74 73 20 22 41 76 65 ite 3 stats "Ave
08c0: 72 61 67 65 20 54 69 6d 65 2f 43 73 65 74 20 20 rage Time/Cset
08d0: 5b 46 37 20 24 61 76 67 5d 20 73 65 63 6f 6e 64 [F7 $avg] second
08e0: 73 22 0a 20 20 20 20 77 72 69 74 65 20 33 20 73 s". write 3 s
08f0: 74 61 74 73 20 22 43 75 72 72 65 6e 74 20 52 75 tats "Current Ru
0900: 6e 74 69 6d 65 20 20 20 20 5b 46 54 69 6d 65 20 ntime [FTime
0910: 24 74 6f 74 61 6c 5f 73 65 63 6f 6e 64 73 5d 22 $total_seconds]"
0920: 0a 20 20 20 20 77 72 69 74 65 20 33 20 73 74 61 . write 3 sta
0930: 74 73 20 22 54 6f 74 61 6c 20 52 75 6e 74 69 6d ts "Total Runtim
0940: 65 20 20 28 45 29 20 5b 46 54 69 6d 65 20 24 65 e (E) [FTime $e
0950: 6e 64 5d 22 0a 20 20 20 20 77 72 69 74 65 20 33 nd]". write 3
0960: 20 73 74 61 74 73 20 22 52 65 6d 61 69 6e 69 6e stats "Remainin
0970: 67 20 54 69 6d 65 20 28 45 29 20 5b 46 54 69 6d g Time (E) [FTim
0980: 65 20 24 72 65 6d 5d 22 0a 20 20 20 20 23 20 28 e $rem]". # (
0990: 45 29 20 66 6f 72 20 45 73 74 69 6d 61 74 65 64 E) for Estimated
09a0: 2e 0a 0a 20 20 20 20 72 65 74 75 72 6e 0a 7d 0a ... return.}.
09b0: 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .# -------------
09c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
09d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
09e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
09f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0a00: 0a 23 20 49 6e 74 65 72 6e 61 6c 20 68 65 6c 70 .# Internal help
0a10: 65 72 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a 70 72 er commands...pr
0a20: 6f 63 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a oc ::vc::fossil:
0a30: 3a 69 6d 70 6f 72 74 3a 3a 73 74 61 74 73 3a 3a :import::stats::
0a40: 46 54 69 6d 65 20 7b 73 7d 20 7b 0a 20 20 20 20 FTime {s} {.
0a50: 73 65 74 20 6d 20 5b 65 78 70 72 20 7b 24 73 20 set m [expr {$s
0a60: 2f 20 36 30 7d 5d 0a 20 20 20 20 73 65 74 20 68 / 60}]. set h
0a70: 20 5b 65 78 70 72 20 7b 24 73 20 2f 20 33 36 30 [expr {$s / 360
0a80: 30 7d 5d 0a 20 20 20 20 72 65 74 75 72 6e 20 22 0}]. return "
0a90: 5b 46 37 20 24 73 5d 20 73 65 63 20 5b 46 36 20 [F7 $s] sec [F6
0aa0: 24 6d 5d 20 6d 69 6e 20 5b 46 35 20 24 68 5d 20 $m] min [F5 $h]
0ab0: 68 72 22 0a 7d 0a 0a 70 72 6f 63 20 3a 3a 76 63 hr".}..proc ::vc
0ac0: 3a 3a 66 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 ::fossil::import
0ad0: 3a 3a 73 74 61 74 73 3a 3a 46 20 20 7b 78 7d 20 ::stats::F {x}
0ae0: 7b 20 66 6f 72 6d 61 74 20 25 2e 32 66 20 20 24 { format %.2f $
0af0: 78 20 7d 0a 70 72 6f 63 20 3a 3a 76 63 3a 3a 66 x }.proc ::vc::f
0b00: 6f 73 73 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 73 ossil::import::s
0b10: 74 61 74 73 3a 3a 46 35 20 7b 78 7d 20 7b 20 66 tats::F5 {x} { f
0b20: 6f 72 6d 61 74 20 25 35 2e 32 66 20 24 78 20 7d ormat %5.2f $x }
0b30: 0a 70 72 6f 63 20 3a 3a 76 63 3a 3a 66 6f 73 73 .proc ::vc::foss
0b40: 69 6c 3a 3a 69 6d 70 6f 72 74 3a 3a 73 74 61 74 il::import::stat
0b50: 73 3a 3a 46 36 20 7b 78 7d 20 7b 20 66 6f 72 6d s::F6 {x} { form
0b60: 61 74 20 25 36 2e 32 66 20 24 78 20 7d 0a 70 72 at %6.2f $x }.pr
0b70: 6f 63 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a oc ::vc::fossil:
0b80: 3a 69 6d 70 6f 72 74 3a 3a 73 74 61 74 73 3a 3a :import::stats::
0b90: 46 37 20 7b 78 7d 20 7b 20 66 6f 72 6d 61 74 20 F7 {x} { format
0ba0: 25 37 2e 32 66 20 24 78 20 7d 0a 0a 70 72 6f 63 %7.2f $x }..proc
0bb0: 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 ::vc::fossil::i
0bc0: 6d 70 6f 72 74 3a 3a 73 74 61 74 73 3a 3a 41 76 mport::stats::Av
0bd0: 67 20 7b 7d 20 7b 0a 20 20 20 20 76 61 72 69 61 g {} {. varia
0be0: 62 6c 65 20 74 6f 74 61 6c 5f 73 65 63 6f 6e 64 ble total_second
0bf0: 73 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 74 s. variable t
0c00: 6f 74 61 6c 5f 72 75 6e 6e 69 6e 67 0a 20 20 20 otal_running.
0c10: 20 72 65 74 75 72 6e 20 5b 65 78 70 72 20 7b 24 return [expr {$
0c20: 74 6f 74 61 6c 5f 73 65 63 6f 6e 64 73 2f 24 74 total_seconds/$t
0c30: 6f 74 61 6c 5f 72 75 6e 6e 69 6e 67 7d 5d 0a 7d otal_running}].}
0c40: 0a 0a 23 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ..# ------------
0c50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0c90: 2d 0a 0a 6e 61 6d 65 73 70 61 63 65 20 65 76 61 -..namespace eva
0ca0: 6c 20 3a 3a 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a l ::vc::fossil::
0cb0: 69 6d 70 6f 72 74 3a 3a 73 74 61 74 73 20 7b 0a import::stats {.
0cc0: 20 20 20 20 76 61 72 69 61 62 6c 65 20 74 6f 74 variable tot
0cd0: 61 6c 5f 63 73 65 74 73 20 20 20 30 20 3b 20 23 al_csets 0 ; #
0ce0: 20 4e 75 6d 62 65 72 20 6f 66 20 63 68 61 6e 67 Number of chang
0cf0: 65 73 65 74 73 20 74 6f 20 65 78 70 65 63 74 20 esets to expect
0d00: 74 6f 20 62 65 20 69 6d 70 6f 72 74 65 64 0a 20 to be imported.
0d10: 20 20 20 76 61 72 69 61 62 6c 65 20 74 6f 74 61 variable tota
0d20: 6c 5f 72 75 6e 6e 69 6e 67 20 30 20 3b 20 23 20 l_running 0 ; #
0d30: 4e 75 6d 62 65 72 20 6f 66 20 63 68 61 6e 67 65 Number of change
0d40: 73 65 74 73 20 77 68 69 63 68 20 68 61 76 65 20 sets which have
0d50: 62 65 65 6e 20 69 6d 70 6f 72 74 65 64 20 73 6f been imported so
0d60: 20 66 61 72 0a 20 20 20 20 76 61 72 69 61 62 6c far. variabl
0d70: 65 20 74 6f 74 61 6c 5f 73 65 63 6f 6e 64 73 20 e total_seconds
0d80: 30 20 3b 20 23 20 43 75 72 72 65 6e 74 20 72 75 0 ; # Current ru
0d90: 6e 74 69 6d 65 20 69 6e 20 73 65 63 6f 6e 64 73 ntime in seconds
0da0: 0a 20 20 20 20 76 61 72 69 61 62 6c 65 20 6d 61 . variable ma
0db0: 78 5f 66 6f 72 6d 61 74 20 20 20 25 73 20 3b 20 x_format %s ;
0dc0: 23 20 46 6f 72 6d 61 74 20 74 6f 20 70 72 69 6e # Format to prin
0dd0: 74 20 63 68 61 6e 67 65 73 65 74 20 69 64 2c 20 t changeset id,
0de0: 62 61 73 65 64 20 6f 6e 20 74 68 65 20 6c 61 72 based on the lar
0df0: 67 65 73 74 20 69 64 2e 0a 20 20 20 20 76 61 72 gest id.. var
0e00: 69 61 62 6c 65 20 72 75 6e 5f 66 6f 72 6d 61 74 iable run_format
0e10: 20 20 20 25 73 20 3b 20 23 20 46 6f 72 6d 61 74 %s ; # Format
0e20: 20 74 6f 20 70 72 69 6e 74 20 74 68 65 20 6e 75 to print the nu
0e30: 6d 62 65 72 20 6f 66 20 69 6d 70 6f 72 74 65 64 mber of imported
0e40: 20 63 73 65 74 73 2e 0a 0a 20 20 20 20 6e 61 6d csets... nam
0e50: 65 73 70 61 63 65 20 65 78 70 6f 72 74 20 73 65 espace export se
0e60: 74 75 70 20 64 6f 6e 65 20 63 73 62 65 67 69 6e tup done csbegin
0e70: 20 63 73 65 6e 64 0a 7d 0a 0a 23 20 2d 2d 2d 2d csend.}..# ----
0e80: 2d 2d 2d 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 0a 23 20 52 65 61 64 ---------.# Read
0ed0: 79 0a 0a 70 61 63 6b 61 67 65 20 70 72 6f 76 69 y..package provi
0ee0: 64 65 20 76 63 3a 3a 66 6f 73 73 69 6c 3a 3a 69 de vc::fossil::i
0ef0: 6d 70 6f 72 74 3a 3a 73 74 61 74 73 20 31 2e 30 mport::stats 1.0
0f00: 0a 72 65 74 75 72 6e 0a .return.