changeset 42656:a1f10edcf6a6 stable

strip: access bookmark before getting a reference to changelog Bookmark access might invalidate the current changelog (to make sure both are in a reasonable synchronisation state). So we should grab the reference to changelog after we access bookmark. Otherwise we risk using a dead object for the whole strip process. (note: this dead object business probably requires a new layers of checking)
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 01 Aug 2019 16:22:47 +0200
parents 90d8a2a42d5c
children e0cf09bc35ef
files mercurial/repair.py
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/repair.py	Thu Aug 01 15:59:52 2019 +0200
+++ b/mercurial/repair.py	Thu Aug 01 16:22:47 2019 +0200
@@ -109,6 +109,9 @@
     repo = repo.unfiltered()
     repo.destroying()
     vfs = repo.vfs
+    # load bookmark before changelog to avoid side effect from outdated
+    # changelog (see repo._refreshchangelog)
+    repo._bookmarks
     cl = repo.changelog
 
     # TODO handle undo of merge sets