Show More
@@ -354,6 +354,9 b' class localrepository:' | |||||
354 | return filelog(self.opener, f) |
|
354 | return filelog(self.opener, f) | |
355 |
|
355 | |||
356 | def transaction(self): |
|
356 | def transaction(self): | |
|
357 | # save dirstate for undo | |||
|
358 | ds = self.opener("dirstate").read() | |||
|
359 | self.opener("undo.dirstate", "w").write(ds) | |||
357 | return transaction(self.opener, self.join("journal"), |
|
360 | return transaction(self.opener, self.join("journal"), | |
358 | self.join("undo")) |
|
361 | self.join("undo")) | |
359 |
|
362 | |||
@@ -368,19 +371,11 b' class localrepository:' | |||||
368 | def undo(self): |
|
371 | def undo(self): | |
369 | lock = self.lock() |
|
372 | lock = self.lock() | |
370 | if os.path.exists(self.join("undo")): |
|
373 | if os.path.exists(self.join("undo")): | |
371 | f = self.changelog.read(self.changelog.tip())[3] |
|
|||
372 | self.ui.status("attempting to rollback last transaction\n") |
|
374 | self.ui.status("attempting to rollback last transaction\n") | |
373 | rollback(self.opener, self.join("undo")) |
|
375 | rollback(self.opener, self.join("undo")) | |
374 |
self. |
|
376 | self.dirstate = None | |
375 | self.changelog = changelog(self.opener) |
|
377 | os.rename(self.join("undo.dirstate"), self.join("dirstate")) | |
376 |
|
378 | self.dirstate = dirstate(self.opener, self.ui, self.root) | ||
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 |
|
||||
384 | else: |
|
379 | else: | |
385 | self.ui.warn("no undo information available\n") |
|
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