code: def StartMergeTaskStorage(self, task):
      
      if self._storage_type != definitions.STORAGE_TYPE_SESSION:
        raise IOError('Unsupported storage type.')
  
      if not self._merge_task_storage_path:
        raise IOError('Missing merge task storage path.')
  
      merge_storage_file_path = self._GetMergeTaskStorageFilePath(task)
  
      if not os.path.isfile(merge_storage_file_path):
        raise IOError('Merge task storage path is not a file.')
  
      return self._CreateTaskStorageMergeReader(merge_storage_file_path)
docs: Starts a merge of a task storage with the session storage.
  
      Args:
        task (Task): task.
  
      Returns:
        StorageMergeReader: storage merge reader of the task storage.
  
      Raises:
        IOError: if the storage file cannot be opened or
            if the storage type is not supported or
            if the temporary path for the task storage does not exist or
            if the temporary path for the task storage doe not refers to a file.
        OSError: if the storage file cannot be opened or
            if the storage type is not supported or
            if the temporary path for the task storage does not exist or
            if the temporary path for the task storage doe not refers to a file.