[PATCH 1 of 2 v4] commands: make --rev and --index compatible in debugobsolete

Kostia Balytskyi ikostia at fb.com
Wed Apr 6 15:53:36 EDT 2016


A gentle ping on this one as well. Is there anything I would need to change in the way it's implemented?




On 4/4/16, 11:27 AM, "Mercurial-devel on behalf of Kostia Balytskyi" <mercurial-devel-bounces at mercurial-scm.org on behalf of ikostia at fb.com> wrote:

># HG changeset patch
># User Kostia Balytskyi <ikostia at fb.com>
># Date 1459760710 25200
>#      Mon Apr 04 02:05:10 2016 -0700
># Node ID 64295f5fe12dab428a69cfcf7a27a66735f17d7a
># Parent  1490e850cffc0103fd42714cf1245a55bcbdc4a6
>commands: make --rev and --index compatible in debugobsolete
>
>diff --git a/mercurial/commands.py b/mercurial/commands.py
>--- a/mercurial/commands.py
>+++ b/mercurial/commands.py
>@@ -3108,7 +3108,23 @@ def debugobsolete(ui, repo, precursor=No
>         else:
>             markers = obsolete.getmarkers(repo)
> 
>-        for i, m in enumerate(markers):
>+        markerstoiter = markers
>+        isrelevant = lambda m: True
>+        if opts.get('rev') and opts.get('index'):
>+            markerstoiter = obsolete.getmarkers(repo)
>+            markerset = set(markers)
>+            isrelevant = lambda m: m in markerset
>+
>+        for i, m in enumerate(markerstoiter):
>+            if not isrelevant(m):
>+                # marker can be irrelevant when we're iterating over a set
>+                # of markers (markerstoiter) which is bigger than the set
>+                # of markers we want to display (markers)
>+                # this can happen if both --index and --rev options are
>+                # provided and thus we need to iterate over all of the markers
>+                # to get the correct indices, but only display the ones that
>+                # are relevant to --rev value
>+                continue
>             ind = i if opts.get('index') else None
>             cmdutil.showmarker(ui, m, index=ind)
> 
>diff --git a/tests/test-obsolete.t b/tests/test-obsolete.t
>--- a/tests/test-obsolete.t
>+++ b/tests/test-obsolete.t
>@@ -1083,4 +1083,19 @@ Test ability to pull changeset with loca
>   |
>   @  0:a78f55e5508c (draft) [ ] 0
>   
>+Test that 'hg debugobsolete --index --rev' can show indices of obsmarkers when
>+only a subset of those are displayed (because of --rev option)
>+  $ hg init doindexrev && cd doindexrev
>+  $ echo a > a && hg ci -Am a && hg ci --amend -m aa
>+  adding a
>+  $ echo b > b && hg ci -Am b && hg ci --amend -m bb
>+  adding b
>+  $ echo c > c && hg ci -Am c && hg ci --amend -m cc
>+  adding c
>+  $ echo d > d && hg ci -Am d && hg ci --amend -m dd
>+  adding d
>+  $ hg debugobsolete --index --rev "3+7"
>+  1 6fdef60fcbabbd3d50e9b9cbc2a240724b91a5e1 d27fb9b066076fd921277a4b9e8b9cb48c95bc6a 0 \(.*\) {'user': 'test'} (re)
>+  3 4715cf767440ed891755448016c2b8cf70760c30 7ae79c5d60f049c7b0dd02f5f25b9d60aaf7b36d 0 \(.*\) {'user': 'test'} (re)
>+  $ cd ..
> 
>_______________________________________________
>Mercurial-devel mailing list
>Mercurial-devel at mercurial-scm.org
>https://urldefense.proofpoint.com/v2/url?u=https-3A__www.mercurial-2Dscm.org_mailman_listinfo_mercurial-2Ddevel&d=CwIGaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=Pp-gQYFgs4tKlSFPF5kfCw&m=otQ3Asta0dF6lPeU2nhutw9qv_gzf6ED-K9VZHCZp44&s=tdyiY4BuISHoNJqDS6Df22wsfYKcL0xvx1MhwX8WTqs&e= 


More information about the Mercurial-devel mailing list