--- a/mercurial/dirstate.py Wed Mar 01 17:59:21 2017 -0800
+++ b/mercurial/dirstate.py Wed Mar 01 18:21:06 2017 -0800
@@ -1220,8 +1220,9 @@
# use '_writedirstate' instead of 'write' to write changes certainly,
# because the latter omits writing out if transaction is running.
# output file will be used to create backup of dirstate at this point.
- self._writedirstate(self._opener(filename, "w", atomictemp=True,
- checkambig=True))
+ if self._dirty or not self._opener.exists(filename):
+ self._writedirstate(self._opener(filename, "w", atomictemp=True,
+ checkambig=True))
if tr:
# ensure that subsequent tr.writepending returns True for