stashList method
Lists all stash entries.
Implementation
Future<List<GitStash>> stashList({String? workDir}) async {
final result = await _runGit([
'stash',
'list',
'--format=%gd|%gs|%aI',
], workDir: workDir ?? defaultWorkDir);
final output = (result.stdout as String).trim();
if (output.isEmpty) return [];
final stashes = <GitStash>[];
for (final line in LineSplitter.split(output)) {
final parts = line.split('|');
if (parts.isEmpty) continue;
final indexMatch = RegExp(r'stash@\{(\d+)\}').firstMatch(parts[0]);
final index = indexMatch != null
? int.tryParse(indexMatch.group(1)!) ?? 0
: stashes.length;
stashes.add(
GitStash(
index: index,
message: parts.length > 1 ? parts[1] : '',
date: parts.length > 2 ? DateTime.tryParse(parts[2]) : null,
),
);
}
return stashes;
}