Mercurial > public > mercurial-scm > hg-stable
diff mercurial/commands.py @ 45441:e47385ef4e17
grep: fix hash(linestate) to not include linenum
linestate.__eq__() just compares the line values whereas __hash__() does
hash both self.line and self.linenum, which violates the rule. __hash__()
was added at fb502719c75c, "python 2.6 compatibility: add __hash__ to
classes that have __eq__" with no additional remarks, so this would probably
be a simple mistake.
The test output changed because difflib.SequenceMatcher() internally uses
a dict. As you can see, the line "export" is unchanged at the revision 2,
so the new output is correct.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 09 Sep 2020 11:41:18 +0900 |
parents | 0652a533fe3c |
children | 453bc6ca9ab2 |
line wrap: on
line diff
--- a/mercurial/commands.py Tue Sep 08 21:38:10 2020 +0900 +++ b/mercurial/commands.py Wed Sep 09 11:41:18 2020 +0900 @@ -3400,7 +3400,7 @@ self.colend = colend def __hash__(self): - return hash((self.linenum, self.line)) + return hash(self.line) def __eq__(self, other): return self.line == other.line