code: def save(self):
          
          if not self._dirty:
              return
  
          fields = []
          formdata = dict(self._p4dict)
          del formdata['code']
          for key, value in six.iteritems(formdata):
              match = re.search('\d$', key)
              if match:
                  value = '\t{}'.format(value)
                  key = key[:match.start()]
  
              value = value.replace('\n', '\n\t')
              fields.append('{}:  {}'.format(key, value))
          form = '\n'.join(fields)
          self._connection.run([self.COMMAND, '-i'], stdin=form, marshal_output=False)
          self._dirty = False
docs: Saves the state of the changelist