Commit 8262574
git-svn: improve rebase/mkdirs performance
Processing empty_dir directives becomes extremely slow for svn
repositories with a large enough history.
This is due to using a single hash to store the list of empty
directories, with the expensive step being purging items from
that hash using grep+delete.
Storing directories in a hash of hashes improves the performance
of this purge step and removes a potentially lengthy delay after
every rebase/mkdirs command.
The svn repository with this behaviour has 110K commits with
unhandled.log containing 170K empty_dir directives.
This takes 10 minutes to process when using a single hash, vs
3 seconds with a hash of hashes.
Signed-off-by: Dair Grant <dair@feralinteractive.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>1 parent f34be46 commit 8262574
1 file changed
+76
-8
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1211 | 1211 | | |
1212 | 1212 | | |
1213 | 1213 | | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
1214 | 1280 | | |
1215 | | - | |
| 1281 | + | |
1216 | 1282 | | |
1217 | 1283 | | |
1218 | 1284 | | |
1219 | | - | |
| 1285 | + | |
1220 | 1286 | | |
1221 | | - | |
1222 | | - | |
| 1287 | + | |
1223 | 1288 | | |
1224 | 1289 | | |
1225 | 1290 | | |
1226 | 1291 | | |
1227 | | - | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
1228 | 1295 | | |
1229 | 1296 | | |
1230 | 1297 | | |
| |||
1235 | 1302 | | |
1236 | 1303 | | |
1237 | 1304 | | |
1238 | | - | |
| 1305 | + | |
1239 | 1306 | | |
1240 | 1307 | | |
1241 | 1308 | | |
| |||
1244 | 1311 | | |
1245 | 1312 | | |
1246 | 1313 | | |
1247 | | - | |
| 1314 | + | |
1248 | 1315 | | |
1249 | 1316 | | |
1250 | 1317 | | |
1251 | 1318 | | |
| 1319 | + | |
1252 | 1320 | | |
1253 | | - | |
| 1321 | + | |
1254 | 1322 | | |
1255 | 1323 | | |
1256 | 1324 | | |
| |||
0 commit comments