Comments
Patch
@@ -1531,3 +1531,14 @@
def __getitem__(self, changeid):
return context.changectx(self, changeid)
+
+ def __contains__(self, changeid):
+ """
+ check if changeid, which can be either a local revision number or a
+ changeset id, matches a changeset in the client.
+ """
+ try:
+ context.changectx(self, changeid)
+ return True
+ except ValueError:
+ return False
@@ -67,3 +67,23 @@
# from revset
ctx = context.changectx(self.client, 'all()')
self.assertEquals(ctx.node(), tip.node)
+
+ def test_in_keyword(self):
+ """
+ test the 'in' keyword using both revision numbers or changeset ids.
+ """
+ self.append('a', 'a')
+ rev0, node0 = self.client.commit('first', addremove=True)
+ self.append('a', 'a')
+ rev1, node1 = self.client.commit('second')
+
+ self.assertIn(1, self.client)
+ hash_1 = self.client.log(0)[0][1]
+ self.assertIn(hash_1, self.client)
+ self.assertNotIn(2, self.client)
+ hash_2 = self.client.log(1)[0][1]
+ self.assertIn(hash_2,self.client)
+ hash_2 = 'deadbeef'
+ self.assertNotIn(hash_2, self.client)
+
+