@@ -69,10 +69,14 @@
69 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# The removal of excluded symbols and everything referencing
70 70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# to them is done completely in the database.
71 71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
72 72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
state transaction {
73 73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FilterExcludedSymbols
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MutateTagsToBranch
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ MutateBranchesToTag
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Consider a rerun of the pass 2 paranoia checks.
74 78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
75 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
log write 1 filtersym "Filtering completed"
77 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
78 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -86,10 +90,12 @@
86 90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
87 91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# # ## ### ##### ######## #############
88 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
## Internal methods
89 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
90 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
proc FilterExcludedSymbols {} {
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ log write 3 filtersym "Filter out excluded symbols and users"
96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
91 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# We pull all the excluded symbols together into a table for
92 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# easy reference by the upcoming DELETE and other statements.
93 99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# ('x IN table' clauses).
94 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
95 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set excl [project::sym excluded]
@@ -175,10 +181,60 @@
175 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DELETE FROM tag WHERE sid IN excludedsymbols;
176 182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DELETE FROM branch WHERE lod IN excludedsymbols;
177 183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DELETE FROM branch WHERE sid IN excludedsymbols;
178 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
179 185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DROP TABLE excludedsymbols;
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc MutateTagsToBranch {} {
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ log write 3 filtersym "Mutate tags to branches"
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Next, now that we know which symbols are what we look for
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # file level tags which are actually converted as branches
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # (project level), and put them into the correct table.
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set branch [project::sym branch]
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set tagstomutate [state run {
200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SELECT T.tid, T.fid, T.lod, T.sid, T.rev
201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FROM tag T, symbol S
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WHERE T.sid = S.sid
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ AND S.type = $branch
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }]
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach {id fid lod sid rev} $tagstomutate {
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ state run {
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ DELETE FROM tag WHERE tid = $id ;
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ INSERT INTO branch (bid, fid, lod, sid, root, first, bra)
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VALUES ($id, $fid, $lod, $sid, $rev, NULL, '');
210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ proc MutateBranchesToTag {} {
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ log write 3 filtersym "Mutate branches to tags"
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # Next, now that we know which symbols are what we look for
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # file level branches which are actually converted as tags
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # (project level), and put them into the correct table.
221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set tag [project::sym tag]
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set branchestomutate [state run {
225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ SELECT B.bid, B.fid, B.lod, B.sid, B.root, B.first, B.bra
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ FROM branch B, symbol S
227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ WHERE B.sid = S.sid
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ AND S.type = $tag
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }]
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ foreach {id fid lod sid root first bra} $branchestomutate {
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ state run {
232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ DELETE FROM branch WHERE bid = $id ;
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ INSERT INTO tag (tid, fid, lod, sid, rev)
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ VALUES ($id, $fid, $lod, $sid, $root);
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
180 236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
181 237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return
182 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
183 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
184 240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# # ## ### ##### ######## #############
185 241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!