changeset 5507:95478db35f88 stable

topic: fix the `topic(...)` revset to not select commits without a topic The problem seems to be that the now removed __contains__ check would select any revision indicated by a non-string argument. This led to `topic(head())` returning a bunch of non-topic heads, though not as many as simply `head()`. I'm likely misunderstanding something, because there appears to be a similar __contains__ check for `branch()` in core. But maybe that's just harder to see the issue, because branch names doesn't disappear like topics.
author Matt Harbison <matt_harbison@yahoo.com>
date Tue, 01 Sep 2020 23:35:43 -0400
parents 77c0ddd6f172
children 80b5d4b85a52
files CHANGELOG hgext3rd/topic/revset.py tests/test-topic.t
diffstat 3 files changed, 25 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGELOG	Sat Aug 22 07:24:46 2020 +0800
+++ b/CHANGELOG	Tue Sep 01 23:35:43 2020 -0400
@@ -10,6 +10,8 @@
   * split: correctly handle discard action after previously splitting changes
     into more than one commit
 
+  * revset: no longer changeset without topic when running `topic(REVSET)`
+
 10.0.1 -- 2020-07-31
 --------------------
 
--- a/hgext3rd/topic/revset.py	Sat Aug 22 07:24:46 2020 +0800
+++ b/hgext3rd/topic/revset.py	Tue Sep 01 23:35:43 2020 -0400
@@ -67,8 +67,6 @@
     topics.discard(b'')
 
     def matches(r):
-        if r in s:
-            return True
         topic = repo[r].topic()
         if not topic:
             return False
--- a/tests/test-topic.t	Sat Aug 22 07:24:46 2020 +0800
+++ b/tests/test-topic.t	Tue Sep 01 23:35:43 2020 -0400
@@ -750,12 +750,18 @@
      fran (1 changesets)
   $ hg log -r 'topic(.)'
 (no output is expected)
+
+  $ hg up 8
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo test > gamma
+  $ hg ci -m non-topic
+  $ hg log -r 'topic(.)'
+
   $ hg co fran
   switching to topic fran
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg log -r 'topic(.)'
   changeset:   9:0469d521db49
-  tag:         tip
   topic:       fran
   parent:      3:a53952faf762
   user:        test
@@ -801,19 +807,26 @@
   created new head
   (consider using topic for lightweight branches. See 'hg help topic')
   $ hg log -Gr 'draft()'
-  @  changeset:   10:4073470c35e1
+  @  changeset:   11:4073470c35e1
   |  tag:         tip
+  |  parent:      9:0469d521db49
   |  user:        test
   |  date:        Thu Jan 01 00:00:00 1970 +0000
   |  summary:     fran?
   |
-  o  changeset:   9:0469d521db49
-  |  topic:       fran
-  |  parent:      3:a53952faf762
-  |  user:        test
-  |  date:        Thu Jan 01 00:00:00 1970 +0000
-  |  summary:     start on fran
-  |
+  | o  changeset:   10:de75ec1bdbe8
+  | |  parent:      8:ae074045b7a7
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     non-topic
+  | |
+  o |  changeset:   9:0469d521db49
+  | |  topic:       fran
+  | |  parent:      3:a53952faf762
+  | |  user:        test
+  | |  date:        Thu Jan 01 00:00:00 1970 +0000
+  | |  summary:     start on fran
+  | |
 
   $ hg topics
      fran (1 changesets)