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
#!/bin/sh
mkdir t
cd t
hg init
mkdir a
echo foo > a/a
echo bar > a/b
hg ci -Am "0"
hg co -C 0
hg mv a b
hg ci -m "1 mv a/ b/"
hg co -C 0
echo baz > a/c
echo quux > a/d
hg add a/c
hg ci -m "2 add a/c"
hg merge --debug 1
echo a/* b/*
hg st -C
hg ci -m "3 merge 2+1"
hg debugrename b/c
hg co -C 1
hg merge --debug 2
echo a/* b/*
hg st -C
hg ci -m "4 merge 1+2"
hg debugrename b/c