1150 median = len(allpclusters[nbcluster//2][1]) |
1150 median = len(allpclusters[nbcluster//2][1]) |
1151 ui.write(' median length: %9i\n' % median) |
1151 ui.write(' median length: %9i\n' % median) |
1152 mean = sum(len(x[1]) for x in allpclusters) // nbcluster |
1152 mean = sum(len(x[1]) for x in allpclusters) // nbcluster |
1153 ui.write(' mean length: %9i\n' % mean) |
1153 ui.write(' mean length: %9i\n' % mean) |
1154 |
1154 |
|
1155 def _solveone(ui, repo, ctx, dryrun, confirm, progresscb): |
|
1156 """Resolve the troubles affecting one revision""" |
|
1157 wlock = lock = tr = None |
|
1158 try: |
|
1159 wlock = repo.wlock() |
|
1160 lock = repo.lock() |
|
1161 tr = repo.transaction("evolve") |
|
1162 result = _evolveany(ui, repo, ctx, dryrun, confirm, |
|
1163 progresscb=progresscb) |
|
1164 tr.close() |
|
1165 return result |
|
1166 finally: |
|
1167 lockmod.release(tr, lock, wlock) |
|
1168 |
1155 def handlenotrouble(ui, repo, startnode, dryrunopt): |
1169 def handlenotrouble(ui, repo, startnode, dryrunopt): |
1156 if repo['.'].obsolete(): |
1170 if repo['.'].obsolete(): |
1157 displayer = cmdutil.show_changeset( |
1171 displayer = cmdutil.show_changeset( |
1158 ui, repo, {'template': shorttemplate}) |
1172 ui, repo, {'template': shorttemplate}) |
1159 successors = set() |
1173 successors = set() |
1265 |
1279 |
1266 # No trouble to resolve |
1280 # No trouble to resolve |
1267 if not nexttrouble: |
1281 if not nexttrouble: |
1268 return handlenotrouble(ui, repo, startnode, dryrunopt) |
1282 return handlenotrouble(ui, repo, startnode, dryrunopt) |
1269 |
1283 |
1270 while nexttrouble is not None: |
1284 if allopt: |
1271 progresscb() |
1285 # Resolving all the troubles |
1272 wlock = lock = tr = None |
1286 while nexttrouble: |
1273 try: |
1287 progresscb() |
1274 wlock = repo.wlock() |
1288 _solveone(ui, repo, nexttrouble, dryrunopt, confirmopt, progresscb) |
1275 lock = repo.lock() |
1289 seen += 1 |
1276 tr = repo.transaction("evolve") |
1290 progresscb() |
1277 result = _evolveany(ui, repo, nexttrouble, dryrunopt, confirmopt, |
1291 nexttrouble= _picknexttroubled(ui, repo, anyopt or allopt) |
1278 progresscb=progresscb) |
1292 else: |
1279 tr.close() |
1293 # Resolving a single trouble |
1280 finally: |
1294 _solveone(ui, repo, nexttrouble, dryrunopt, confirmopt, progresscb) |
1281 lockmod.release(tr, lock, wlock) |
|
1282 progresscb() |
|
1283 seen += 1 |
|
1284 if not allopt: |
|
1285 if repo['.'] != startnode: |
|
1286 ui.status(_('working directory is now at %s\n') % repo['.']) |
|
1287 return result |
|
1288 progresscb() |
|
1289 nexttrouble = _picknexttroubled(ui, repo, anyopt or allopt) |
|
1290 |
1295 |
1291 # Cleanup |
1296 # Cleanup |
1292 if showprogress: |
1297 if showprogress: |
1293 ui.progress('evolve', None) |
1298 ui.progress('evolve', None) |
1294 |
1299 |