hgext/evolve.py
changeset 1320 b5cd96395867
parent 1319 8376fe35ebda
child 1322 f3e0686a63a1
equal deleted inserted replaced
1319:8376fe35ebda 1320:b5cd96395867
  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