##// END OF EJS Templates
strip: use a `changing_parents` context for --keep update...
marmoute -
r51007:62158471 default
parent child Browse files
Show More
@@ -241,31 +241,32 b' def debugstrip(ui, repo, *revs, **opts):'
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 uctx = repo[urev]
246
247
247 # only reset the dirstate for files that would actually change
248 # only reset the dirstate for files that would actually change
248 # between the working context and uctx
249 # between the working context and uctx
249 descendantrevs = repo.revs(b"only(., %d)", uctx.rev())
250 descendantrevs = repo.revs(b"only(., %d)", uctx.rev())
250 changedfiles = []
251 changedfiles = []
251 for rev in descendantrevs:
252 for rev in descendantrevs:
252 # blindly reset the files, regardless of what actually changed
253 # blindly reset the files, regardless of what actually changed
253 changedfiles.extend(repo[rev].files())
254 changedfiles.extend(repo[rev].files())
254
255
255 # reset files that only changed in the dirstate too
256 # reset files that only changed in the dirstate too
256 dirstate = repo.dirstate
257 dirstate = repo.dirstate
257 dirchanges = [
258 dirchanges = [
258 f for f in dirstate if not dirstate.get_entry(f).maybe_clean
259 f for f in dirstate if not dirstate.get_entry(f).maybe_clean
259 ]
260 ]
260 changedfiles.extend(dirchanges)
261 changedfiles.extend(dirchanges)
261
262
262 repo.dirstate.rebuild(urev, uctx.manifest(), changedfiles)
263 repo.dirstate.rebuild(urev, uctx.manifest(), changedfiles)
263 repo.dirstate.write(repo.currenttransaction())
264 repo.dirstate.write(repo.currenttransaction())
264
265
265 # clear resolve state
266 # clear resolve state
266 mergestatemod.mergestate.clean(repo)
267 mergestatemod.mergestate.clean(repo)
267
268
268 update = False
269 update = False
269
270
270 strip(
271 strip(
271 ui,
272 ui,
General Comments 0
You need to be logged in to leave comments. Login now