Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Outline for more integrity checks, focusing on the changesets. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
bf83201c7f41c492f5c4aa75166eed3e |
| User & Date: | aku 2007-11-27 02:37:51.000 |
Context
|
2007-11-27
| ||
| 04:26 | Continued work on the integrity checks for changesets. Moved callers out of transactions. Two checks are already tripping on bad changesets made by InitCSets (pass 5). ... (check-in: 8c6488ded2 user: aku tags: trunk) | |
| 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) | |
Changes
Changes to tools/cvs2fossil/lib/c2f_integrity.tcl.
| ︙ | ︙ | |||
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
set n 0
AllButMeta
return
}
typemethod changesets {} {
set n 0
RevisionChangesets
SymbolChangesets
return
}
# # ## ### ##### ######## #############
## Internal methods
| > | 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
set n 0
AllButMeta
return
}
typemethod changesets {} {
set n 0
RevisionCSetLinkage
RevisionChangesets
SymbolChangesets
return
}
# # ## ### ##### ######## #############
## Internal methods
|
| ︙ | ︙ | |||
285 286 287 288 289 290 291 292 293 294 295 296 297 298 |
WHERE R.mid = M.mid
AND R.lod != M.bid
AND R.fid = F.fid
;
}
return
}
proc Check {header label sql} {
upvar 1 n n
set ok 1
foreach {fname revnr} [state run $sql] {
set ok 0
trouble fatal "$fname <$revnr> $label"
| > > > > > > > > > > | 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 |
WHERE R.mid = M.mid
AND R.lod != M.bid
AND R.fid = F.fid
;
}
return
}
proc RevisionCSetLinkage {} {
}
proc RevisionChangesets {} {
}
proc SymbolChangesets {} {
}
proc Check {header label sql} {
upvar 1 n n
set ok 1
foreach {fname revnr} [state run $sql] {
set ok 0
trouble fatal "$fname <$revnr> $label"
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pbreakacycle.tcl.
| ︙ | ︙ | |||
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
package require struct::set ; # Set operations.
package require vc::tools::misc ; # Min, max.
package require vc::tools::log ; # User feedback.
package require vc::tools::trouble ; # Error reporting.
package require vc::fossil::import::cvs::repository ; # Repository management.
package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::project::rev ; # Project level changesets
# # ## ### ##### ######## ############# #####################
## Register the pass with the management
vc::fossil::import::cvs::pass define \
BreakAllCsetCycles \
| > | 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package require struct::set ; # Set operations.
package require vc::tools::misc ; # Min, max.
package require vc::tools::log ; # User feedback.
package require vc::tools::trouble ; # Error reporting.
package require vc::fossil::import::cvs::repository ; # Repository management.
package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::integrity ; # State integrity checks.
package require vc::fossil::import::cvs::project::rev ; # Project level changesets
# # ## ### ##### ######## ############# #####################
## Register the pass with the management
vc::fossil::import::cvs::pass define \
BreakAllCsetCycles \
|
| ︙ | ︙ | |||
73 74 75 76 77 78 79 |
cyclebreaker precmd [myproc BreakBackwardBranches]
cyclebreaker savecmd [myproc KeepOrder]
cyclebreaker breakcmd [myproc BreakCycle]
state transaction {
LoadCommitOrder
cyclebreaker run break-all [myproc Changesets]
| | < | > > | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
cyclebreaker precmd [myproc BreakBackwardBranches]
cyclebreaker savecmd [myproc KeepOrder]
cyclebreaker breakcmd [myproc BreakCycle]
state transaction {
LoadCommitOrder
cyclebreaker run break-all [myproc Changesets]
repository printcsetstatistics
integrity changesets
}
return
}
typemethod discard {} {
# Pass manager interface. Executed for all passes after the
# run passes, to remove all data of this pass from the state,
# as being out of date.
|
| ︙ | ︙ | |||
509 510 511 512 513 514 515 516 517 518 519 520 521 522 |
namespace eval ::vc::fossil::import::cvs::pass {
namespace export breakacycle
namespace eval breakacycle {
namespace import ::vc::fossil::import::cvs::cyclebreaker
namespace import ::vc::fossil::import::cvs::repository
namespace import ::vc::fossil::import::cvs::state
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::rev
}
namespace import ::vc::tools::misc::*
namespace import ::vc::tools::trouble
namespace import ::vc::tools::log
log register breakacycle
| > | 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 |
namespace eval ::vc::fossil::import::cvs::pass {
namespace export breakacycle
namespace eval breakacycle {
namespace import ::vc::fossil::import::cvs::cyclebreaker
namespace import ::vc::fossil::import::cvs::repository
namespace import ::vc::fossil::import::cvs::state
namespace import ::vc::fossil::import::cvs::integrity
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::rev
}
namespace import ::vc::tools::misc::*
namespace import ::vc::tools::trouble
namespace import ::vc::tools::log
log register breakacycle
|
| ︙ | ︙ |
Changes to tools/cvs2fossil/lib/c2f_pbreakrcycle.tcl.
| ︙ | ︙ | |||
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
package require struct::list ; # Higher order list operations.
package require vc::tools::log ; # User feedback.
package require vc::fossil::import::cvs::repository ; # Repository management.
package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::project::rev ; # Project level changesets
# # ## ### ##### ######## ############# #####################
## Register the pass with the management
vc::fossil::import::cvs::pass define \
BreakRevCsetCycles \
| > | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
package require struct::list ; # Higher order list operations.
package require vc::tools::log ; # User feedback.
package require vc::fossil::import::cvs::repository ; # Repository management.
package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::integrity ; # State integrity checks.
package require vc::fossil::import::cvs::project::rev ; # Project level changesets
# # ## ### ##### ######## ############# #####################
## Register the pass with the management
vc::fossil::import::cvs::pass define \
BreakRevCsetCycles \
|
| ︙ | ︙ | |||
63 64 65 66 67 68 69 |
# Pass manager interface. Executed to perform the
# functionality of the pass.
cyclebreaker breakcmd {::vc::fossil::import::cvs::cyclebreaker break}
state transaction {
cyclebreaker run break-rev [myproc Changesets]
| | < | > > | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# Pass manager interface. Executed to perform the
# functionality of the pass.
cyclebreaker breakcmd {::vc::fossil::import::cvs::cyclebreaker break}
state transaction {
cyclebreaker run break-rev [myproc Changesets]
repository printcsetstatistics
integrity changesets
}
return
}
typemethod discard {} {
# Pass manager interface. Executed for all passes after the
# run passes, to remove all data of this pass from the state,
# as being out of date.
|
| ︙ | ︙ | |||
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
namespace eval ::vc::fossil::import::cvs::pass {
namespace export breakrcycle
namespace eval breakrcycle {
namespace import ::vc::fossil::import::cvs::cyclebreaker
namespace import ::vc::fossil::import::cvs::repository
namespace import ::vc::fossil::import::cvs::state
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::rev
}
namespace import ::vc::tools::log
log register breakrcycle
}
}
# # ## ### ##### ######## ############# #####################
## Ready
package provide vc::fossil::import::cvs::pass::breakrcycle 1.0
return
| > | 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
namespace eval ::vc::fossil::import::cvs::pass {
namespace export breakrcycle
namespace eval breakrcycle {
namespace import ::vc::fossil::import::cvs::cyclebreaker
namespace import ::vc::fossil::import::cvs::repository
namespace import ::vc::fossil::import::cvs::state
namespace import ::vc::fossil::import::cvs::integrity
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::rev
}
namespace import ::vc::tools::log
log register breakrcycle
}
}
# # ## ### ##### ######## ############# #####################
## Ready
package provide vc::fossil::import::cvs::pass::breakrcycle 1.0
return
|
Changes to tools/cvs2fossil/lib/c2f_pbreakscycle.tcl.
| ︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
package require struct::list ; # Higher order list operations.
package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles.
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::rev ; # Project level changesets
# # ## ### ##### ######## ############# #####################
## Register the pass with the management
vc::fossil::import::cvs::pass define \
BreakSymCsetCycles \
| > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
package require Tcl 8.4 ; # Required runtime.
package require snit ; # OO system.
package require struct::list ; # Higher order list operations.
package require vc::fossil::import::cvs::cyclebreaker ; # Breaking dependency cycles.
package require vc::fossil::import::cvs::repository ; # Repository management.
package require vc::fossil::import::cvs::state ; # State storage.
package require vc::fossil::import::cvs::integrity ; # State integrity checks.
package require vc::fossil::import::cvs::project::rev ; # Project level changesets
# # ## ### ##### ######## ############# #####################
## Register the pass with the management
vc::fossil::import::cvs::pass define \
BreakSymCsetCycles \
|
| ︙ | ︙ | |||
62 63 64 65 66 67 68 |
# Pass manager interface. Executed to perform the
# functionality of the pass.
cyclebreaker breakcmd {::vc::fossil::import::cvs::cyclebreaker break}
state transaction {
cyclebreaker run break-sym [myproc Changesets]
| | < | > > | 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# Pass manager interface. Executed to perform the
# functionality of the pass.
cyclebreaker breakcmd {::vc::fossil::import::cvs::cyclebreaker break}
state transaction {
cyclebreaker run break-sym [myproc Changesets]
repository printcsetstatistics
integrity changesets
}
return
}
typemethod discard {} {
# Pass manager interface. Executed for all passes after the
# run passes, to remove all data of this pass from the state,
# as being out of date.
|
| ︙ | ︙ | |||
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
namespace eval ::vc::fossil::import::cvs::pass {
namespace export breakscycle
namespace eval breakscycle {
namespace import ::vc::fossil::import::cvs::cyclebreaker
namespace import ::vc::fossil::import::cvs::repository
namespace import ::vc::fossil::import::cvs::state
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::rev
}
}
}
# # ## ### ##### ######## ############# #####################
## Ready
package provide vc::fossil::import::cvs::pass::breakscycle 1.0
return
| > | 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
namespace eval ::vc::fossil::import::cvs::pass {
namespace export breakscycle
namespace eval breakscycle {
namespace import ::vc::fossil::import::cvs::cyclebreaker
namespace import ::vc::fossil::import::cvs::repository
namespace import ::vc::fossil::import::cvs::state
namespace import ::vc::fossil::import::cvs::integrity
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::rev
}
}
}
# # ## ### ##### ######## ############# #####################
## Ready
package provide vc::fossil::import::cvs::pass::breakscycle 1.0
return
|
Changes to tools/cvs2fossil/lib/c2f_pinitcsets.tcl.
| ︙ | ︙ | |||
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::misc ; # Text formatting. package require vc::tools::log ; # User feedback. 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::project::rev ; # Project level changesets # # ## ### ##### ######## ############# ##################### ## Register the pass with the management vc::fossil::import::cvs::pass define \ | > | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | package require Tcl 8.4 ; # Required runtime. package require snit ; # OO system. package require vc::tools::misc ; # Text formatting. package require vc::tools::log ; # User feedback. package require vc::fossil::import::cvs::repository ; # Repository management. package require vc::fossil::import::cvs::state ; # State storage. package require vc::fossil::import::cvs::integrity ; # State integrity checks. package require vc::fossil::import::cvs::project::sym ; # Project level symbols package require vc::fossil::import::cvs::project::rev ; # Project level changesets # # ## ### ##### ######## ############# ##################### ## Register the pass with the management vc::fossil::import::cvs::pass define \ |
| ︙ | ︙ | |||
131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
state transaction {
CreateRevisionChangesets ; # Group file revisions into csets.
BreakInternalDependencies ; # Split the csets based on internal conflicts.
CreateSymbolChangesets ; # Create csets for tags and branches.
PersistTheChangesets
repository printcsetstatistics
}
return
}
typemethod discard {} {
# Pass manager interface. Executed for all passes after the
# run passes, to remove all data of this pass from the state,
| > | 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
state transaction {
CreateRevisionChangesets ; # Group file revisions into csets.
BreakInternalDependencies ; # Split the csets based on internal conflicts.
CreateSymbolChangesets ; # Create csets for tags and branches.
PersistTheChangesets
repository printcsetstatistics
integrity changesets
}
return
}
typemethod discard {} {
# Pass manager interface. Executed for all passes after the
# run passes, to remove all data of this pass from the state,
|
| ︙ | ︙ | |||
332 333 334 335 336 337 338 339 340 341 342 343 344 345 |
}
namespace eval ::vc::fossil::import::cvs::pass {
namespace export initcsets
namespace eval initcsets {
namespace import ::vc::fossil::import::cvs::repository
namespace import ::vc::fossil::import::cvs::state
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::rev
}
namespace import ::vc::tools::misc::*
namespace import ::vc::tools::log
log register initcsets
}
| > | 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 |
}
namespace eval ::vc::fossil::import::cvs::pass {
namespace export initcsets
namespace eval initcsets {
namespace import ::vc::fossil::import::cvs::repository
namespace import ::vc::fossil::import::cvs::state
namespace import ::vc::fossil::import::cvs::integrity
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::rev
}
namespace import ::vc::tools::misc::*
namespace import ::vc::tools::log
log register initcsets
}
|
| ︙ | ︙ |