mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-13 15:35:20 +01:00
Add command to drop all stashes
This commit is contained in:
@@ -501,6 +501,11 @@
|
||||
"title": "%command.stashDrop%",
|
||||
"category": "Git"
|
||||
},
|
||||
{
|
||||
"command": "git.stashDropAll",
|
||||
"title": "%command.stashDropAll%",
|
||||
"category": "Git"
|
||||
},
|
||||
{
|
||||
"command": "git.timeline.openDiff",
|
||||
"title": "%command.timelineOpenDiff%",
|
||||
@@ -914,6 +919,10 @@
|
||||
"command": "git.stashDrop",
|
||||
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
|
||||
},
|
||||
{
|
||||
"command": "git.stashDropAll",
|
||||
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
|
||||
},
|
||||
{
|
||||
"command": "git.timeline.openDiff",
|
||||
"when": "false"
|
||||
@@ -1651,6 +1660,10 @@
|
||||
{
|
||||
"command": "git.stashDrop",
|
||||
"group": "stash@7"
|
||||
},
|
||||
{
|
||||
"command": "git.stashDropAll",
|
||||
"group": "stash@8"
|
||||
}
|
||||
],
|
||||
"git.tags": [
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
"command.stashApply": "Apply Stash...",
|
||||
"command.stashApplyLatest": "Apply Latest Stash",
|
||||
"command.stashDrop": "Drop Stash...",
|
||||
"command.stashDropAll": "Drop All Stashes...",
|
||||
"command.timelineOpenDiff": "Open Changes",
|
||||
"command.timelineCopyCommitId": "Copy Commit ID",
|
||||
"command.timelineCopyCommitMessage": "Copy Commit Message",
|
||||
|
||||
@@ -2604,6 +2604,29 @@ export class CommandCenter {
|
||||
await repository.dropStash(stash.index);
|
||||
}
|
||||
|
||||
@command('git.stashDropAll', { repository: true })
|
||||
async stashDropAll(repository: Repository): Promise<void> {
|
||||
const stashes = await repository.getStashes();
|
||||
|
||||
if (stashes.length === 0) {
|
||||
window.showInformationMessage(localize('no stashes', "There are no stashes in the repository."));
|
||||
return;
|
||||
}
|
||||
|
||||
// request confirmation for the operation
|
||||
const yes = localize('yes', "Yes");
|
||||
const question = stashes.length === 1 ?
|
||||
localize('drop one stash', "Are you sure you want to drop ALL stashes? There is 1 stash that will be subject to pruning, and MAY BE IMPOSSIBLE TO RECOVER.") :
|
||||
localize('drop all stashes', "Are you sure you want to drop ALL stashes? There are {0} stashes that will be subject to pruning, and MAY BE IMPOSSIBLE TO RECOVER.", stashes.length);
|
||||
|
||||
const result = await window.showWarningMessage(question, yes);
|
||||
if (result !== yes) {
|
||||
return;
|
||||
}
|
||||
|
||||
await repository.dropStash();
|
||||
}
|
||||
|
||||
private async pickStash(repository: Repository, placeHolder: string): Promise<Stash | undefined> {
|
||||
const stashes = await repository.getStashes();
|
||||
|
||||
|
||||
@@ -1794,10 +1794,13 @@ export class Repository {
|
||||
}
|
||||
|
||||
async dropStash(index?: number): Promise<void> {
|
||||
const args = ['stash', 'drop'];
|
||||
const args = ['stash'];
|
||||
|
||||
if (typeof index === 'number') {
|
||||
args.push('drop');
|
||||
args.push(`stash@{${index}}`);
|
||||
} else {
|
||||
args.push('clear');
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user