Fossil SCM

Removed lots of now dead code. Added a note to the last remaining user of the changeset method 'nextmap'.

aku 2007-12-05 02:21 trunk
Commit 3c0ef2c3799a576cd72e0240545289d6e383225e
--- tools/cvs2fossil/lib/c2f_prev.tcl
+++ tools/cvs2fossil/lib/c2f_prev.tcl
@@ -122,62 +122,14 @@
122122
FROM cssuccessor S
123123
WHERE S.cid = $myid
124124
}] [mytypemethod of]]
125125
}
126126
127
- # result = dict (item -> list (changeset))
128
- method successormap {} {
129
- # NOTE / FUTURE: Definitive bottleneck (can be millions of pairs).
130
- #
131
- # Only user is pass 9, computing the limits of backward
132
- # branches per branch in the changeset. TODO: Fold that into
133
- # the SQL query, i.e. move the crunching from Tcl to C.
134
-
135
- array set tmp {}
136
- foreach {rev children} [$self nextmap] {
137
- foreach child $children {
138
- lappend tmp($rev) $myitemmap($child)
139
- }
140
- set tmp($rev) [lsort -unique $tmp($rev)]
141
- }
142
- return [array get tmp]
143
- }
144
-
145
- # result = dict (item -> list (changeset))
146
- method predecessormap {} {
147
- # NOTE / FUTURE: Definitive bottleneck (can be millions of pairs).
148
- #
149
- # Only user is pass 9, computing the limits of backward
150
- # branches per branch in the changeset. TODO: Fold that into
151
- # the SQL query, i.e. move the crunching from Tcl to C.
152
-
153
- array set tmp {}
154
- foreach {rev children} [$self premap] {
155
- foreach child $children {
156
- lappend tmp($rev) $myitemmap($child)
157
- }
158
- set tmp($rev) [lsort -unique $tmp($rev)]
159
- }
160
- return [array get tmp]
161
- }
162
-
163127
# item -> list (item)
164128
method nextmap {} {
165
- #if {[llength $mynextmap]} { return $mynextmap }
166129
$mytypeobj successors tmp $myitems
167130
return [array get tmp]
168
- #set mynextmap [array get tmp]
169
- #return $mynextmap
170
- }
171
-
172
- # item -> list (item)
173
- method premap {} {
174
- #if {[llength $mypremap]} { return $mypremap }
175
- $mytypeobj predecessors tmp $myitems
176
- return [array get tmp]
177
- #set mypremap [array get tmp]
178
- #return $mypremap
179131
}
180132
181133
method breakinternaldependencies {} {
182134
183135
##
@@ -576,18 +528,10 @@
576528
# is based on.
577529
variable myitems {} ; # List of the file level revisions,
578530
# tags, or branches in the cset, as
579531
# ids. Not tagged.
580532
variable mytitems {} ; # As myitems, the tagged form.
581
- variable mypremap {} ; # Dictionary mapping from the items (tagged now)
582
- # to their predecessors, also tagged. A
583
- # cache to avoid loading this from the
584
- # state more than once.
585
- variable mynextmap {} ; # Dictionary mapping from the items (tagged)
586
- # to their successors (also tagged). A
587
- # cache to avoid loading this from the
588
- # state more than once.
589533
variable mypos {} ; # Commit position of the changeset, if
590534
# known.
591535
592536
# # ## ### ##### ######## #############
593537
## Internal methods
@@ -1094,71 +1038,10 @@
10941038
lappend dependencies([list rev $rid]) [list sym::branch $child]
10951039
}
10961040
return
10971041
}
10981042
1099
- # var(dv) = dict (item -> list (item)), item = list (type id)
1100
- typemethod predecessors {dv revisions} {
1101
- upvar 1 $dv dependencies
1102
- set theset ('[join $revisions {','}]')
1103
-
1104
- # The following cases specify when a revision P is a
1105
- # predecessor of a revision R. Each of the cases translates
1106
- # into one of the branches of the SQL UNION coming below.
1107
- #
1108
- # (1) The immediate parent R.parent of R is a predecessor of
1109
- # R. NOTE: This is true for R either primary or secondary
1110
- # child of P. It not necessary to distinguish the two
1111
- # cases, in contrast to the code retrieving the successor
1112
- # information.
1113
- #
1114
- # (2) The complement of successor case (3). The trunk root is
1115
- # a predecessor of a NTDB root. REMOVED. See 'successors'
1116
- # for the explanation.
1117
- #
1118
- # (3) The complement of successor case (4). The last NTDB
1119
- # revision belonging to the trunk is a predecessor of the
1120
- # primary child of the trunk root (The '1.2' revision).
1121
-
1122
- foreach {rid parent} [state run "
1123
- -- (1) Primary parent, can be in different LOD for first in a branch
1124
- SELECT R.rid, R.parent
1125
- FROM revision R
1126
- WHERE R.rid IN $theset -- Restrict to revisions of interest
1127
- AND R.parent IS NOT NULL -- Has primary parent
1128
- UNION
1129
- -- (3) Last NTDB on trunk is predecessor of child of trunk root
1130
- SELECT R.rid, RA.dbparent
1131
- FROM revision R, revision RA
1132
- WHERE R.rid IN $theset -- Restrict to revisions of interest
1133
- AND NOT R.isdefault -- not on NTDB
1134
- AND R.parent IS NOT NULL -- which are not root
1135
- AND RA.rid = R.parent -- go to their parent
1136
- AND RA.dbparent IS NOT NULL -- which has to refer to NTDB's root
1137
- "] {
1138
- # Consider moving this to the integrity module.
1139
- integrity assert {$rid != $parent} {Revision $rid depends on itself.}
1140
- lappend dependencies([list rev $rid]) [list rev $parent]
1141
- }
1142
-
1143
- # The revisions which are the first on a branch have that
1144
- # branch as their predecessor. Note that revisions cannot be
1145
- # on tags in the same manner, so tags cannot be predecessors
1146
- # of revisions. This complements that they have no successors
1147
- # (See sym::tag/successors).
1148
-
1149
- foreach {rid parent} [state run "
1150
- SELECT R.rid, B.bid
1151
- FROM revision R, branch B
1152
- WHERE R.rid IN $theset
1153
- AND B.first = R.rid
1154
- "] {
1155
- lappend dependencies([list rev $rid]) [list sym::branch $parent]
1156
- }
1157
- return
1158
- }
1159
-
11601043
# result = list (changeset-id)
11611044
typemethod cs_successors {revisions} {
11621045
# This is a variant of 'successors' which maps the low-level
11631046
# data directly to the associated changesets. I.e. instead
11641047
# millions of dependency pairs (in extreme cases (Example: Tcl
@@ -1258,49 +1141,10 @@
12581141
typemethod loops {tags} {
12591142
# Tags have no successors, therefore cannot cause loops
12601143
return {}
12611144
}
12621145
1263
- # var(dv) = dict (item -> list (item)), item = list (type id)
1264
- typemethod predecessors {dv tags} {
1265
- upvar 1 $dv dependencies
1266
- # The predecessors of a tag are all the revisions the tags are
1267
- # attached to, as well as all the branches or tags which are
1268
- # their prefered parents.
1269
-
1270
- set theset ('[join $tags {','}]')
1271
- foreach {tid parent} [state run "
1272
- SELECT T.tid, R.rid
1273
- FROM tag T, revision R
1274
- WHERE T.tid IN $theset
1275
- AND T.rev = R.rid
1276
- "] {
1277
- lappend dependencies([list sym::tag $tid]) [list rev $parent]
1278
- }
1279
-
1280
- foreach {tid parent} [state run "
1281
- SELECT T.tid, B.bid
1282
- FROM tag T, preferedparent P, branch B
1283
- WHERE T.tid IN $theset
1284
- AND T.sid = P.sid
1285
- AND P.pid = B.sid
1286
- "] {
1287
- lappend dependencies([list sym::tag $tid]) [list sym::branch $parent]
1288
- }
1289
-
1290
- foreach {tid parent} [state run "
1291
- SELECT T.tid, TX.tid
1292
- FROM tag T, preferedparent P, tag TX
1293
- WHERE T.tid IN $theset
1294
- AND T.sid = P.sid
1295
- AND P.pid = TX.sid
1296
- "] {
1297
- lappend dependencies([list sym::tag $tid]) [list sym::tag $parent]
1298
- }
1299
- return
1300
- }
1301
-
13021146
# result = list (changeset-id)
13031147
typemethod cs_successors {tags} {
13041148
# Tags have no successors.
13051149
return
13061150
}
@@ -1394,47 +1238,10 @@
13941238
AND B.sid = P.pid
13951239
AND T.sid = P.sid
13961240
"] {
13971241
lappend dependencies([list sym::branch $bid]) [list sym::tag $child]
13981242
}
1399
- return
1400
- }
1401
-
1402
- # var(dv) = dict (item -> list (item)), item = list (type id)
1403
- typemethod predecessors {dv branches} {
1404
- upvar 1 $dv dependencies
1405
- # The predecessors of a branch are all the revisions the
1406
- # branches are spawned from, as well as all the branches or
1407
- # tags which are their prefered parents.
1408
-
1409
- set theset ('[join $branches {','}]')
1410
- foreach {bid parent} [state run "
1411
- SELECT B.Bid, R.rid
1412
- FROM branch B, revision R
1413
- WHERE B.bid IN $theset
1414
- AND B.root = R.rid
1415
- "] {
1416
- lappend dependencies([list sym::branch $bid]) [list rev $parent]
1417
- }
1418
- foreach {bid parent} [state run "
1419
- SELECT B.bid, BX.bid
1420
- FROM branch B, preferedparent P, branch BX
1421
- WHERE B.bid IN $theset
1422
- AND B.sid = P.sid
1423
- AND P.pid = BX.sid
1424
- "] {
1425
- lappend dependencies([list sym::branch $bid]) [list sym::branch $parent]
1426
- }
1427
- foreach {bid parent} [state run "
1428
- SELECT B.bid, T.tid
1429
- FROM branch B, preferedparent P, tag T
1430
- WHERE B.bid IN $theset
1431
- AND B.sid = P.sid
1432
- AND P.pid = T.sid
1433
- "] {
1434
- lappend dependencies([list sym::branch $bid]) [list sym::tag $parent]
1435
- }
14361243
return
14371244
}
14381245
14391246
# result = list (changeset-id)
14401247
typemethod cs_successors {branches} {
14411248
--- tools/cvs2fossil/lib/c2f_prev.tcl
+++ tools/cvs2fossil/lib/c2f_prev.tcl
@@ -122,62 +122,14 @@
122 FROM cssuccessor S
123 WHERE S.cid = $myid
124 }] [mytypemethod of]]
125 }
126
127 # result = dict (item -> list (changeset))
128 method successormap {} {
129 # NOTE / FUTURE: Definitive bottleneck (can be millions of pairs).
130 #
131 # Only user is pass 9, computing the limits of backward
132 # branches per branch in the changeset. TODO: Fold that into
133 # the SQL query, i.e. move the crunching from Tcl to C.
134
135 array set tmp {}
136 foreach {rev children} [$self nextmap] {
137 foreach child $children {
138 lappend tmp($rev) $myitemmap($child)
139 }
140 set tmp($rev) [lsort -unique $tmp($rev)]
141 }
142 return [array get tmp]
143 }
144
145 # result = dict (item -> list (changeset))
146 method predecessormap {} {
147 # NOTE / FUTURE: Definitive bottleneck (can be millions of pairs).
148 #
149 # Only user is pass 9, computing the limits of backward
150 # branches per branch in the changeset. TODO: Fold that into
151 # the SQL query, i.e. move the crunching from Tcl to C.
152
153 array set tmp {}
154 foreach {rev children} [$self premap] {
155 foreach child $children {
156 lappend tmp($rev) $myitemmap($child)
157 }
158 set tmp($rev) [lsort -unique $tmp($rev)]
159 }
160 return [array get tmp]
161 }
162
163 # item -> list (item)
164 method nextmap {} {
165 #if {[llength $mynextmap]} { return $mynextmap }
166 $mytypeobj successors tmp $myitems
167 return [array get tmp]
168 #set mynextmap [array get tmp]
169 #return $mynextmap
170 }
171
172 # item -> list (item)
173 method premap {} {
174 #if {[llength $mypremap]} { return $mypremap }
175 $mytypeobj predecessors tmp $myitems
176 return [array get tmp]
177 #set mypremap [array get tmp]
178 #return $mypremap
179 }
180
181 method breakinternaldependencies {} {
182
183 ##
@@ -576,18 +528,10 @@
576 # is based on.
577 variable myitems {} ; # List of the file level revisions,
578 # tags, or branches in the cset, as
579 # ids. Not tagged.
580 variable mytitems {} ; # As myitems, the tagged form.
581 variable mypremap {} ; # Dictionary mapping from the items (tagged now)
582 # to their predecessors, also tagged. A
583 # cache to avoid loading this from the
584 # state more than once.
585 variable mynextmap {} ; # Dictionary mapping from the items (tagged)
586 # to their successors (also tagged). A
587 # cache to avoid loading this from the
588 # state more than once.
589 variable mypos {} ; # Commit position of the changeset, if
590 # known.
591
592 # # ## ### ##### ######## #############
593 ## Internal methods
@@ -1094,71 +1038,10 @@
1094 lappend dependencies([list rev $rid]) [list sym::branch $child]
1095 }
1096 return
1097 }
1098
1099 # var(dv) = dict (item -> list (item)), item = list (type id)
1100 typemethod predecessors {dv revisions} {
1101 upvar 1 $dv dependencies
1102 set theset ('[join $revisions {','}]')
1103
1104 # The following cases specify when a revision P is a
1105 # predecessor of a revision R. Each of the cases translates
1106 # into one of the branches of the SQL UNION coming below.
1107 #
1108 # (1) The immediate parent R.parent of R is a predecessor of
1109 # R. NOTE: This is true for R either primary or secondary
1110 # child of P. It not necessary to distinguish the two
1111 # cases, in contrast to the code retrieving the successor
1112 # information.
1113 #
1114 # (2) The complement of successor case (3). The trunk root is
1115 # a predecessor of a NTDB root. REMOVED. See 'successors'
1116 # for the explanation.
1117 #
1118 # (3) The complement of successor case (4). The last NTDB
1119 # revision belonging to the trunk is a predecessor of the
1120 # primary child of the trunk root (The '1.2' revision).
1121
1122 foreach {rid parent} [state run "
1123 -- (1) Primary parent, can be in different LOD for first in a branch
1124 SELECT R.rid, R.parent
1125 FROM revision R
1126 WHERE R.rid IN $theset -- Restrict to revisions of interest
1127 AND R.parent IS NOT NULL -- Has primary parent
1128 UNION
1129 -- (3) Last NTDB on trunk is predecessor of child of trunk root
1130 SELECT R.rid, RA.dbparent
1131 FROM revision R, revision RA
1132 WHERE R.rid IN $theset -- Restrict to revisions of interest
1133 AND NOT R.isdefault -- not on NTDB
1134 AND R.parent IS NOT NULL -- which are not root
1135 AND RA.rid = R.parent -- go to their parent
1136 AND RA.dbparent IS NOT NULL -- which has to refer to NTDB's root
1137 "] {
1138 # Consider moving this to the integrity module.
1139 integrity assert {$rid != $parent} {Revision $rid depends on itself.}
1140 lappend dependencies([list rev $rid]) [list rev $parent]
1141 }
1142
1143 # The revisions which are the first on a branch have that
1144 # branch as their predecessor. Note that revisions cannot be
1145 # on tags in the same manner, so tags cannot be predecessors
1146 # of revisions. This complements that they have no successors
1147 # (See sym::tag/successors).
1148
1149 foreach {rid parent} [state run "
1150 SELECT R.rid, B.bid
1151 FROM revision R, branch B
1152 WHERE R.rid IN $theset
1153 AND B.first = R.rid
1154 "] {
1155 lappend dependencies([list rev $rid]) [list sym::branch $parent]
1156 }
1157 return
1158 }
1159
1160 # result = list (changeset-id)
1161 typemethod cs_successors {revisions} {
1162 # This is a variant of 'successors' which maps the low-level
1163 # data directly to the associated changesets. I.e. instead
1164 # millions of dependency pairs (in extreme cases (Example: Tcl
@@ -1258,49 +1141,10 @@
1258 typemethod loops {tags} {
1259 # Tags have no successors, therefore cannot cause loops
1260 return {}
1261 }
1262
1263 # var(dv) = dict (item -> list (item)), item = list (type id)
1264 typemethod predecessors {dv tags} {
1265 upvar 1 $dv dependencies
1266 # The predecessors of a tag are all the revisions the tags are
1267 # attached to, as well as all the branches or tags which are
1268 # their prefered parents.
1269
1270 set theset ('[join $tags {','}]')
1271 foreach {tid parent} [state run "
1272 SELECT T.tid, R.rid
1273 FROM tag T, revision R
1274 WHERE T.tid IN $theset
1275 AND T.rev = R.rid
1276 "] {
1277 lappend dependencies([list sym::tag $tid]) [list rev $parent]
1278 }
1279
1280 foreach {tid parent} [state run "
1281 SELECT T.tid, B.bid
1282 FROM tag T, preferedparent P, branch B
1283 WHERE T.tid IN $theset
1284 AND T.sid = P.sid
1285 AND P.pid = B.sid
1286 "] {
1287 lappend dependencies([list sym::tag $tid]) [list sym::branch $parent]
1288 }
1289
1290 foreach {tid parent} [state run "
1291 SELECT T.tid, TX.tid
1292 FROM tag T, preferedparent P, tag TX
1293 WHERE T.tid IN $theset
1294 AND T.sid = P.sid
1295 AND P.pid = TX.sid
1296 "] {
1297 lappend dependencies([list sym::tag $tid]) [list sym::tag $parent]
1298 }
1299 return
1300 }
1301
1302 # result = list (changeset-id)
1303 typemethod cs_successors {tags} {
1304 # Tags have no successors.
1305 return
1306 }
@@ -1394,47 +1238,10 @@
1394 AND B.sid = P.pid
1395 AND T.sid = P.sid
1396 "] {
1397 lappend dependencies([list sym::branch $bid]) [list sym::tag $child]
1398 }
1399 return
1400 }
1401
1402 # var(dv) = dict (item -> list (item)), item = list (type id)
1403 typemethod predecessors {dv branches} {
1404 upvar 1 $dv dependencies
1405 # The predecessors of a branch are all the revisions the
1406 # branches are spawned from, as well as all the branches or
1407 # tags which are their prefered parents.
1408
1409 set theset ('[join $branches {','}]')
1410 foreach {bid parent} [state run "
1411 SELECT B.Bid, R.rid
1412 FROM branch B, revision R
1413 WHERE B.bid IN $theset
1414 AND B.root = R.rid
1415 "] {
1416 lappend dependencies([list sym::branch $bid]) [list rev $parent]
1417 }
1418 foreach {bid parent} [state run "
1419 SELECT B.bid, BX.bid
1420 FROM branch B, preferedparent P, branch BX
1421 WHERE B.bid IN $theset
1422 AND B.sid = P.sid
1423 AND P.pid = BX.sid
1424 "] {
1425 lappend dependencies([list sym::branch $bid]) [list sym::branch $parent]
1426 }
1427 foreach {bid parent} [state run "
1428 SELECT B.bid, T.tid
1429 FROM branch B, preferedparent P, tag T
1430 WHERE B.bid IN $theset
1431 AND B.sid = P.sid
1432 AND P.pid = T.sid
1433 "] {
1434 lappend dependencies([list sym::branch $bid]) [list sym::tag $parent]
1435 }
1436 return
1437 }
1438
1439 # result = list (changeset-id)
1440 typemethod cs_successors {branches} {
1441
--- tools/cvs2fossil/lib/c2f_prev.tcl
+++ tools/cvs2fossil/lib/c2f_prev.tcl
@@ -122,62 +122,14 @@
122 FROM cssuccessor S
123 WHERE S.cid = $myid
124 }] [mytypemethod of]]
125 }
126
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127 # item -> list (item)
128 method nextmap {} {
 
129 $mytypeobj successors tmp $myitems
130 return [array get tmp]
 
 
 
 
 
 
 
 
 
 
 
131 }
132
133 method breakinternaldependencies {} {
134
135 ##
@@ -576,18 +528,10 @@
528 # is based on.
529 variable myitems {} ; # List of the file level revisions,
530 # tags, or branches in the cset, as
531 # ids. Not tagged.
532 variable mytitems {} ; # As myitems, the tagged form.
 
 
 
 
 
 
 
 
533 variable mypos {} ; # Commit position of the changeset, if
534 # known.
535
536 # # ## ### ##### ######## #############
537 ## Internal methods
@@ -1094,71 +1038,10 @@
1038 lappend dependencies([list rev $rid]) [list sym::branch $child]
1039 }
1040 return
1041 }
1042
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1043 # result = list (changeset-id)
1044 typemethod cs_successors {revisions} {
1045 # This is a variant of 'successors' which maps the low-level
1046 # data directly to the associated changesets. I.e. instead
1047 # millions of dependency pairs (in extreme cases (Example: Tcl
@@ -1258,49 +1141,10 @@
1141 typemethod loops {tags} {
1142 # Tags have no successors, therefore cannot cause loops
1143 return {}
1144 }
1145
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1146 # result = list (changeset-id)
1147 typemethod cs_successors {tags} {
1148 # Tags have no successors.
1149 return
1150 }
@@ -1394,47 +1238,10 @@
1238 AND B.sid = P.pid
1239 AND T.sid = P.sid
1240 "] {
1241 lappend dependencies([list sym::branch $bid]) [list sym::tag $child]
1242 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1243 return
1244 }
1245
1246 # result = list (changeset-id)
1247 typemethod cs_successors {branches} {
1248
--- tools/cvs2fossil/lib/c2f_prevlink.tcl
+++ tools/cvs2fossil/lib/c2f_prevlink.tcl
@@ -50,11 +50,11 @@
5050
# 1. Revisions whose predecessors are not in PREV, nor are
5151
# their successors found in NEXT. These revisions do not
5252
# count, as they did not induce any of the two dependencies
5353
# under consideration. They can be ignored.
5454
55
- # 2. Revisions which have predecessors in PREV and sucessors
55
+ # 2. Revisions which have predecessors in PREV and successors
5656
# in NEXT. They are called 'passthrough' in cvs2svn. They
5757
# induce both dependencies under consideration and are thus
5858
# critical in the creation of the cycle. As such they are
5959
# also unbreakable :(
6060
@@ -69,10 +69,14 @@
6969
# If we have no passthrough revisions then splitting the
7070
# changeset between categories 3 and 4, with category 1 going
7171
# wherever, will break the cycle. If category 2 revisions are
7272
# present we can still perform the split, this will however
7373
# not break the cycle, only weaken it.
74
+
75
+ # NOTE: This is the only remaining user of 'nextmap'. Look
76
+ # into the possibility of performing the relevant counting
77
+ # within the database.
7478
7579
array set csetprevmap [Invert [$myprev nextmap]]
7680
array set csetnextmap [$mycset nextmap]
7781
7882
set prevrev [$myprev items]
7983
--- tools/cvs2fossil/lib/c2f_prevlink.tcl
+++ tools/cvs2fossil/lib/c2f_prevlink.tcl
@@ -50,11 +50,11 @@
50 # 1. Revisions whose predecessors are not in PREV, nor are
51 # their successors found in NEXT. These revisions do not
52 # count, as they did not induce any of the two dependencies
53 # under consideration. They can be ignored.
54
55 # 2. Revisions which have predecessors in PREV and sucessors
56 # in NEXT. They are called 'passthrough' in cvs2svn. They
57 # induce both dependencies under consideration and are thus
58 # critical in the creation of the cycle. As such they are
59 # also unbreakable :(
60
@@ -69,10 +69,14 @@
69 # If we have no passthrough revisions then splitting the
70 # changeset between categories 3 and 4, with category 1 going
71 # wherever, will break the cycle. If category 2 revisions are
72 # present we can still perform the split, this will however
73 # not break the cycle, only weaken it.
 
 
 
 
74
75 array set csetprevmap [Invert [$myprev nextmap]]
76 array set csetnextmap [$mycset nextmap]
77
78 set prevrev [$myprev items]
79
--- tools/cvs2fossil/lib/c2f_prevlink.tcl
+++ tools/cvs2fossil/lib/c2f_prevlink.tcl
@@ -50,11 +50,11 @@
50 # 1. Revisions whose predecessors are not in PREV, nor are
51 # their successors found in NEXT. These revisions do not
52 # count, as they did not induce any of the two dependencies
53 # under consideration. They can be ignored.
54
55 # 2. Revisions which have predecessors in PREV and successors
56 # in NEXT. They are called 'passthrough' in cvs2svn. They
57 # induce both dependencies under consideration and are thus
58 # critical in the creation of the cycle. As such they are
59 # also unbreakable :(
60
@@ -69,10 +69,14 @@
69 # If we have no passthrough revisions then splitting the
70 # changeset between categories 3 and 4, with category 1 going
71 # wherever, will break the cycle. If category 2 revisions are
72 # present we can still perform the split, this will however
73 # not break the cycle, only weaken it.
74
75 # NOTE: This is the only remaining user of 'nextmap'. Look
76 # into the possibility of performing the relevant counting
77 # within the database.
78
79 array set csetprevmap [Invert [$myprev nextmap]]
80 array set csetnextmap [$mycset nextmap]
81
82 set prevrev [$myprev items]
83

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button