code: def change(self, *filenodes):
          
          for node in filenodes:
              if node.path in (n.path for n in self.removed):
                  raise NodeAlreadyRemovedError("Node at %s is already marked "
                      "as removed" % node.path)
          try:
              self.repository.get_changeset()
          except EmptyRepositoryError:
              raise EmptyRepositoryError("Nothing to change - try to *add* new "
                  "nodes rather than changing them")
          for node in filenodes:
              if node.path in (n.path for n in self.changed):
                  raise NodeAlreadyChangedError("Node at '%s' is already "
                      "marked as changed" % node.path)
              self.changed.append(node)
docs: Marks given ``FileNode`` objects to be *changed* in next commit.
  
          :raises ``EmptyRepositoryError``: if there are no changesets yet
          :raises ``NodeAlreadyExistsError``: if node with same path is already
            marked to be *changed*
          :raises ``NodeAlreadyRemovedError``: if node with same path is already
            marked to be *removed*
          :raises ``NodeDoesNotExistError``: if node doesn't exist in latest
            changeset
          :raises ``NodeNotChangedError``: if node hasn't really be changed