changeset 2834:35af2e56f15a

manifestflags: eliminate remaining users of direct dict access
author Matt Mackall <mpm@selenic.com>
date Wed, 19 Jul 2006 19:11:50 -0500
parents d0159c5f18bf
children a9f5d4149123
files mercurial/localrepo.py mercurial/manifest.py
diffstat 2 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/localrepo.py	Sun Jul 16 03:22:05 2006 -0500
+++ b/mercurial/localrepo.py	Wed Jul 19 19:11:50 2006 -0500
@@ -1792,7 +1792,7 @@
                     # we need to reset the dirstate if the file was added
                     get[f] = m2[f]
 
-                if not s and mfw[f] != mf2[f]:
+                if not s and mfw.execf(f) != mf2.execf(f):
                     if force:
                         self.ui.debug(_(" updating permissions for %s\n") % f)
                         util.set_exec(self.wjoin(f), mf2.execf(f))
--- a/mercurial/manifest.py	Sun Jul 16 03:22:05 2006 -0500
+++ b/mercurial/manifest.py	Wed Jul 19 19:11:50 2006 -0500
@@ -13,6 +13,10 @@
 class manifestflags(dict):
     def __init__(self, mapping={}):
         dict.__init__(self, mapping)
+    def __getitem__(self, f):
+        raise "oops"
+    def flags(self, f):
+        return dict.__getitem__(self, f)
     def execf(self, f):
         "test for executable in manifest flags"
         return "x" in self.get(f, "")
@@ -140,7 +144,7 @@
 
             # if this is changed to support newlines in filenames,
             # be sure to check the templates/ dir again (especially *-raw.tmpl)
-            text = ["%s\000%s%s\n" % (f, hex(map[f]), flags[f]) for f in files]
+            text = ["%s\000%s%s\n" % (f, hex(map[f]), flags.flags(f)) for f in files]
             self.listcache = array.array('c', "".join(text))
             cachedelta = None
         else:
@@ -166,7 +170,7 @@
                 # bs will either be the index of the item or the insert point
                 start, end = self._search(addbuf, f, start)
                 if w[1] == 0:
-                    l = "%s\000%s%s\n" % (f, hex(map[f]), flags[f])
+                    l = "%s\000%s%s\n" % (f, hex(map[f]), flags.flags(f))
                 else:
                     l = ""
                 if start == end and w[1] == 1: