hgext/rebase.py
branchstable
changeset 11537 0a044e5ff489
parent 11531 59bd20451ab6
child 11546 134eb1c97e94
equal deleted inserted replaced
11536:92342fa9fbd8 11537:0a044e5ff489
   269 
   269 
   270 def concludenode(repo, rev, p1, p2, commitmsg=None, extrafn=None):
   270 def concludenode(repo, rev, p1, p2, commitmsg=None, extrafn=None):
   271     'Commit the changes and store useful information in extra'
   271     'Commit the changes and store useful information in extra'
   272     try:
   272     try:
   273         repo.dirstate.setparents(repo[p1].node(), repo[p2].node())
   273         repo.dirstate.setparents(repo[p1].node(), repo[p2].node())
       
   274         ctx = repo[rev]
   274         if commitmsg is None:
   275         if commitmsg is None:
   275             commitmsg = repo[rev].description()
   276             commitmsg = ctx.description()
   276         ctx = repo[rev]
       
   277         extra = {'rebase_source': ctx.hex()}
   277         extra = {'rebase_source': ctx.hex()}
   278         if extrafn:
   278         if extrafn:
   279             extrafn(ctx, extra)
   279             extrafn(ctx, extra)
   280         # Commit might fail if unresolved files exist
   280         # Commit might fail if unresolved files exist
   281         newrev = repo.commit(text=commitmsg, user=ctx.user(),
   281         newrev = repo.commit(text=commitmsg, user=ctx.user(),
   345     return False
   345     return False
   346 
   346 
   347 def updatemq(repo, state, skipped, **opts):
   347 def updatemq(repo, state, skipped, **opts):
   348     'Update rebased mq patches - finalize and then import them'
   348     'Update rebased mq patches - finalize and then import them'
   349     mqrebase = {}
   349     mqrebase = {}
   350     for p in repo.mq.applied:
   350     mq = repo.mq
   351         if repo[p.node].rev() in state:
   351     for p in mq.applied:
       
   352         rev = repo[p.node].rev()
       
   353         if rev in state:
   352             repo.ui.debug('revision %d is an mq patch (%s), finalize it.\n' %
   354             repo.ui.debug('revision %d is an mq patch (%s), finalize it.\n' %
   353                                         (repo[p.node].rev(), p.name))
   355                                         (rev, p.name))
   354             mqrebase[repo[p.node].rev()] = (p.name, isagitpatch(repo, p.name))
   356             mqrebase[rev] = (p.name, isagitpatch(repo, p.name))
   355 
   357 
   356     if mqrebase:
   358     if mqrebase:
   357         repo.mq.finish(repo, mqrebase.keys())
   359         mq.finish(repo, mqrebase.keys())
   358 
   360 
   359         # We must start import from the newest revision
   361         # We must start import from the newest revision
   360         for rev in sorted(mqrebase, reverse=True):
   362         for rev in sorted(mqrebase, reverse=True):
   361             if rev not in skipped:
   363             if rev not in skipped:
   362                 repo.ui.debug('import mq patch %d (%s)\n'
   364                 name, isgit = mqrebase[rev]
   363                               % (state[rev], mqrebase[rev][0]))
   365                 repo.ui.debug('import mq patch %d (%s)\n' % (state[rev], name))
   364                 repo.mq.qimport(repo, (), patchname=mqrebase[rev][0],
   366                 mq.qimport(repo, (), patchname=name, git=isgit,
   365                             git=mqrebase[rev][1],rev=[str(state[rev])])
   367                                 rev=[str(state[rev])])
   366         repo.mq.save_dirty()
   368         mq.save_dirty()
   367         qrepo = repo.mq.qrepo()
   369         qrepo = mq.qrepo()
   368         if qrepo:
   370         if qrepo:
   369             qrepo[None].add(repo.mq.added)
   371             qrepo[None].add(mq.added)
   370         repo.mq.added = []
   372         mq.added = []
   371 
   373 
   372 def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches,
   374 def storestatus(repo, originalwd, target, state, collapse, keep, keepbranches,
   373                                                                 external):
   375                                                                 external):
   374     'Store the current status to allow recovery'
   376     'Store the current status to allow recovery'
   375     f = repo.opener("rebasestate", "w")
   377     f = repo.opener("rebasestate", "w")