Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/upgrade_utils/engine.py @ 46193:85f7cf314b39
engine: refactor actual cloning code into separate function
The `for ...` under which this cloning code exists is too complicated and based
on certain assumptions. I am going to refactor it in next patches and make it
bit saner.
Differential Revision: https://phab.mercurial-scm.org/D9579
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Mon, 14 Dec 2020 14:18:38 +0530 |
parents | aba979b1b90b |
children | 4d1cec4e5e1f |
comparison
equal
deleted
inserted
replaced
46192:25d11b24dedf | 46193:85f7cf314b39 |
---|---|
114 if entry.endswith(b'00changelog.i'): | 114 if entry.endswith(b'00changelog.i'): |
115 return UPGRADE_CHANGELOG in revlogfilter | 115 return UPGRADE_CHANGELOG in revlogfilter |
116 elif entry.endswith(b'00manifest.i'): | 116 elif entry.endswith(b'00manifest.i'): |
117 return UPGRADE_MANIFEST in revlogfilter | 117 return UPGRADE_MANIFEST in revlogfilter |
118 return UPGRADE_FILELOGS in revlogfilter | 118 return UPGRADE_FILELOGS in revlogfilter |
119 | |
120 | |
121 def _perform_clone( | |
122 ui, | |
123 dstrepo, | |
124 tr, | |
125 old_revlog, | |
126 unencoded, | |
127 deltareuse, | |
128 forcedeltabothparents, | |
129 revlogs, | |
130 sidedatacompanion, | |
131 oncopiedrevision, | |
132 ): | |
133 """ returns the new revlog object created""" | |
134 newrl = None | |
135 if matchrevlog(revlogs, unencoded): | |
136 ui.note( | |
137 _(b'cloning %d revisions from %s\n') % (len(old_revlog), unencoded) | |
138 ) | |
139 newrl = _revlogfrompath(dstrepo, unencoded) | |
140 old_revlog.clone( | |
141 tr, | |
142 newrl, | |
143 addrevisioncb=oncopiedrevision, | |
144 deltareuse=deltareuse, | |
145 forcedeltabothparents=forcedeltabothparents, | |
146 sidedatacompanion=sidedatacompanion, | |
147 ) | |
148 else: | |
149 msg = _(b'blindly copying %s containing %i revisions\n') | |
150 ui.note(msg % (unencoded, len(old_revlog))) | |
151 _copyrevlog(tr, dstrepo, old_revlog, unencoded) | |
152 | |
153 newrl = _revlogfrompath(dstrepo, unencoded) | |
154 return newrl | |
119 | 155 |
120 | 156 |
121 def _clonerevlogs( | 157 def _clonerevlogs( |
122 ui, | 158 ui, |
123 srcrepo, | 159 srcrepo, |
290 progress.complete() | 326 progress.complete() |
291 progress = srcrepo.ui.makeprogress( | 327 progress = srcrepo.ui.makeprogress( |
292 _(b'file revisions'), total=frevcount | 328 _(b'file revisions'), total=frevcount |
293 ) | 329 ) |
294 | 330 |
295 if matchrevlog(revlogs, unencoded): | 331 newrl = _perform_clone( |
296 ui.note( | 332 ui, |
297 _(b'cloning %d revisions from %s\n') % (len(oldrl), unencoded) | 333 dstrepo, |
298 ) | 334 tr, |
299 newrl = _revlogfrompath(dstrepo, unencoded) | 335 oldrl, |
300 oldrl.clone( | 336 unencoded, |
301 tr, | 337 deltareuse, |
302 newrl, | 338 forcedeltabothparents, |
303 addrevisioncb=oncopiedrevision, | 339 revlogs, |
304 deltareuse=deltareuse, | 340 sidedatacompanion, |
305 forcedeltabothparents=forcedeltabothparents, | 341 oncopiedrevision, |
306 sidedatacompanion=sidedatacompanion, | 342 ) |
307 ) | |
308 else: | |
309 msg = _(b'blindly copying %s containing %i revisions\n') | |
310 ui.note(msg % (unencoded, len(oldrl))) | |
311 _copyrevlog(tr, dstrepo, oldrl, unencoded) | |
312 | |
313 newrl = _revlogfrompath(dstrepo, unencoded) | |
314 | |
315 info = newrl.storageinfo(storedsize=True) | 343 info = newrl.storageinfo(storedsize=True) |
316 datasize = info[b'storedsize'] or 0 | 344 datasize = info[b'storedsize'] or 0 |
317 | 345 |
318 dstsize += datasize | 346 dstsize += datasize |
319 | 347 |