--- a/Plugins/VcsPlugins/vcsMercurial/hg.py Thu Apr 22 17:47:29 2010 +0000 +++ b/Plugins/VcsPlugins/vcsMercurial/hg.py Thu Apr 22 18:14:32 2010 +0000 @@ -784,6 +784,9 @@ if fname == '.' and os.path.isdir(os.path.join(dname, self.adminDir)): return self.canBeCommitted + if name in self.statusCache: + return self.statusCache[name] + # find the root of the repo repodir = dname while not os.path.isdir(os.path.join(repodir, self.adminDir)): @@ -837,10 +840,6 @@ found = False for name in list(self.statusCache.keys()): -## if os.path.dirname(name) == dname: -## if shortcut: -## found = True -## break if name in names: found = True names[name] = self.statusCache[name] @@ -870,17 +869,14 @@ str(process.readAllStandardOutput(), ioEncoding, 'replace') for line in output.splitlines(): flag, path = line.split(" ", 1) - name = os.path.join(repodir, os.path.normcase(path)) + name = os.path.join(repodir, os.path.normcase(path)) dirName = os.path.dirname(name) if name.startswith(dname): if flag not in "?I": if name in names: names[name] = self.canBeCommitted -## dirName = os.path.dirname(name) if dirName in names: names[dirName] = self.canBeCommitted -## self.statusCache[name] = self.canBeCommitted -## self.statusCache[dirName] = self.canBeCommitted if dirs: for d in dirs: if name.startswith(d): @@ -892,7 +888,6 @@ self.statusCache[dirName] = self.canBeCommitted else: self.statusCache[name] = self.canBeAdded -## dirName = os.path.dirname(name) if dirName not in self.statusCache: self.statusCache[dirName] = self.canBeAdded