Show More
@@ -15,7 +15,7 b' http://mercurial.selenic.com/wiki/Rebase' | |||||
15 | ''' |
|
15 | ''' | |
16 |
|
16 | |||
17 | from mercurial import hg, util, repair, merge, cmdutil, commands, bookmarks |
|
17 | from mercurial import hg, util, repair, merge, cmdutil, commands, bookmarks | |
18 |
from mercurial import extensions, patch |
|
18 | from mercurial import extensions, patch | |
19 | from mercurial.commands import templateopts |
|
19 | from mercurial.commands import templateopts | |
20 | from mercurial.node import nullrev |
|
20 | from mercurial.node import nullrev | |
21 | from mercurial.lock import release |
|
21 | from mercurial.lock import release | |
@@ -184,31 +184,18 b' def rebase(ui, repo, **opts):' | |||||
184 | else: |
|
184 | else: | |
185 | dest = repo[destf] |
|
185 | dest = repo[destf] | |
186 |
|
186 | |||
187 | rebaseset = None |
|
187 | if revf: | |
188 | if srcf: |
|
188 | revgen = repo.set('%lr', revf) | |
189 | revsetargs = ('(%r)::', srcf) |
|
189 | elif srcf: | |
190 | elif revf: |
|
190 | revgen = repo.set('(%r)::', srcf) | |
191 | rebaseset = scmutil.revrange(repo, revf) |
|
|||
192 | if not keepf and rebaseset: |
|
|||
193 | try: |
|
|||
194 | repo.set('children(%ld) - %ld', |
|
|||
195 | rebaseset, rebaseset).next() |
|
|||
196 | except StopIteration: |
|
|||
197 | pass # empty revset is what we look for |
|
|||
198 | else: |
|
|||
199 | msg = _("can't remove original changesets with" |
|
|||
200 | " unrebased descendants") |
|
|||
201 | hint = _('use --keep to keep original changesets') |
|
|||
202 | raise util.Abort(msg, hint=hint) |
|
|||
203 | else: |
|
191 | else: | |
204 | base = basef or '.' |
|
192 | base = basef or '.' | |
205 |
rev |
|
193 | revgen = repo.set('(children(ancestor(%r, %d)) and ::(%r))::', | |
206 | base, dest, base) |
|
194 | base, dest, base) | |
207 | if rebaseset is None: |
|
195 | ||
208 |
|
|
196 | rebaseset = [c.rev() for c in revgen] | |
209 | if rebaseset: |
|
197 | ||
210 | result = buildstate(repo, dest, rebaseset, detachf) |
|
198 | if not rebaseset: | |
211 | else: |
|
|||
212 | repo.ui.debug('base is ancestor of destination') |
|
199 | repo.ui.debug('base is ancestor of destination') | |
213 | result = None |
|
200 | result = None | |
214 | if not result: |
|
201 | if not result: | |
@@ -581,7 +568,7 b' def buildstate(repo, dest, rebaseset, de' | |||||
581 | if commonbase == dest: |
|
568 | if commonbase == dest: | |
582 | samebranch = root.branch() == dest.branch() |
|
569 | samebranch = root.branch() == dest.branch() | |
583 | if samebranch and root in dest.children(): |
|
570 | if samebranch and root in dest.children(): | |
584 |
repo.ui.debug( |
|
571 | repo.ui.debug('source is a child of destination') | |
585 | return None |
|
572 | return None | |
586 | # rebase on ancestor, force detach |
|
573 | # rebase on ancestor, force detach | |
587 | detach = True |
|
574 | detach = True |
General Comments 0
You need to be logged in to leave comments.
Login now