Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Code cleanup. Removed trailing whitespace across the board. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
b679ca335656a8c1390c0f11744777ad |
| User & Date: | aku 2007-11-25 07:54:09.000 |
Context
|
2007-11-27
| ||
| 02:37 | Outline for more integrity checks, focusing on the changesets. ... (check-in: bf83201c7f user: aku tags: trunk) | |
|
2007-11-25
| ||
| 07:54 | Code cleanup. Removed trailing whitespace across the board. ... (check-in: b679ca3356 user: aku tags: trunk) | |
| 07:44 | Another helper, textual, write changeset data to stdout. ... (check-in: 1ea319fb67 user: aku tags: trunk) | |
Changes
Changes to tools/cvs2fossil/lib/c2f_cyclebreaker.tcl.
| ︙ | ︙ | |||
24 25 26 27 28 29 30 | package require vc::tools::log ; # User feedback. package require vc::tools::trouble ; # Error reporting. package require vc::tools::misc ; # Text formatting. package require vc::fossil::import::cvs::project::rev ; # Project level changesets package require vc::fossil::import::cvs::project::revlink ; # Cycle links. # # ## ### ##### ######## ############# ##################### | | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
package require vc::tools::log ; # User feedback.
package require vc::tools::trouble ; # Error reporting.
package require vc::tools::misc ; # Text formatting.
package require vc::fossil::import::cvs::project::rev ; # Project level changesets
package require vc::fossil::import::cvs::project::revlink ; # Cycle links.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::cyclebreaker {
# # ## ### ##### ######## #############
## Public API
typemethod precmd {cmd} {
::variable myprecmd $cmd
return
}
typemethod savecmd {cmd} {
::variable mysavecmd $cmd
return
}
typemethod breakcmd {cmd} {
::variable mybreakcmd $cmd
return
}
# # ## ### ##### ######## #############
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_file.tcl.
| ︙ | ︙ | |||
23 24 25 26 27 28 29 | package require vc::fossil::import::cvs::file::sym ; # CVS per file symbols. package require vc::fossil::import::cvs::state ; # State storage. package require vc::tools::trouble ; # Error reporting. package require vc::tools::log ; # User feedback package require vc::tools::misc ; # Text formatting # # ## ### ##### ######## ############# ##################### | | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
package require vc::fossil::import::cvs::file::sym ; # CVS per file symbols.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::tools::trouble ; # Error reporting.
package require vc::tools::log ; # User feedback
package require vc::tools::misc ; # Text formatting
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::file {
# # ## ### ##### ######## #############
## Public API
constructor {id path usrpath executable project} {
set myid $id
|
| ︙ | ︙ | |||
563 564 565 566 567 568 569 |
} elseif {$myimported} {
# No default branch, but the file appears to have been
# imported. So our educated guess is that all revisions
# on the '1.1.1' branch with timestamps prior to the
# timestamp of '1.2' were non-trunk default branch
# revisions.
| | | | 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 |
} elseif {$myimported} {
# No default branch, but the file appears to have been
# imported. So our educated guess is that all revisions
# on the '1.1.1' branch with timestamps prior to the
# timestamp of '1.2' were non-trunk default branch
# revisions.
# This really only processes standard '1.1.1.*'-style
# vendor revisions. One could conceivably have a file
# whose default branch is 1.1.3 or whatever, or was that
# at some point in time, with vendor revisions 1.1.3.1,
# 1.1.3.2, etc. But with the default branch gone now,
# we'd have no basis for assuming that the non-standard
# vendor branch had ever been the default branch anyway.
# Note that we rely on comparisons between the timestamps
# of the revisions on the vendor branch and that of
# revision 1.2, even though the timestamps might be
# incorrect due to clock skew. We could do a slightly
# better job if we used the changeset timestamps, as it is
# possible that the dependencies that went into
# determining those timestamps are more accurate. But
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_flodmgr.tcl.
| ︙ | ︙ | |||
15 16 17 18 19 20 21 | # # ## ### ##### ######## ############# ##################### ## Requirements package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. # # ## ### ##### ######## ############# ##################### | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# # ## ### ##### ######## ############# #####################
## Requirements
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::file::lodmgr {
# # ## ### ##### ######## #############
## Public API
constructor {} {
return
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_frev.tcl.
| ︙ | ︙ | |||
17 18 19 20 21 22 23 | package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. package require vc::tools::misc ; # Text formatting package require vc::fossil::import::cvs::state ; # State storage. # # ## ### ##### ######## ############# ##################### | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
package require vc::tools::misc ; # Text formatting
package require vc::fossil::import::cvs::state ; # State storage.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::file::rev {
# # ## ### ##### ######## #############
## Public API
constructor {revnr date state thefile} {
set myrevnr $revnr
|
| ︙ | ︙ | |||
394 395 396 397 398 399 400 |
# myparent - revision.parent
# mychild - revision.child
# myparentbranch - revision.bparent
# myoperation - revision.op
# myisondefaultbranch - revision.isdefault
# mydbparent - revision.dbparent
# mydbchild - revision.dbchild
| | | 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 |
# myparent - revision.parent
# mychild - revision.child
# myparentbranch - revision.bparent
# myoperation - revision.op
# myisondefaultbranch - revision.isdefault
# mydbparent - revision.dbparent
# mydbchild - revision.dbchild
typevariable mybranchpattern {^((?:\d+\.\d+\.)+)(?:0\.)?(\d+)$}
# First a nonzero even number of digit groups with trailing dot
# CVS then sticks an extra 0 in here; RCS does not.
# And the last digit group.
typevariable myidcounter 0 ; # Counter for revision ids.
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_fsym.tcl.
| ︙ | ︙ | |||
18 19 20 21 22 23 24 | package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. package require vc::tools::trouble ; # Error reporting. package require vc::fossil::import::cvs::file::rev ; # CVS per file revisions. package require vc::fossil::import::cvs::state ; # State storage. # # ## ### ##### ######## ############# ##################### | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
package require vc::tools::trouble ; # Error reporting.
package require vc::fossil::import::cvs::file::rev ; # CVS per file revisions.
package require vc::fossil::import::cvs::state ; # State storage.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::file::sym {
# # ## ### ##### ######## #############
## Public API
constructor {symtype nr symbol file} {
set myfile $file
|
| ︙ | ︙ | |||
202 203 204 205 206 207 208 |
return
}
# # ## ### ##### ######## #############
## State
# Persistent:
| | | | | | | | | 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 |
return
}
# # ## ### ##### ######## #############
## State
# Persistent:
# Tag: myid - tag.tid
# myfile - tag.fid
# mylod - tag.lod
# mysymbol - tag.sid
# mytagrev - tag.rev
#
# Branch: myid - branch.bid
# myfile - branch.fid
# mylod - branch.lod
# mysymbol - branch.sid
# mybranchparent - branch.root
# mybranchchild - branch.first
# mynr - branch.bra
typevariable myidcounter 0 ; # Counter for symbol ids.
variable myid {} ; # Symbol id.
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_ftrunk.tcl.
| ︙ | ︙ | |||
15 16 17 18 19 20 21 | # # ## ### ##### ######## ############# ##################### ## Requirements package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. # # ## ### ##### ######## ############# ##################### | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# # ## ### ##### ######## ############# #####################
## Requirements
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::file::trunk {
# # ## ### ##### ######## #############
## Public API
constructor {} {
return
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_integrity.tcl.
| ︙ | ︙ | |||
19 20 21 22 23 24 25 | package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. package require vc::tools::trouble ; # Error reporting. package require vc::tools::log ; # User feedback. package require vc::fossil::import::cvs::state ; # State storage. # # ## ### ##### ######## ############# ##################### | | > > > > > > > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
package require vc::tools::trouble ; # Error reporting.
package require vc::tools::log ; # User feedback.
package require vc::fossil::import::cvs::state ; # State storage.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::integrity {
# # ## ### ##### ######## #############
## Public API
typemethod strict {} {
set n 0
AllButMeta
Meta
return
}
typemethod metarelaxed {} {
set n 0
AllButMeta
return
}
typemethod changesets {} {
set n 0
RevisionChangesets
SymbolChangesets
return
}
# # ## ### ##### ######## #############
## Internal methods
proc AllButMeta {} {
# This code performs a number of paranoid checks of the
# database, searching for inconsistent cross-references.
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_option.tcl.
| ︙ | ︙ | |||
27 28 29 30 31 32 33 | package require vc::fossil::import::cvs::pass::collar ; # Pass I. package require vc::fossil::import::cvs::repository ; # Repository management package require vc::fossil::import::cvs::state ; # State storage package require vc::fossil::import::cvs::project::sym ; # Project level symbols package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles. # # ## ### ##### ######## ############# ##################### | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
package require vc::fossil::import::cvs::pass::collar ; # Pass I.
package require vc::fossil::import::cvs::repository ; # Repository management
package require vc::fossil::import::cvs::state ; # State storage
package require vc::fossil::import::cvs::project::sym ; # Project level symbols
package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::option {
# # ## ### ##### ######## #############
## Public API, Options.
# --help, --help-passes, -h
# --version
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pass.tcl.
| ︙ | ︙ | |||
22 23 24 25 26 27 28 | package require vc::fossil::import::cvs::state ; # State storage package require vc::tools::misc ; # Text formatting package require vc::tools::trouble ; # Error reporting. package require vc::tools::log ; # User feedback. package require struct::list ; # Portable lassign # # ## ### ##### ######## ############# ##################### | | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
package require vc::fossil::import::cvs::state ; # State storage
package require vc::tools::misc ; # Text formatting
package require vc::tools::trouble ; # Error reporting.
package require vc::tools::log ; # User feedback.
package require struct::list ; # Portable lassign
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass {
# # ## ### ##### ######## #############
## Public API, Methods (Setup, query)
typemethod define {name description command} {
if {[info exists mydesc($name)]} {
|
| ︙ | ︙ | |||
100 101 102 103 104 105 106 |
if {$myend < 0} {set myend [expr {[llength $mypasses] - 1}]}
set skipped [lrange $mypasses 0 [expr {$mystart - 1}]]
set run [lrange $mypasses $mystart $myend]
set defered [lrange $mypasses [expr {$myend + 1}] end]
foreach p $skipped {
| | | | | | 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
if {$myend < 0} {set myend [expr {[llength $mypasses] - 1}]}
set skipped [lrange $mypasses 0 [expr {$mystart - 1}]]
set run [lrange $mypasses $mystart $myend]
set defered [lrange $mypasses [expr {$myend + 1}] end]
foreach p $skipped {
log write 0 pass "Skip $p"
Call $p load
}
foreach p $run {
log write 0 pass "Setup $p"
Call $p setup
}
foreach p $run {
log write 0 pass "Begin $p"
Time $p [lindex [time {Call $p run} 1] 0]
log write 0 pass "Done $p"
trouble abort?
}
foreach p $defered {
log write 0 pass "Defer $p"
Call $p discard
}
state release
ShowTimes
return
}
|
| ︙ | ︙ | |||
197 198 199 200 201 202 203 |
namespace eval ::vc::fossil::import::cvs {
namespace export pass
namespace eval pass {
namespace import ::vc::fossil::import::cvs::state
namespace import ::vc::tools::misc::*
namespace import ::vc::tools::trouble
| | | 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
namespace eval ::vc::fossil::import::cvs {
namespace export pass
namespace eval pass {
namespace import ::vc::fossil::import::cvs::state
namespace import ::vc::tools::misc::*
namespace import ::vc::tools::trouble
namespace import ::vc::tools::log
log register pass
}
}
# # ## ### ##### ######## ############# #####################
## Ready
package provide vc::fossil::import::cvs::pass 1.0
return
|
Changes to tools/cvs2fossil/lib/c2f_patopsort.tcl.
| ︙ | ︙ | |||
31 32 33 34 35 36 37 |
vc::fossil::import::cvs::pass define \
AllTopologicalSort \
{Topologically Sort All ChangeSets} \
::vc::fossil::import::cvs::pass::atopsort
# # ## ### ##### ######## ############# #####################
| | | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
vc::fossil::import::cvs::pass define \
AllTopologicalSort \
{Topologically Sort All ChangeSets} \
::vc::fossil::import::cvs::pass::atopsort
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::atopsort {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define the names and structure of the persistent state of
|
| ︙ | ︙ | |||
146 147 148 149 150 151 152 |
set mylasttimestamp $stamp
}
return $mylasttimestamp
}
typevariable mysymchangesets {} ; # Set of the symbol changesets.
typevariable mylasttimestamp 0 ; # Last delivered timestamp.
| | | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
set mylasttimestamp $stamp
}
return $mylasttimestamp
}
typevariable mysymchangesets {} ; # Set of the symbol changesets.
typevariable mylasttimestamp 0 ; # Last delivered timestamp.
typevariable mymaxtimestamp
typeconstructor {
# The maximum timestamp considered as reasonable is
# "now + 1 day".
set mymaxtimestamp [clock seconds]
incr mymaxtimestamp 86400 ; # 24h * 60min * 60sec
return
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pbreakacycle.tcl.
| ︙ | ︙ | |||
36 37 38 39 40 41 42 |
vc::fossil::import::cvs::pass define \
BreakAllCsetCycles \
{Break Remaining ChangeSet Dependency Cycles} \
::vc::fossil::import::cvs::pass::breakacycle
# # ## ### ##### ######## ############# #####################
| | | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
vc::fossil::import::cvs::pass define \
BreakAllCsetCycles \
{Break Remaining ChangeSet Dependency Cycles} \
::vc::fossil::import::cvs::pass::breakacycle
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::breakacycle {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define the names and structure of the persistent state of
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pbreakrcycle.tcl.
| ︙ | ︙ | |||
32 33 34 35 36 37 38 |
vc::fossil::import::cvs::pass define \
BreakRevCsetCycles \
{Break Revision ChangeSet Dependency Cycles} \
::vc::fossil::import::cvs::pass::breakrcycle
# # ## ### ##### ######## ############# #####################
| | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
vc::fossil::import::cvs::pass define \
BreakRevCsetCycles \
{Break Revision ChangeSet Dependency Cycles} \
::vc::fossil::import::cvs::pass::breakrcycle
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::breakrcycle {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define the names and structure of the persistent state of
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pbreakscycle.tcl.
| ︙ | ︙ | |||
31 32 33 34 35 36 37 |
vc::fossil::import::cvs::pass define \
BreakSymCsetCycles \
{Break Symbol ChangeSet Dependency Cycles} \
::vc::fossil::import::cvs::pass::breakscycle
# # ## ### ##### ######## ############# #####################
| | | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
vc::fossil::import::cvs::pass define \
BreakSymCsetCycles \
{Break Symbol ChangeSet Dependency Cycles} \
::vc::fossil::import::cvs::pass::breakscycle
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::breakscycle {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define the names and structure of the persistent state of
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pcollar.tcl.
| ︙ | ︙ | |||
33 34 35 36 37 38 39 |
vc::fossil::import::cvs::pass define \
CollectAr \
{Collect archives in repository} \
::vc::fossil::import::cvs::pass::collar
# # ## ### ##### ######## ############# #####################
| | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
vc::fossil::import::cvs::pass define \
CollectAr \
{Collect archives in repository} \
::vc::fossil::import::cvs::pass::collar
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::collar {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define names and structure of the persistent state of this
|
| ︙ | ︙ | |||
76 77 78 79 80 81 82 |
visible TEXT NOT NULL,
exec INTEGER NOT NULL, -- boolean, 'file executable'.
UNIQUE (pid, name) -- file names are unique within a project
}
return
}
| | | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
visible TEXT NOT NULL,
exec INTEGER NOT NULL, -- boolean, 'file executable'.
UNIQUE (pid, name) -- file names are unique within a project
}
return
}
typemethod load {} {
# Pass manager interface. Executed for all passes before the
# run passes, to load all data of their pass from the state,
# as if it had been computed by the pass itself.
state reading project
state reading file
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pcollrev.tcl.
| ︙ | ︙ | |||
33 34 35 36 37 38 39 |
vc::fossil::import::cvs::pass define \
CollectRev \
{Collect revisions and symbols} \
::vc::fossil::import::cvs::pass::collrev
# # ## ### ##### ######## ############# #####################
| | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
vc::fossil::import::cvs::pass define \
CollectRev \
{Collect revisions and symbols} \
::vc::fossil::import::cvs::pass::collrev
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::collrev {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define names and structure of the persistent state of this
|
| ︙ | ︙ | |||
210 211 212 213 214 215 216 |
UNIQUE (pid, name) -- Symbols are unique within the project
}
state writing blocker {
-- For each symbol we save which other symbols are
-- blocking its removal (if the user asks for it).
| | | | 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 |
UNIQUE (pid, name) -- Symbols are unique within the project
}
state writing blocker {
-- For each symbol we save which other symbols are
-- blocking its removal (if the user asks for it).
sid INTEGER NOT NULL REFERENCES symbol, --
bid INTEGER NOT NULL REFERENCES symbol, -- Sprouted from sid, blocks it.
UNIQUE (sid, bid)
}
state writing parent {
-- For each symbol we save which other symbols can act as
-- a possible parent in some file, and how often.
sid INTEGER NOT NULL REFERENCES symbol, --
pid INTEGER NOT NULL REFERENCES symbol, -- Possible parent of sid
n INTEGER NOT NULL, -- How often pid can act as parent.
UNIQUE (sid, pid)
}
state writing symtype {
tid INTEGER NOT NULL PRIMARY KEY,
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pcollsym.tcl.
| ︙ | ︙ | |||
31 32 33 34 35 36 37 |
vc::fossil::import::cvs::pass define \
CollateSymbols \
{Collate symbols} \
::vc::fossil::import::cvs::pass::collsym
# # ## ### ##### ######## ############# #####################
| | | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
vc::fossil::import::cvs::pass define \
CollateSymbols \
{Collate symbols} \
::vc::fossil::import::cvs::pass::collsym
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::collsym {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define names and structure of the persistent state of this
|
| ︙ | ︙ | |||
180 181 182 183 184 185 186 |
FROM project P, symbol S
WHERE P.pid = S.pid
AND S.type = $tag
AND S.commit_count > 0
}] {
trouble fatal "$pname : The symbol '$sname' cannot be forced to be converted as tag because it has commits."
}
| | | 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 |
FROM project P, symbol S
WHERE P.pid = S.pid
AND S.type = $tag
AND S.commit_count > 0
}] {
trouble fatal "$pname : The symbol '$sname' cannot be forced to be converted as tag because it has commits."
}
return
}
proc DropExcludedSymbolsFromReferences {} {
# The excluded symbols cann be used as blockers nor as
# possible parent for other symbols. We now drop the relevant
# entries to prevent them from causing confusion later on.
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pfiltersym.tcl.
| ︙ | ︙ | |||
31 32 33 34 35 36 37 |
vc::fossil::import::cvs::pass define \
FilterSymbols \
{Filter symbols, remove all excluded pieces} \
::vc::fossil::import::cvs::pass::filtersym
# # ## ### ##### ######## ############# #####################
| | | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
vc::fossil::import::cvs::pass define \
FilterSymbols \
{Filter symbols, remove all excluded pieces} \
::vc::fossil::import::cvs::pass::filtersym
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::filtersym {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define names and structure of the persistent state of this
|
| ︙ | ︙ | |||
312 313 314 315 316 317 318 |
set tagstoadjust [state run {
SELECT T.tid, T.fid, T.lod, P.pid, S.name, R.rev, R.rid
FROM tag T, preferedparent P, symbol S, revision R
WHERE T.sid = P.sid
AND T.lod != P.pid
AND P.pid = S.sid
AND S.name != ':trunk:'
| | | | 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 |
set tagstoadjust [state run {
SELECT T.tid, T.fid, T.lod, P.pid, S.name, R.rev, R.rid
FROM tag T, preferedparent P, symbol S, revision R
WHERE T.sid = P.sid
AND T.lod != P.pid
AND P.pid = S.sid
AND S.name != ':trunk:'
AND T.rev = R.rid
}]
set branchestoadjust [state run {
SELECT B.bid, B.fid, B.lod, B.pos, P.pid, S.name, R.rev, R.rid
FROM branch B, preferedparent P, symbol S, revision R
WHERE B.sid = P.sid
AND B.lod != P.pid
AND P.pid = S.sid
AND S.name != ':trunk:'
AND B.root = R.rid
}]
set tmax [expr {[llength $tagstoadjust] / 7}]
set bmax [expr {[llength $branchestoadjust] / 8}]
log write 4 filtersym "Reparenting at most [nsp $tmax tag]"
log write 4 filtersym "Reparenting at most [nsp $bmax branch branches]"
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pinitcsets.tcl.
| ︙ | ︙ | |||
31 32 33 34 35 36 37 |
vc::fossil::import::cvs::pass define \
InitCsets \
{Initialize ChangeSets} \
::vc::fossil::import::cvs::pass::initcsets
# # ## ### ##### ######## ############# #####################
| | | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
vc::fossil::import::cvs::pass define \
InitCsets \
{Initialize ChangeSets} \
::vc::fossil::import::cvs::pass::initcsets
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::initcsets {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define the names and structure of the persistent state of
|
| ︙ | ︙ | |||
76 77 78 79 80 81 82 | # Map from changesets to the (file level) revisions they # contain. The pos'ition provides an order of the revisions # within a changeset. They are unique within the changeset. # The revisions are in principle unique, if we were looking # only at revision changesets. However a revision can appear # in both revision and symbol changesets, and in multiple # symbol changesets as well. So we can only say that it is | | | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# Map from changesets to the (file level) revisions they
# contain. The pos'ition provides an order of the revisions
# within a changeset. They are unique within the changeset.
# The revisions are in principle unique, if we were looking
# only at revision changesets. However a revision can appear
# in both revision and symbol changesets, and in multiple
# symbol changesets as well. So we can only say that it is
# unique within the changeset.
#
# TODO: Check if integrity checks are possible.
state writing csrevision {
cid INTEGER NOT NULL REFERENCES changeset,
pos INTEGER NOT NULL,
rid INTEGER NOT NULL REFERENCES revision,
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_plodmgr.tcl.
| ︙ | ︙ | |||
15 16 17 18 19 20 21 | # # ## ### ##### ######## ############# ##################### ## Requirements package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. # # ## ### ##### ######## ############# ##################### | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# # ## ### ##### ######## ############# #####################
## Requirements
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::project::lodmgr {
# # ## ### ##### ######## #############
## Public API
constructor {} {
return
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_prev.tcl.
| ︙ | ︙ | |||
21 22 23 24 25 26 27 | package require vc::tools::misc ; # Text formatting package require vc::tools::trouble ; # Error reporting. package require vc::tools::log ; # User feedback. package require vc::fossil::import::cvs::state ; # State storage. package require vc::fossil::import::cvs::project::sym ; # Project level symbols # # ## ### ##### ######## ############# ##################### | | | | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
package require vc::tools::misc ; # Text formatting
package require vc::tools::trouble ; # Error reporting.
package require vc::tools::log ; # User feedback.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::project::sym ; # Project level symbols
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::project::rev {
# # ## ### ##### ######## #############
## Public API
constructor {project cstype srcid revisions {theid {}}} {
if {$theid ne ""} {
set myid $theid
} else {
set myid [incr mycounter]
}
set myproject $project
set mytype $cstype
set mysrcid $srcid
set myrevisions $revisions
set mypos {} ; # Commit location is not known yet.
# Keep track of the generated changesets and of the inverse
# mapping from revisions to them.
lappend mychangesets $self
set myidmap($myid) $self
|
| ︙ | ︙ | |||
569 570 571 572 573 574 575 |
# determine whether a dependency crosses a particular index.
array set pos {}
array set cross {}
array set depc {}
set range {}
set n 0
| | | 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 |
# determine whether a dependency crosses a particular index.
array set pos {}
array set cross {}
array set depc {}
set range {}
set n 0
foreach rev $revisions {
lappend range $n
set pos($rev) $n
set cross($n) 0
incr n
}
# Secondly we count the crossings per position, by iterating
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_prevlink.tcl.
| ︙ | ︙ | |||
27 28 29 30 31 32 33 | package require vc::tools::misc ; # Text formatting package require vc::tools::trouble ; # Error reporting. package require vc::tools::log ; # User feedback. package require vc::fossil::import::cvs::state ; # State storage. package require vc::fossil::import::cvs::project::rev ; # Project level changesets # # ## ### ##### ######## ############# ##################### | | | 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
package require vc::tools::misc ; # Text formatting
package require vc::tools::trouble ; # Error reporting.
package require vc::tools::log ; # User feedback.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::project::rev ; # Project level changesets
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::project::revlink {
# # ## ### ##### ######## #############
## Public API
constructor {prev cset next} {
set myprev $prev
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_project.tcl.
| ︙ | ︙ | |||
21 22 23 24 25 26 27 | package require vc::fossil::import::cvs::state ; # State storage. package require vc::fossil::import::cvs::project::sym ; # Per project symbols. package require vc::fossil::import::cvs::project::trunk ; # Per project trunk, main lod package require vc::tools::log ; # User feedback package require struct::list ; # Advanced list operations.. # # ## ### ##### ######## ############# ##################### | | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::project::sym ; # Per project symbols.
package require vc::fossil::import::cvs::project::trunk ; # Per project trunk, main lod
package require vc::tools::log ; # User feedback
package require struct::list ; # Advanced list operations..
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::project {
# # ## ### ##### ######## #############
## Public API
constructor {path r} {
set mybase $path
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_prtopsort.tcl.
| ︙ | ︙ | |||
31 32 33 34 35 36 37 |
vc::fossil::import::cvs::pass define \
RevTopologicalSort \
{Topologically Sort Revision ChangeSets} \
::vc::fossil::import::cvs::pass::rtopsort
# # ## ### ##### ######## ############# #####################
| | | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
vc::fossil::import::cvs::pass define \
RevTopologicalSort \
{Topologically Sort Revision ChangeSets} \
::vc::fossil::import::cvs::pass::rtopsort
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::pass::rtopsort {
# # ## ### ##### ######## #############
## Public API
typemethod setup {} {
# Define the names and structure of the persistent state of
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_psym.tcl.
| ︙ | ︙ | |||
20 21 22 23 24 25 26 | package require vc::tools::trouble ; # Error reporting. package require vc::tools::log ; # User feedback. package require vc::tools::misc ; # Text formatting. package require vc::fossil::import::cvs::state ; # State storage. package require struct::set ; # Set handling. # # ## ### ##### ######## ############# ##################### | | | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
package require vc::tools::trouble ; # Error reporting.
package require vc::tools::log ; # User feedback.
package require vc::tools::misc ; # Text formatting.
package require vc::fossil::import::cvs::state ; # State storage.
package require struct::set ; # Set handling.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::project::sym {
# # ## ### ##### ######## #############
## Public API
constructor {name id project} {
set myname $name
|
| ︙ | ︙ | |||
55 56 57 58 59 60 61 | # The following guidelines are applied: # - Is usage unambigous ? # - Was there ever a commit on the symbol ? # - More used as tag, or more used as branch ? # - At last, what has the user told us about it ? # - Fail | | | 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# The following guidelines are applied:
# - Is usage unambigous ?
# - Was there ever a commit on the symbol ?
# - More used as tag, or more used as branch ?
# - At last, what has the user told us about it ?
# - Fail
foreach rule {
UserConfig
Unambigous
HasCommits
VoteCounts
} {
set chosen [$self $rule]
|
| ︙ | ︙ | |||
334 335 336 337 338 339 340 |
return $myundef
}
method Unambigous {} {
# If a symbol is used unambiguously as a tag/branch, convert
# it as such.
| | | 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 |
return $myundef
}
method Unambigous {} {
# If a symbol is used unambiguously as a tag/branch, convert
# it as such.
set istag [expr {$mytagcount > 0}]
set isbranch [expr {$mybranchcount > 0 || $mycommitcount > 0}]
if {$istag && $isbranch} { return $myundef }
if {$istag} { return $mytag }
if {$isbranch} { return $mybranch }
# Symbol was not used at all.
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_ptrunk.tcl.
| ︙ | ︙ | |||
15 16 17 18 19 20 21 | # # ## ### ##### ######## ############# ##################### ## Requirements package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. # # ## ### ##### ######## ############# ##################### | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# # ## ### ##### ######## ############# #####################
## Requirements
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::project::trunk {
# # ## ### ##### ######## #############
## Public API
constructor {project} {
set mysymbol [$project getsymbol $myname]
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_repository.tcl.
| ︙ | ︙ | |||
25 26 27 28 29 30 31 | package require vc::tools::id ; # Indexing and id generation. package require vc::fossil::import::cvs::project ; # CVS projects. package require vc::fossil::import::cvs::state ; # State storage. package require struct::list ; # List operations. package require fileutil ; # File operations. # # ## ### ##### ######## ############# ##################### | | | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package require vc::tools::id ; # Indexing and id generation.
package require vc::fossil::import::cvs::project ; # CVS projects.
package require vc::fossil::import::cvs::state ; # State storage.
package require struct::list ; # List operations.
package require fileutil ; # File operations.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::repository {
# # ## ### ##### ######## #############
## Public API
typemethod base {path} {
# Could be checked, easier to defer to the overall validation.
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_state.tcl.
| ︙ | ︙ | |||
21 22 23 24 25 26 27 | package require snit ; # OO system. package require fileutil ; # File operations. package require sqlite3 ; # Database access. package require vc::tools::trouble ; # Error reporting. package require vc::tools::log ; # User feedback. # # ## ### ##### ######## ############# ##################### | | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package require snit ; # OO system.
package require fileutil ; # File operations.
package require sqlite3 ; # Database access.
package require vc::tools::trouble ; # Error reporting.
package require vc::tools::log ; # User feedback.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs::state {
# # ## ### ##### ######## #############
## Public API
typemethod use {path} {
# Immediate validation. There are are two possibilities to
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/cvs2fossil.tcl.
| ︙ | ︙ | |||
45 46 47 48 49 50 51 | ## Support for passes etc. package require vc::fossil::import::cvs::option ; # Cmd line parsing & database package require vc::fossil::import::cvs::pass ; # Pass management package require vc::tools::log ; # User feedback # # ## ### ##### ######## ############# ##################### | | | 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
## Support for passes etc.
package require vc::fossil::import::cvs::option ; # Cmd line parsing & database
package require vc::fossil::import::cvs::pass ; # Pass management
package require vc::tools::log ; # User feedback
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::fossil::import::cvs {
# # ## ### ##### ######## #############
## Public API, Methods
typemethod run {arguments} {
# Run a series of passes over the cvs repository to extract,
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/dot.tcl.
| ︙ | ︙ | |||
17 18 19 20 21 22 23 | ## Requirements package require Tcl 8.4 ; # Required runtime package require snit ; # OO system. package require fileutil ; # Helper commands. # # ## ### ##### ######## ############# ##################### | | | 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
## Requirements
package require Tcl 8.4 ; # Required runtime
package require snit ; # OO system.
package require fileutil ; # Helper commands.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::tools::dot {
# # ## ### ##### ######## #############
## Public API, Methods
typemethod format {g name {subgraph {}}} {
lappend lines "digraph \"$name\" \{"
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/log.tcl.
| ︙ | ︙ | |||
15 16 17 18 19 20 21 | # # ## ### ##### ######## ############# ##################### ## Requirements package require Tcl 8.4 ; # Required runtime package require snit ; # OO system. # # ## ### ##### ######## ############# ##################### | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# # ## ### ##### ######## ############# #####################
## Requirements
package require Tcl 8.4 ; # Required runtime
package require snit ; # OO system.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::tools::log {
# # ## ### ##### ######## #############
## Public API, Methods
# Write the message 'text' to log, for the named 'system'. The
# message is written if and only if the message verbosity is less
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/misc.tcl.
| ︙ | ︙ | |||
14 15 16 17 18 19 20 | # # ## ### ##### ######## ############# ##################### ## Requirements package require Tcl 8.4 ; # Required runtime # # ## ### ##### ######## ############# ##################### | | | 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# # ## ### ##### ######## ############# #####################
## Requirements
package require Tcl 8.4 ; # Required runtime
# # ## ### ##### ######## ############# #####################
##
namespace eval ::vc::tools::misc {
# # ## ### ##### ######## #############
## Public API, Methods
# Choose singular vs plural forms of a word based on a number.
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/rcsparser.tcl.
| ︙ | ︙ | |||
23 24 25 26 27 28 29 | package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. package require fileutil ; # File utilities. package require vc::tools::log ; # User feedback. package require struct::list ; # Advanced list ops. # # ## ### ##### ######## ############# ##################### | | | 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
package require fileutil ; # File utilities.
package require vc::tools::log ; # User feedback.
package require struct::list ; # Advanced list ops.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::rcs::parser {
# # ## ### ##### ######## #############
## Public API
typemethod process {path sink} {
Initialize $path $sink
|
| ︙ | ︙ | |||
422 423 424 425 426 427 428 |
}
proc Expected {x} {
::variable mydata
::variable mypos
set e $mypos ; incr e 30
return -code error -errorcode vc::rcs::parser \
| | | | 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 |
}
proc Expected {x} {
::variable mydata
::variable mypos
set e $mypos ; incr e 30
return -code error -errorcode vc::rcs::parser \
"Expected $x @ '[string range $mydata $mypos $e]...'"
}
proc Bad {x} {
::variable mydata
::variable mypos
set e $mypos ; incr e 30
return -code error -errorcode vc::rcs::parser \
"Bad $x @ '[string range $mydata $mypos $e]...'"
}
# # ## ### ##### ######## #############
## Setup, callbacks.
proc Initialize {path sink} {
::variable mypos 0
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/trouble.tcl.
| ︙ | ︙ | |||
16 17 18 19 20 21 22 | ## Requirements package require Tcl 8.4 ; # Required runtime. package require vc::tools::log ; # Basic log generation. package require snit ; # OO system. # # ## ### ##### ######## ############# ##################### | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
## Requirements
package require Tcl 8.4 ; # Required runtime.
package require vc::tools::log ; # Basic log generation.
package require snit ; # OO system.
# # ## ### ##### ######## ############# #####################
##
snit::type ::vc::tools::trouble {
# # ## ### ##### ######## #############
## Public API, Methods
typemethod internal {text} {
foreach line [split $text \n] { $type fatal "INTERNAL ERROR! $line" }
|
| ︙ | ︙ |