applyBackupStash method

Future<bool> applyBackupStash([
  1. String? hash
])

Implementation

Future<bool> applyBackupStash([String? hash]) async {
  logger.detail('applying backup stash');

  final stashHash = hash ?? await getBackupStashHash();

  if (stashHash == null) {
    logger
      ..err('No backup stash found')
      ..detail('Skipping stash apply');
    return false;
  }

  // apply stash
  final apply = await Process.run('git', [
    'stash',
    'apply',
    '--quiet',
    '--index',
    '$stashHash',
  ]);

  if (apply.exitCode != 0) {
    logger
      ..err('Failed to apply stash')
      ..detail('Error: ${apply.stderr}')
      ..detail('Restoring stash before reset');

    return false;
  }

  return true;
}