use 'x is None' instead of 'x == None'
The built-in None object is a singleton and it is therefore safe to
compare memory addresses with is. It is also faster, how much depends
on the object being compared. For a simple type like str I get:
| s = "foo" | s = None
----------+-----------+----------
s == None | 0.25 usec | 0.21 usec
s is None | 0.17 usec | 0.17 usec
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
removing b
created new head
% should abort
abort: crosses branches (use 'hg merge' or 'hg update -C' to discard changes)
% should succeed
abort: crosses branches (use 'hg merge' or 'hg update -C')