package org.iwakura.larcjb.rollback import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.project.Project import com.intellij.openapi.vcs.FilePath import com.intellij.openapi.vcs.VcsException import com.intellij.openapi.vcs.changes.Change import com.intellij.openapi.vcs.rollback.RollbackEnvironment import com.intellij.openapi.vcs.rollback.RollbackProgressListener import com.intellij.openapi.vfs.VirtualFile import org.iwakura.larcjb.LarcExecutable /** * Handles revert/rollback operations for Larc VCS. */ class LarcRollbackEnvironment( private val project: Project, private val executable: LarcExecutable ) : RollbackEnvironment { private val log = Logger.getInstance(LarcRollbackEnvironment::class.java) override fun getRollbackOperationName(): String = "Revert" override fun rollbackChanges( changes: MutableList, exceptions: MutableList, listener: RollbackProgressListener ) { /* * TODO(kroot): implement rollback/revert functionality * * This requires larc to support a revert command like: * larc revert * or * larc checkout * * For now, we'll just log that this isn't implemented yet */ log.warn("Rollback not yet implemented for Larc VCS") exceptions.add(VcsException("Rollback is not yet implemented for Larc VCS")) } override fun rollbackMissingFileDeletion( files: List, exceptions: MutableList, listener: RollbackProgressListener ) { /* TODO(kroot): restore deleted files from last revision */ log.warn("Rollback missing file deletion not implemented") } override fun rollbackModifiedWithoutCheckout( files: List, exceptions: MutableList, listener: RollbackProgressListener ) { /* TODO(kroot): implement modified file rollback */ log.warn("Rollback modified without checkout not implemented") } }