# HG changeset patch
# User Augie Fackler <augie@google.com>
# Date 1418409644 18000
#      Fri Dec 12 13:40:44 2014 -0500
# Branch stable
# Node ID 6f53629ad2733199ae2194bfb33569cf7b2fef1d
# Parent  b1179dabc6de9a215b2305c7209b64b764526c39
manifest: disallow setting the node id of an entry to None

manifest.diff() uses None as a special value to denote the absence of
a file, so setting a file node to None means you then can't trust
manifest.diff().

This should also make future manifest work slightly easier.

diff --git a/mercurial/manifest.py b/mercurial/manifest.py
--- a/mercurial/manifest.py
+++ b/mercurial/manifest.py
@@ -17,6 +17,9 @@
             flags = {}
         dict.__init__(self, mapping)
         self._flags = flags
+    def __setitem__(self, k, v):
+        assert v is not None
+        dict.__setitem__(self, k, v)
     def flags(self, f):
         return self._flags.get(f, "")
     def withflags(self):