| | @@ -56,22 +56,33 @@ |
| 56 | 56 | old.blob AS child |
| 57 | 57 | WHERE |
| 58 | 58 | (child.rid = plink.cid) |
| 59 | 59 | AND (parent.rid = plink.pid); |
| 60 | 60 | |
| 61 | +-- Create sets of all checkins. |
| 61 | 62 | |
| 62 | 63 | CREATE TEMPORARY VIEW newcheckins AS |
| 63 | | - SELECT parent AS id, parentrid AS rid FROM newcheckinmap |
| 64 | | - UNION |
| 65 | | - SELECT child AS id, rid AS rid FROM newcheckinmap; |
| 64 | + SELECT |
| 65 | + blob.uuid AS id, |
| 66 | + blob.rid AS rid |
| 67 | + FROM |
| 68 | + new.blob, new.event |
| 69 | + ON |
| 70 | + blob.rid = event.objid |
| 71 | + WHERE |
| 72 | + event.type = "ci"; |
| 66 | 73 | |
| 67 | 74 | CREATE TEMPORARY VIEW oldcheckins AS |
| 68 | | - SELECT parent AS id, parentrid AS rid FROM oldcheckinmap |
| 69 | | - UNION |
| 70 | | - SELECT child AS id, rid AS rid FROM oldcheckinmap; |
| 75 | + SELECT |
| 76 | + blob.uuid AS id, |
| 77 | + blob.rid AS rid |
| 78 | + FROM |
| 79 | + old.blob, old.event |
| 80 | + ON |
| 81 | + blob.rid = event.objid |
| 82 | + WHERE |
| 83 | + event.type = "ci"; |
| 71 | 84 | |
| 72 | 85 | -- Now create maps of checkin->file artifacts. |
| 73 | 86 | |
| 74 | 87 | CREATE TEMPORARY VIEW newfiles AS |
| 75 | 88 | SELECT |
| | @@ -101,11 +112,11 @@ |
| 101 | 112 | FROM |
| 102 | 113 | newcheckinmap, ancestors |
| 103 | 114 | ON |
| 104 | 115 | newcheckinmap.child = ancestors.id |
| 105 | 116 | WHERE |
| 106 | | - -- Filter to include checkins which *aren't* in oldrepo. |
| 117 | + -- Filter to only include checkins which *aren't* in oldrepo. |
| 107 | 118 | NOT EXISTS(SELECT * FROM oldcheckinmap WHERE |
| 108 | 119 | oldcheckinmap.child = newcheckinmap.parent) |
| 109 | 120 | ORDER BY |
| 110 | 121 | newcheckinmap.mtime DESC |
| 111 | 122 | ) |
| | @@ -128,17 +139,17 @@ |
| 128 | 139 | -- ignore, we have to emit a list of all rids in newrepo which don't correspond |
| 129 | 140 | -- to the list above. |
| 130 | 141 | |
| 131 | 142 | CREATE TEMPORARY VIEW skipcheckinrids AS |
| 132 | 143 | SELECT |
| 133 | | - "c" || oldcheckins.rid AS msg, |
| 134 | | - oldcheckins.rid AS rid, |
| 135 | | - oldcheckins.id AS id |
| 144 | + "c" || newcheckins.rid AS msg, |
| 145 | + newcheckins.rid AS rid, |
| 146 | + newcheckins.id AS id |
| 136 | 147 | FROM |
| 137 | | - oldcheckins LEFT JOIN desiredcheckins |
| 148 | + newcheckins LEFT JOIN desiredcheckins |
| 138 | 149 | ON |
| 139 | | - desiredcheckins.id = oldcheckins.id |
| 150 | + desiredcheckins.id = newcheckins.id |
| 140 | 151 | WHERE |
| 141 | 152 | desiredcheckins.id IS NULL |
| 142 | 153 | ORDER BY |
| 143 | 154 | rid ASC; |
| 144 | 155 | |
| | @@ -158,7 +169,8 @@ |
| 158 | 169 | UNION |
| 159 | 170 | SELECT msg FROM skipcheckinrids; |
| 160 | 171 | |
| 161 | 172 | EOF |
| 162 | 173 | |
| 174 | +#cat $ridlist |
| 163 | 175 | fossil export --git --import-marks $ridlist $newrepo |
| 164 | 176 | |
| 165 | 177 | |