Differences From:
File
tools/cvs2fossil/lib/c2f_prev.tcl
part of check-in
[911d56a8c8]
- Changesets, extended human readable representation, and tweaking of log output.
by
aku on
2007-11-27 09:03:07.
[view]
To:
File
tools/cvs2fossil/lib/c2f_prev.tcl
part of check-in
[47d52d1efd]
- Added convenience method for assertions and used it in place of the existing if/trouble internal constructions. Changed API of 'log write' so that we can defer substituation of the message to when the write actually happen, and converted all places which would be hit by double-substitution. The remaining 'log write' calls will be converted incrementally.
by
aku on
2007-11-28 05:39:49.
[view]
@@ -21,8 +21,9 @@
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::integrity ; # State integrity checks.
package require vc::fossil::import::cvs::project::sym ; # Project level symbols
# # ## ### ##### ######## ############# #####################
##
@@ -201,11 +202,11 @@
while {$at < [llength $pending]} {
set current [lindex $pending $at]
- log write 6 csets ". . .. ... ..... ........ ............."
- log write 6 csets "Scheduled [join [PRs [lrange $pending $at end]] { }]"
- log write 6 csets "Considering [PR $current] \[$at/[llength $pending]\]"
+ log write 6 csets {. . .. ... ..... ........ .............}
+ log write 6 csets {Scheduled [join [PRs [lrange $pending $at end]] { }]}
+ log write 6 csets {Considering [PR $current] \[$at/[llength $pending]\]}
set best [FindBestBreak $current]
if {$best < 0} {
@@ -234,14 +235,10 @@
set fragafter [lrange $current $bnext end]
log write 6 csets "New pieces [PR $fragbefore] [PR $fragafter]"
- if {![llength $fragbefore]} {
- trouble internal "Tried to split off a zero-length fragment at the beginning"
- }
- if {![llength $fragafter]} {
- trouble internal "Tried to split off a zero-length fragment at the end"
- }
+ integrity assert {[llength $fragbefore]} {Found zero-length fragment at the beginning}
+ integrity assert {[llength $fragafter]} {Found zero-length fragment at the end}
lappend pending $fragbefore $fragafter
CutAt $best
}
@@ -267,18 +264,14 @@
#puts \t.[join [PRs $fragments] .\n\t.].
Border [lindex $fragments 0] firsts firste
- if {$firsts != 0} {
- trouble internal "Bad fragment start @ $firsts, gap, or before beginning of the range"
- }
+ integrity assert {$firsts == 0} {Bad fragment start @ $firsts, gap, or before beginning of the range}
set laste $firste
foreach fragment [lrange $fragments 1 end] {
Border $fragment s e
- if {$laste != ($s - 1)} {
- trouble internal "Bad fragment border <$laste | $s>, gap or overlap"
- }
+ integrity assert {$laste == ($s - 1)} {Bad fragment border <$laste | $s>, gap or overlap}
set new [$type %AUTO% $myproject $mytype $mysrcid [lrange $myrevisions $s $e]]
log write 4 csets "Breaking [$self str ] @ $laste, new [$new str], cutting $breaks($laste)"
@@ -285,11 +278,11 @@
set laste $e
}
- if {$laste != ([llength $myrevisions]-1)} {
- trouble internal "Bad fragment end @ $laste, gap, or beyond end of the range"
- }
+ integrity assert {
+ $laste == ([llength $myrevisions]-1)
+ } {Bad fragment end @ $laste, gap, or beyond end of the range}
# Put the first fragment into the current changeset, and
# update the in-memory index. We can simply (re)add the
# revisions because we cleared the previously existing
@@ -366,11 +359,11 @@
$cset destroy
set newcsets {}
foreach fragmentrevisions $args {
- if {![llength $fragmentrevisions]} {
- trouble internal "Attempted to create an empty changeset, i.e. without revisions"
- }
+ integrity assert {
+ [llength $fragmentrevisions]
+ } {Attempted to create an empty changeset, i.e. without revisions}
lappend newcsets [$type %AUTO% $project $cstype $cssrc $fragmentrevisions]
}
foreach c $newcsets { $c persist }
@@ -465,11 +458,9 @@
AND RA.child IS NOT NULL -- Has primary child.
AND RA.child IN $theset -- Which is also of interest
"] {
# Consider moving this to the integrity module.
- if {$rid == $child} {
- trouble internal "Revision $rid depends on itself."
- }
+ integrity assert {$rid != $child} {Revision $rid depends on itself.}
lappend dependencies($rid) $child
set dep($rid,$child) .
}
@@ -565,11 +556,9 @@
AND RA.rid = R.dbchild -- Go directly to trunk root
AND RA.child IS NOT NULL -- Has primary child.
"] {
# Consider moving this to the integrity module.
- if {$rid == $child} {
- trouble internal "Revision $rid depends on itself."
- }
+ integrity assert {$rid != $child} {Revision $rid depends on itself.}
lappend dependencies($rid) $child
}
return
}
@@ -612,11 +601,9 @@
AND RA.rid = R.parent -- go to their parent
AND RA.dbparent IS NOT NULL -- which has to refer to NTDB's root
"] {
# Consider moving this to the integrity module.
- if {$rid == $parent} {
- trouble internal "Revision $rid depends on itself."
- }
+ integrity assert {$rid != $parent} {Revision $rid depends on itself.}
lappend dependencies($rid) $parent
}
return
}
@@ -861,8 +848,9 @@
namespace eval ::vc::fossil::import::cvs::project {
namespace export rev
namespace eval rev {
namespace import ::vc::fossil::import::cvs::state
+ namespace import ::vc::fossil::import::cvs::integrity
namespace eval project {
namespace import ::vc::fossil::import::cvs::project::sym
}
::variable mybranchcode [project::sym branch]