Differences From:
File
tools/cvs2fossil/lib/c2f_cyclebreaker.tcl
part of check-in
[960645443b]
- Extended checks for looped changesets.
by
aku on
2007-11-29 09:13:07.
[view]
To:
File
tools/cvs2fossil/lib/c2f_cyclebreaker.tcl
part of check-in
[b42cff97e3]
- Replaced the checks for self-referential changesets in the cycle breaker with a scheme in the changeset class doing checks when splitting a changeset, which is also called by the general changeset integrity code, after each pass. Extended log output at high verbosity levels. Thorough checking of the fragments a changeset is to be split into.
by
aku on
2007-11-30 03:57:19.
[view]
@@ -198,29 +198,8 @@
# Changesets may have dependencies outside of the
# chosen set. These are ignored
if {![$dg node exists $succ]} continue
$dg arc insert $cset $succ
-
- # Check for changesets referencing themselves. Such a
- # loop shows that the changeset in question has
- # internal dependencies. Something which is supposed
- # to be not possible, as pass 5 (InitCsets) takes care
- # to transform internal into external dependencies by
- # breaking the relevant changesets apart. So having
- # one indicates big trouble in pass 5. We report them
- # and dump internal structures to make it easier to
- # trace the links causing the problem.
- if {$succ eq $cset} {
- log write 2 cyclebreaker "LOOP changeset [$cset str] __________________"
- array set nmap [$cset nextmap]
- foreach r [lsort -dict [array names nmap]] {
- foreach succrev $nmap($r) {
- log write 2 cyclebreaker \
- "LOOP * <$r> --> <$succrev> --> cs [[project::rev ofitem $succrev] str]"
- }
- }
- trouble fatal "Self-referencing changeset [$cset str]"
- }
}
}
if {$log} {
@@ -233,11 +212,8 @@
if {$log} { Mark $dg -start }
MarkWatch $dg
PreHook $dg
MarkWatch $dg
-
- # This kills the application if loops (see above) were found.
- trouble abort?
return $dg
}
# Instead of searching the whole graph for the degree-0 nodes in
@@ -441,19 +417,8 @@
# The new changesets may have dependencies outside of
# the chosen set. These are ignored
if {![$dg node exists $succ]} continue
$dg arc insert $cset $succ
- if {$succ eq $cset} {
- log write 2 cyclebreaker "LOOP changeset [$cset str] __________________"
- array set nmap [$cset nextmap]
- foreach r [lsort -dict [array names nmap]] {
- foreach succrev $nmap($r) {
- log write 2 cyclebreaker \
- "LOOP * <$r> --> <$succrev> --> cs [[project::rev ofitem $succrev] str]"
- }
- }
- trouble internal "Self-referencing changeset [$cset str]"
- }
}
}
foreach cset $pre {
foreach succ [$cset successors] {