239 del q.applied[start:end] |
239 del q.applied[start:end] |
240 q.savedirty() |
240 q.savedirty() |
241 |
241 |
242 revs = sorted(rootnodes) |
242 revs = sorted(rootnodes) |
243 if update and opts.get(b'keep'): |
243 if update and opts.get(b'keep'): |
244 urev = _findupdatetarget(repo, revs) |
244 with repo.dirstate.changing_parents(repo): |
245 uctx = repo[urev] |
245 urev = _findupdatetarget(repo, revs) |
246 |
246 uctx = repo[urev] |
247 # only reset the dirstate for files that would actually change |
247 |
248 # between the working context and uctx |
248 # only reset the dirstate for files that would actually change |
249 descendantrevs = repo.revs(b"only(., %d)", uctx.rev()) |
249 # between the working context and uctx |
250 changedfiles = [] |
250 descendantrevs = repo.revs(b"only(., %d)", uctx.rev()) |
251 for rev in descendantrevs: |
251 changedfiles = [] |
252 # blindly reset the files, regardless of what actually changed |
252 for rev in descendantrevs: |
253 changedfiles.extend(repo[rev].files()) |
253 # blindly reset the files, regardless of what actually changed |
254 |
254 changedfiles.extend(repo[rev].files()) |
255 # reset files that only changed in the dirstate too |
255 |
256 dirstate = repo.dirstate |
256 # reset files that only changed in the dirstate too |
257 dirchanges = [ |
257 dirstate = repo.dirstate |
258 f for f in dirstate if not dirstate.get_entry(f).maybe_clean |
258 dirchanges = [ |
259 ] |
259 f for f in dirstate if not dirstate.get_entry(f).maybe_clean |
260 changedfiles.extend(dirchanges) |
260 ] |
261 |
261 changedfiles.extend(dirchanges) |
262 repo.dirstate.rebuild(urev, uctx.manifest(), changedfiles) |
262 |
263 repo.dirstate.write(repo.currenttransaction()) |
263 repo.dirstate.rebuild(urev, uctx.manifest(), changedfiles) |
264 |
264 repo.dirstate.write(repo.currenttransaction()) |
265 # clear resolve state |
265 |
266 mergestatemod.mergestate.clean(repo) |
266 # clear resolve state |
267 |
267 mergestatemod.mergestate.clean(repo) |
268 update = False |
268 |
|
269 update = False |
269 |
270 |
270 strip( |
271 strip( |
271 ui, |
272 ui, |
272 repo, |
273 repo, |
273 revs, |
274 revs, |