mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
Add command to drop all stashes
This commit is contained in:
parent
419e16a49c
commit
302c41cf4e
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue