code: def append(self, rev):
          
          if not isinstance(rev, Revision):
              results = self._connection.ls(rev)
              if not results:
                  self._connection.add(rev, self)
                  return
  
              rev = results[0]
  
          if not rev in self:
              if rev.isMapped:
                  rev.edit(self)
  
              self._files.append(rev)
              rev.changelist = self
  
              self._dirty = True
docs: Adds a :py:class:Revision to this changelist and adds or checks it out if needed
  
          :param rev: Revision to add
          :type rev: :class:`.Revision`