changeset 38164:46c2b19a1263

scmutil: move repair.stripbmrevset as scmutil.bookmarkrevs (API)
author David Demelier <markand@malikania.fr>
date Tue, 15 May 2018 14:35:41 +0200
parents a40cc6d7d8c3
children 2b8cb0ab231c
files hgext/patchbomb.py hgext/strip.py mercurial/commands.py mercurial/repair.py mercurial/scmutil.py
diffstat 5 files changed, 12 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/patchbomb.py	Tue May 22 23:48:08 2018 -0400
+++ b/hgext/patchbomb.py	Tue May 15 14:35:41 2018 +0200
@@ -94,7 +94,6 @@
     patch,
     pycompat,
     registrar,
-    repair,
     scmutil,
     templater,
     util,
@@ -624,7 +623,7 @@
     elif bookmark:
         if bookmark not in repo._bookmarks:
             raise error.Abort(_("bookmark '%s' not found") % bookmark)
-        revs = repair.stripbmrevset(repo, bookmark)
+        revs = scmutil.bookmarkrevs(repo, bookmark)
 
     revs = scmutil.revrange(repo, revs)
     if outgoing:
--- a/hgext/strip.py	Tue May 22 23:48:08 2018 -0400
+++ b/hgext/strip.py	Tue May 15 14:35:41 2018 +0200
@@ -165,7 +165,7 @@
                 nodetobookmarks.setdefault(node, []).append(mark)
             for marks in nodetobookmarks.values():
                 if bookmarks.issuperset(marks):
-                    rsrevs = repair.stripbmrevset(repo, marks[0])
+                    rsrevs = scmutil.bookmarkrevs(repo, marks[0])
                     revs.update(set(rsrevs))
             if not revs:
                 with repo.lock(), repo.transaction('bookmark') as tr:
--- a/mercurial/commands.py	Tue May 22 23:48:08 2018 -0400
+++ b/mercurial/commands.py	Tue May 15 14:35:41 2018 +0200
@@ -50,7 +50,6 @@
     pycompat,
     rcutil,
     registrar,
-    repair,
     revsetlang,
     rewriteutil,
     scmutil,
@@ -1982,7 +1981,7 @@
         if bookmark not in repo._bookmarks:
             raise error.Abort(_("bookmark '%s' not found") % bookmark)
 
-        revs = repair.stripbmrevset(repo, bookmark)
+        revs = scmutil.bookmarkrevs(repo, bookmark)
     else:
         if not changesets:
             changesets = ['.']
--- a/mercurial/repair.py	Tue May 22 23:48:08 2018 -0400
+++ b/mercurial/repair.py	Tue May 15 14:35:41 2018 +0200
@@ -405,18 +405,6 @@
         else:
             ui.write(_('fncache already up to date\n'))
 
-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)
-
 def deleteobsmarkers(obsstore, indices):
     """Delete some obsmarkers from obsstore and return how many were deleted
 
--- a/mercurial/scmutil.py	Tue May 22 23:48:08 2018 -0400
+++ b/mercurial/scmutil.py	Tue May 15 14:35:41 2018 +0200
@@ -1585,3 +1585,12 @@
                 revs.add(rev)
 
     return revs
+
+def bookmarkrevs(repo, mark):
+    """
+    Select revisions reachable by a given bookmark
+    """
+    return repo.revs("ancestors(bookmark(%s)) - "
+                     "ancestors(head() and not bookmark(%s)) - "
+                     "ancestors(bookmark() and not bookmark(%s))",
+                     mark, mark, mark)