##// END OF EJS Templates
rebase: properly calculate descendant set when aborting (issue3332)...
Matt Mackall -
r16280:08068233 stable
parent child Browse files
Show More
@@ -557,15 +557,18 b' def restorestatus(repo):'
557
557
558 def abort(repo, originalwd, target, state):
558 def abort(repo, originalwd, target, state):
559 'Restore the repository to its original state'
559 'Restore the repository to its original state'
560 descendants = repo.changelog.descendants
560 dstates = [s for s in state.values() if s != nullrev]
561 ispublic = lambda r: repo._phaserev[r] == phases.public
561 if [d for d in dstates if not repo[d].mutable()]:
562 if filter(ispublic, descendants(target)):
563 repo.ui.warn(_("warning: immutable rebased changeset detected, "
562 repo.ui.warn(_("warning: immutable rebased changeset detected, "
564 "can't abort\n"))
563 "can't abort\n"))
565 return -1
564 return -1
566 elif set(descendants(target)) - set(state.values()):
565
566 descendants = set()
567 if dstates:
568 descendants = set(repo.changelog.descendants(*dstates))
569 if descendants - set(dstates):
567 repo.ui.warn(_("warning: new changesets detected on target branch, "
570 repo.ui.warn(_("warning: new changesets detected on target branch, "
568 "can't abort\n"))
571 "can't abort\n"))
569 return -1
572 return -1
570 else:
573 else:
571 # Strip from the first rebased revision
574 # Strip from the first rebased revision
General Comments 0
You need to be logged in to leave comments. Login now