docs: def commit_version(self, version, msg=None):
          """ Add tag, commit, and push changes """
  
          assert version not in self.versions, 'Will not overwrite a version name.'
  
          if not msg:
              feat, targ = self.training_data
              msg = 'Training set has {0} examples. '.format(len(feat))
              feat, targ = self.testing_data
              msg += 'Testing set has {0} examples.'.format(len(feat))
  
          cmd = self.repo.commit(m=msg, a=True)
          cmd = self.repo.tag(version)
          cmd = self.repo.checkout('master')
          self.update()
          cmd = self.repo.merge('working')
          cmd = self.repo.branch('working', d=True)
          self.set_version(version)
  
          try:
              stdout = self.repo.push('origin', 'master', '--tags').stdout
              logger.info(stdout)
          except:
              logger.info('Push not working. Remote not defined?')