equal
deleted
inserted
replaced
183 dest = repo[branch] |
183 dest = repo[branch] |
184 else: |
184 else: |
185 dest = repo[destf] |
185 dest = repo[destf] |
186 |
186 |
187 if revf: |
187 if revf: |
188 revgen = repo.set('%lr', revf) |
188 rebaseset = repo.revs('%lr', revf) |
189 elif srcf: |
189 elif srcf: |
190 revgen = repo.set('(%r)::', srcf) |
190 rebaseset = repo.revs('(%r)::', srcf) |
191 else: |
191 else: |
192 base = basef or '.' |
192 base = basef or '.' |
193 revgen = repo.set('(children(ancestor(%r, %d)) and ::(%r))::', |
193 rebaseset = repo.revs('(children(ancestor(%r, %d)) & ::%r)::', |
194 base, dest, base) |
194 base, dest, base) |
195 |
|
196 rebaseset = [c.rev() for c in revgen] |
|
197 |
195 |
198 if not rebaseset: |
196 if not rebaseset: |
199 repo.ui.debug('base is ancestor of destination') |
197 repo.ui.debug('base is ancestor of destination') |
200 result = None |
198 result = None |
201 elif not keepf and list(repo.set('first(children(%ld) - %ld)', |
199 elif not keepf and list(repo.revs('first(children(%ld) - %ld)', |
202 rebaseset, rebaseset)): |
200 rebaseset, rebaseset)): |
203 raise util.Abort( |
201 raise util.Abort( |
204 _("can't remove original changesets with" |
202 _("can't remove original changesets with" |
205 " unrebased descendants"), |
203 " unrebased descendants"), |
206 hint=_('use --keep to keep original changesets')) |
204 hint=_('use --keep to keep original changesets')) |
207 else: |
205 else: |
580 repo.ui.debug('source is a child of destination') |
578 repo.ui.debug('source is a child of destination') |
581 return None |
579 return None |
582 # rebase on ancestor, force detach |
580 # rebase on ancestor, force detach |
583 detach = True |
581 detach = True |
584 if detach: |
582 if detach: |
585 detachset = [c.rev() for c in repo.set('::%d - ::%d - %d', |
583 detachset = repo.revs('::%d - ::%d - %d', root, commonbase, root) |
586 root, commonbase, root)] |
|
587 |
584 |
588 repo.ui.debug('rebase onto %d starting from %d\n' % (dest, root)) |
585 repo.ui.debug('rebase onto %d starting from %d\n' % (dest, root)) |
589 state = dict.fromkeys(rebaseset, nullrev) |
586 state = dict.fromkeys(rebaseset, nullrev) |
590 state.update(dict.fromkeys(detachset, nullmerge)) |
587 state.update(dict.fromkeys(detachset, nullmerge)) |
591 return repo['.'].rev(), dest.rev(), state |
588 return repo['.'].rev(), dest.rev(), state |