code: def copy_previous_results(self):
      
      # TODO(mateo): This should probably be managed by the task, which manages the rest of the
      # incremental support.
      if not self.previous_cache_key:
        return None
      previous_path = self._cache_manager._results_dir_path(self.previous_cache_key, stable=False)
      if os.path.isdir(previous_path):
        self.is_incremental = True
        safe_rmtree(self._current_results_dir)
        shutil.copytree(previous_path, self._current_results_dir)
      safe_mkdir(self._current_results_dir)
      relative_symlink(self._current_results_dir, self.results_dir)
      # Set the self._previous last, so that it is only True after the copy completed.
      self._previous_results_dir = previous_path
docs: Use the latest valid results_dir as the starting contents of the current results_dir.
  
      Should be called after the cache is checked, since previous_results are not useful if there is
      a cached artifact.