--- a/mercurial/repair.py Thu Jun 01 12:08:49 2017 +0200
+++ b/mercurial/repair.py Sat May 20 16:19:59 2017 +0200
@@ -122,6 +122,13 @@
savebases = [cl.node(r) for r in saverevs]
stripbases = [cl.node(r) for r in tostrip]
+ stripobsidx = obsmarkers = ()
+ if repo.ui.configbool('devel', 'strip-obsmarkers', True):
+ obsmarkers = obsolete.exclusivemarkers(repo, stripbases)
+ if obsmarkers:
+ stripobsidx = [i for i, m in enumerate(repo.obsstore)
+ if m in obsmarkers]
+
# For a set s, max(parents(s) - s) is the same as max(heads(::s - s)), but
# is much faster
newbmtarget = repo.revs('max(parents(%ld) - (%ld))', tostrip, tostrip)
@@ -185,6 +192,9 @@
if troffset == 0:
repo.store.markremoved(file)
+ deleteobsmarkers(repo.obsstore, stripobsidx)
+ del repo.obsstore
+
if tmpbundlefile:
ui.note(_("adding branch\n"))
f = vfs.open(tmpbundlefile, "rb")