[PATCH 3 of 3 evolve-ext] evolve: changing bookmark argument to be a list

Shubhanshu Agrawal agrawal.shubhanshu at gmail.com
Thu Dec 10 20:06:33 CST 2015


# HG changeset patch
# User Shubhanshu Agrawal <agrawal.shubhanshu at gmail.com>
# Date 1449799356 28800
#      Thu Dec 10 18:02:36 2015 -0800
# Node ID fa761be2e12d0e5b94abc6d19a80a8ac37fd1ec8
# Parent  2d2e9c7f56088f0ab07c09469e0cbca735381bbe
evolve: changing bookmark argument to be a list

Currently prune works with a single bookmark
the changes in this patch modifies the prune
command to accept a list of bookmarks

diff --git a/hgext/evolve.py b/hgext/evolve.py
--- a/hgext/evolve.py
+++ b/hgext/evolve.py
@@ -2268,7 +2268,7 @@
         _("record a fold (multiple precursors, one successors)")),
      ('', 'split', False,
         _("record a split (on precursor, multiple successors)")),
-     ('B', 'bookmark', '', _("remove revs only reachable from given"
+     ('B', 'bookmark', [], _("remove revs only reachable from given"
                              " bookmark"))] + metadataopts,
     _('[OPTION] [-r] REV...'))
     # -U  --noupdate option to prevent wc update and or bookmarks update ?
@@ -2297,9 +2297,7 @@
     """
     revs = scmutil.revrange(repo, list(revs) + opts.get('rev'))
     succs = opts['new'] + opts['succ']
-    bookmarks = None
-    if opts.get('bookmark'):
-        bookmarks = set([opts.get('bookmark')])
+    bookmarks = set(opts.get('bookmark'))
     metadata = _getmetadata(**opts)
     biject = opts.get('biject')
     fold = opts.get('fold')
diff --git a/tests/test-evolve.t b/tests/test-evolve.t
--- a/tests/test-evolve.t
+++ b/tests/test-evolve.t
@@ -170,6 +170,48 @@
 
   $ cd ..
 
+Prune bookmarks test
+
+  $ hg init bookmark-test
+  $ cd bookmark-test
+  $ hg debugbuilddag '..:a<2:m.:b<m.:c<m.:d'
+  $ hg bookmark -r 'a' 'multipledelete1'
+  $ hg bookmark -r 'b' 'multipledelete2'
+  $ hg bookmark -r 'c' 'singlenode1'
+  $ hg bookmark -r 'c' 'singlenode2'
+  $ hg bookmark -r 'd' 'delete'
+  $ hg bookmarks
+     delete                    4:e7bd5218ca15
+     multipledelete1           1:66f7d451a68b
+     multipledelete2           2:fa942426a6fd
+     singlenode1               3:6100d3090acf
+     singlenode2               3:6100d3090acf
+  $ hg prune -B multipledelete1 -B multipledelete2
+  bookmark 'multipledelete1' deleted
+  bookmark 'multipledelete2' deleted
+  2 changesets pruned
+  $ hg id -ir 66f7d451a68b
+  66f7d451a68b
+  $ hg id -ir fa942426a6fd
+  fa942426a6fd
+  $ hg prune -B singlenode1 -B singlenode2
+  bookmark 'singlenode1' deleted
+  bookmark 'singlenode2' deleted
+  1 changesets pruned
+  $ hg id -ir 6100d3090acf
+  6100d3090acf
+  $ hg prune -B unknownbookmark
+  abort: bookmark 'unknownbookmark' not found
+  [255]
+  $ hg prune -B unknownbookmark1 -B unknownbookmark2
+  abort: bookmark 'unknownbookmark1,unknownbookmark2' not found
+  [255]
+  $ hg prune -B delete -B unknownbookmark
+  abort: bookmark 'unknownbookmark' not found
+  [255]
+
+  $ cd ..
+
 ##########################
 importing Parren test
 ##########################


More information about the Mercurial-devel mailing list