Show More
@@ -895,6 +895,7 b' class localrepository(object):' | |||||
895 | return 0 |
|
895 | return 0 | |
896 |
|
896 | |||
897 | parents = self.dirstate.parents() |
|
897 | parents = self.dirstate.parents() | |
|
898 | self.destroying() | |||
898 | transaction.rollback(self.sopener, self.sjoin('undo'), ui.warn) |
|
899 | transaction.rollback(self.sopener, self.sjoin('undo'), ui.warn) | |
899 | if os.path.exists(self.join('undo.bookmarks')): |
|
900 | if os.path.exists(self.join('undo.bookmarks')): | |
900 | util.rename(self.join('undo.bookmarks'), |
|
901 | util.rename(self.join('undo.bookmarks'), | |
@@ -1379,6 +1380,20 b' class localrepository(object):' | |||||
1379 | lock.release() |
|
1380 | lock.release() | |
1380 |
|
1381 | |||
1381 | @unfilteredmethod |
|
1382 | @unfilteredmethod | |
|
1383 | def destroying(self): | |||
|
1384 | '''Inform the repository that nodes are about to be destroyed. | |||
|
1385 | Intended for use by strip and rollback, so there's a common | |||
|
1386 | place for anything that has to be done before destroying history. | |||
|
1387 | ||||
|
1388 | This is mostly useful for saving state that is in memory and waiting | |||
|
1389 | to be flushed when the current lock is released. Because a call to | |||
|
1390 | destroyed is imminent, the repo will be invalidated causing those | |||
|
1391 | changes to stay in memory (waiting for the next unlock), or vanish | |||
|
1392 | completely. | |||
|
1393 | ''' | |||
|
1394 | pass | |||
|
1395 | ||||
|
1396 | @unfilteredmethod | |||
1382 | def destroyed(self, newheadnodes=None): |
|
1397 | def destroyed(self, newheadnodes=None): | |
1383 | '''Inform the repository that nodes have been destroyed. |
|
1398 | '''Inform the repository that nodes have been destroyed. | |
1384 | Intended for use by strip and rollback, so there's a common |
|
1399 | Intended for use by strip and rollback, so there's a common |
@@ -61,6 +61,7 b' def strip(ui, repo, nodelist, backup="al' | |||||
61 | # have to consider the effect of the stripped revisions and not revisions |
|
61 | # have to consider the effect of the stripped revisions and not revisions | |
62 | # missing because the cache is out-of-date. |
|
62 | # missing because the cache is out-of-date. | |
63 | branchmap.updatecache(repo) |
|
63 | branchmap.updatecache(repo) | |
|
64 | repo.destroying() | |||
64 |
|
65 | |||
65 | cl = repo.changelog |
|
66 | cl = repo.changelog | |
66 | # TODO handle undo of merge sets |
|
67 | # TODO handle undo of merge sets |
General Comments 0
You need to be logged in to leave comments.
Login now