1142 # those cases |
1142 # those cases |
1143 if node is not None: |
1143 if node is not None: |
1144 obsolete.createmarkers(repo, [(ctx, (repo[node],))]) |
1144 obsolete.createmarkers(repo, [(ctx, (repo[node],))]) |
1145 else: |
1145 else: |
1146 obsolete.createmarkers(repo, [(ctx, (repo['.'],))]) |
1146 obsolete.createmarkers(repo, [(ctx, (repo['.'],))]) |
1147 evolvestate['replacements'][ctx.node()] = node |
1147 |
1148 category = evolvestate['category'] |
1148 # make sure we are continuing evolve and not `hg next --evolve` |
1149 confirm = evolvestate['confirm'] |
1149 if evolvestate['command'] == 'evolve': |
1150 startnode = evolvestate['startnode'] |
1150 evolvestate['replacements'][ctx.node()] = node |
1151 unfi = repo.unfiltered() |
1151 category = evolvestate['category'] |
1152 for rev in evolvestate['revs']: |
1152 confirm = evolvestate['confirm'] |
1153 # XXX: prevent this lookup by storing nodes instead of revnums |
1153 startnode = evolvestate['startnode'] |
1154 curctx = unfi[rev] |
1154 unfi = repo.unfiltered() |
1155 if (curctx.node() not in evolvestate['replacements'] and |
1155 for rev in evolvestate['revs']: |
1156 curctx.node() not in evolvestate['skippedrevs']): |
1156 # XXX: prevent this lookup by storing nodes instead of revnums |
1157 newnode = _solveone(ui, repo, curctx, evolvestate, False, |
1157 curctx = unfi[rev] |
1158 confirm, progresscb, category) |
1158 if (curctx.node() not in evolvestate['replacements'] and |
1159 if newnode[0]: |
1159 curctx.node() not in evolvestate['skippedrevs']): |
1160 evolvestate['replacements'][curctx.node()] = newnode[1] |
1160 newnode = _solveone(ui, repo, curctx, evolvestate, False, |
1161 else: |
1161 confirm, progresscb, category) |
1162 evolvestate['skippedrevs'].append(curctx.node()) |
1162 if newnode[0]: |
1163 |
1163 evolvestate['replacements'][curctx.node()] = newnode[1] |
1164 _cleanup(ui, repo, unfi[startnode], True) |
1164 else: |
|
1165 evolvestate['skippedrevs'].append(curctx.node()) |
|
1166 |
|
1167 _cleanup(ui, repo, unfi[startnode], True) |
1165 evolvestate.delete() |
1168 evolvestate.delete() |
1166 return |
1169 return |
1167 |
1170 |
1168 cmdutil.bailifchanged(repo) |
1171 cmdutil.bailifchanged(repo) |
1169 |
1172 |
1179 revs = _orderrevs(repo, revs) |
1182 revs = _orderrevs(repo, revs) |
1180 |
1183 |
1181 # cbor does not know how to serialize sets, using list for skippedrevs |
1184 # cbor does not know how to serialize sets, using list for skippedrevs |
1182 stateopts = {'category': targetcat, 'replacements': {}, 'revs': revs, |
1185 stateopts = {'category': targetcat, 'replacements': {}, 'revs': revs, |
1183 'confirm': confirmopt, 'startnode': startnode.node(), |
1186 'confirm': confirmopt, 'startnode': startnode.node(), |
1184 'skippedrevs': []} |
1187 'skippedrevs': [], 'command': 'evolve'} |
1185 evolvestate.addopts(stateopts) |
1188 evolvestate.addopts(stateopts) |
1186 for rev in revs: |
1189 for rev in revs: |
1187 curctx = repo[rev] |
1190 curctx = repo[rev] |
1188 progresscb() |
1191 progresscb() |
1189 ret = _solveone(ui, repo, curctx, evolvestate, dryrunopt, confirmopt, |
1192 ret = _solveone(ui, repo, curctx, evolvestate, dryrunopt, confirmopt, |