code: public void rollback(File rollbackToDir) {
          logger.info("Rolling back store '" + getName() + "'");
          fileModificationLock.writeLock().lock();
          try {
              if(rollbackToDir == null)
                  throw new VoldemortException("Version directory specified to rollback is null");
  
              if(!rollbackToDir.exists())
                  throw new VoldemortException("Version directory " + rollbackToDir.getAbsolutePath()
                                               + " specified to rollback does not exist");
  
              long versionId = ReadOnlyUtils.getVersionId(rollbackToDir);
              if(versionId == -1)
                  throw new VoldemortException("Cannot parse version id");
  
              File[] backUpDirs = ReadOnlyUtils.getVersionDirs(storeDir, versionId, Long.MAX_VALUE);
              if(backUpDirs == null || backUpDirs.length <= 1) {
                  logger.warn("No rollback performed since there are no back-up directories");
                  return;
              }
              backUpDirs = ReadOnlyUtils.findKthVersionedDir(backUpDirs, 0, backUpDirs.length - 1);
  
              if(isOpen)
                  close();
  
              // open the rollback directory
              open(rollbackToDir);
  
              // back-up all other directories
              DateFormat df = new SimpleDateFormat("MM-dd-yyyy");
              for(int index = 1; index < backUpDirs.length; index++) {
                  Utils.move(backUpDirs[index], new File(storeDir, backUpDirs[index].getName() + "."
                                                                   + df.format(new Date()) + ".bak"));
              }
  
          } finally {
              fileModificationLock.writeLock().unlock();
              logger.info("Rollback operation completed on '" + getName() + "', releasing lock.");
          }
      }
docs: Rollback to the specified push version
  
  @param rollbackToDir The version directory to rollback to