##// END OF EJS Templates
backup dirstate for undo...
mpm@selenic.com -
r251:3fd8fc14 default
parent child Browse files
Show More
@@ -354,6 +354,9 b' class localrepository:'
354 354 return filelog(self.opener, f)
355 355
356 356 def transaction(self):
357 # save dirstate for undo
358 ds = self.opener("dirstate").read()
359 self.opener("undo.dirstate", "w").write(ds)
357 360 return transaction(self.opener, self.join("journal"),
358 361 self.join("undo"))
359 362
@@ -368,19 +371,11 b' class localrepository:'
368 371 def undo(self):
369 372 lock = self.lock()
370 373 if os.path.exists(self.join("undo")):
371 f = self.changelog.read(self.changelog.tip())[3]
372 374 self.ui.status("attempting to rollback last transaction\n")
373 375 rollback(self.opener, self.join("undo"))
374 self.manifest = manifest(self.opener)
375 self.changelog = changelog(self.opener)
376
377 self.ui.status("discarding dirstate\n")
378 node = self.changelog.tip()
379 f.sort()
380
381 self.dirstate.setparents(node)
382 self.dirstate.update(f, 'i')
383
376 self.dirstate = None
377 os.rename(self.join("undo.dirstate"), self.join("dirstate"))
378 self.dirstate = dirstate(self.opener, self.ui, self.root)
384 379 else:
385 380 self.ui.warn("no undo information available\n")
386 381
General Comments 0
You need to be logged in to leave comments. Login now