@log_calls
  def commit(self, scope, local_dir, prev_rev, changelist, user=UNKNOWN_USER, message=EMPTY_MESSAGE, time=None):
    '''
    Write a new commit. Scope is the scope we are committing at, local_dir is a
    local directory containing all files, changelist is the set of changes with
    respect to prev_rev. All paths in changelist are relative to local_dir, which
    would typically be the local copy of files at scope.

    Returns the new revision.

    Currently, this will abort if prev_rev is not the tip.
    '''
    with self.scope_lock(scope):
      tip_rev = self.get_tip(scope)
      if prev_rev != tip_rev:
        raise InvalidOperation((prev_rev, tip_rev, scope) % "working directory (%s) is out of date with new tip (%s) for scope '%s' (must update and re-commit)")
      prev_mf = self.get_manifest(scope, prev_rev)
      return self._commit_items(scope, local_dir, prev_mf.items, changelist, user, message, time=time)
dataset/ETHPy150Open bloomreach/zinc/zinc.py/Repo.commit/swapped operands of `%`