strip: factor out revset calculation for strip -B
This will allow reusing it in evolve and overriding it in other extensions.
--- a/hgext/strip.py Fri Oct 09 11:22:01 2015 -0700
+++ b/hgext/strip.py Fri Oct 09 14:48:59 2015 -0700
@@ -142,10 +142,7 @@
uniquebm = False
break
if uniquebm:
- rsrevs = repo.revs("ancestors(bookmark(%s)) - "
- "ancestors(head() and not bookmark(%s)) - "
- "ancestors(bookmark() and not bookmark(%s))",
- mark, mark, mark)
+ rsrevs = repair.stripbmrevset(repo, mark)
revs.update(set(rsrevs))
if not revs:
del marks[mark]
--- a/mercurial/repair.py Fri Oct 09 11:22:01 2015 -0700
+++ b/mercurial/repair.py Fri Oct 09 14:48:59 2015 -0700
@@ -299,3 +299,15 @@
finally:
lock.release()
+def stripbmrevset(repo, mark):
+ """
+ The revset to strip when strip is called with -B mark
+
+ Needs to live here so extensions can use it and wrap it even when strip is
+ not enabled or not present on a box.
+ """
+ return repo.revs("ancestors(bookmark(%s)) - "
+ "ancestors(head() and not bookmark(%s)) - "
+ "ancestors(bookmark() and not bookmark(%s))",
+ mark, mark, mark)
+