code: def get_node(self, path):
          
  
          path = self._fix_path(path)
  
          if not path in self.nodes:
              if path in self._file_paths:
                  node = FileNode(path, changeset=self)
              elif path in self._dir_paths or path in self._dir_paths:
                  if path == '':
                      node = RootNode(changeset=self)
                  else:
                      node = DirNode(path, changeset=self)
              else:
                  raise NodeDoesNotExistError("There is no file nor directory "
                      "at the given path: '%s' at revision %s"
                      % (path, self.short_id))
              # cache node
              self.nodes[path] = node
          return self.nodes[path]
docs: Returns ``Node`` object from the given ``path``. If there is no node at
          the given ``path``, ``ChangesetError`` would be raised.