diff -r f0e9f38d250f -r 54522bbe1597 mercurial/context.py --- a/mercurial/context.py Tue Jan 12 13:43:41 2016 -0800 +++ b/mercurial/context.py Tue Jan 12 12:43:36 2016 -0800 @@ -140,9 +140,15 @@ added.append(fn) elif node2 is None: removed.append(fn) + elif node2 != _newnode: + # The file was not a new file in mf2, so an entry + # from diff is really a difference. + modified.append(fn) elif flag1 != flag2: modified.append(fn) elif self[fn].cmp(other[fn]): + # node2 was newnode, but the working file doesn't + # match the one in mf1. modified.append(fn) else: clean.append(fn)