Skip to content

Commit 2bd458c

Browse files
committed
Updates error handling for paused operations
1 parent 27899d2 commit 2bd458c

File tree

2 files changed

+60
-15
lines changed

2 files changed

+60
-15
lines changed

src/views/viewCommands.ts

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -715,24 +715,45 @@ export class ViewCommands implements Disposable {
715715
}
716716

717717
@log()
718-
private abortPausedOperation(node: PausedOperationStatusNode) {
719-
if (!node.is('paused-operation-status')) return Promise.resolve();
718+
private async abortPausedOperation(node: PausedOperationStatusNode) {
719+
if (!node.is('paused-operation-status')) return;
720720

721-
return this.container.git.status(node.pausedOpStatus.repoPath).abortPausedOperation?.();
721+
const abortPausedOperation = this.container.git.status(node.pausedOpStatus.repoPath).abortPausedOperation;
722+
if (abortPausedOperation == null) return;
723+
724+
try {
725+
await abortPausedOperation();
726+
} catch (ex) {
727+
void window.showErrorMessage(ex.message);
728+
}
722729
}
723730

724731
@log()
725-
private continuePausedOperation(node: PausedOperationStatusNode) {
726-
if (!node.is('paused-operation-status')) return Promise.resolve();
732+
private async continuePausedOperation(node: PausedOperationStatusNode) {
733+
if (!node.is('paused-operation-status')) return;
734+
735+
const continuePausedOperation = this.container.git.status(node.pausedOpStatus.repoPath).continuePausedOperation;
736+
if (continuePausedOperation == null) return;
727737

728-
return this.container.git.status(node.pausedOpStatus.repoPath).continuePausedOperation?.();
738+
try {
739+
await continuePausedOperation();
740+
} catch (ex) {
741+
void window.showErrorMessage(ex.message);
742+
}
729743
}
730744

731745
@log()
732-
private skipPausedOperation(node: PausedOperationStatusNode) {
733-
if (!node.is('paused-operation-status')) return Promise.resolve();
746+
private async skipPausedOperation(node: PausedOperationStatusNode) {
747+
if (!node.is('paused-operation-status')) return;
748+
749+
const continuePausedOperation = this.container.git.status(node.pausedOpStatus.repoPath).continuePausedOperation;
750+
if (continuePausedOperation == null) return;
734751

735-
return this.container.git.status(node.pausedOpStatus.repoPath).continuePausedOperation?.({ skip: true });
752+
try {
753+
await continuePausedOperation({ skip: true });
754+
} catch (ex) {
755+
void window.showErrorMessage(ex.message);
756+
}
736757
}
737758

738759
@log()

src/webviews/home/homeWebview.ts

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { ConfigurationChangeEvent } from 'vscode';
2-
import { Disposable, Uri, workspace } from 'vscode';
2+
import { Disposable, Uri, window, workspace } from 'vscode';
33
import type { CreatePullRequestActionContext } from '../../api/gitlens';
44
import type { EnrichedAutolink } from '../../autolinks';
55
import { getAvatarUriFromGravatarEmail } from '../../avatars';
@@ -463,18 +463,42 @@ export class HomeWebviewProvider implements WebviewProvider<State, State, HomeWe
463463
}
464464

465465
private async abortPausedOperation(pausedOpArgs: GitPausedOperationCommandArgs) {
466-
await this.container.git.status(pausedOpArgs.operation.repoPath).abortPausedOperation?.();
466+
const abortPausedOperation = this.container.git.status(pausedOpArgs.operation.repoPath).abortPausedOperation;
467+
if (abortPausedOperation == null) return;
468+
469+
try {
470+
await abortPausedOperation();
471+
} catch (ex) {
472+
void window.showErrorMessage(ex.message);
473+
}
467474
}
468475

469476
private async continuePausedOperation(pausedOpArgs: GitPausedOperationCommandArgs) {
470477
if (pausedOpArgs.operation.type === 'revert') return;
471-
await this.container.git.status(pausedOpArgs.operation.repoPath).continuePausedOperation?.();
478+
479+
const continuePausedOperation = this.container.git.status(
480+
pausedOpArgs.operation.repoPath,
481+
).continuePausedOperation;
482+
if (continuePausedOperation == null) return;
483+
484+
try {
485+
await continuePausedOperation();
486+
} catch (ex) {
487+
void window.showErrorMessage(ex.message);
488+
}
472489
}
473490

474491
private async skipPausedOperation(pausedOpArgs: GitPausedOperationCommandArgs) {
475-
if (pausedOpArgs.operation.type === 'merge') return;
476-
477-
await this.container.git.status(pausedOpArgs.operation.repoPath).continuePausedOperation?.({ skip: true });
492+
const continuePausedOperation = this.container.git.status(
493+
pausedOpArgs.operation.repoPath,
494+
).continuePausedOperation;
495+
if (continuePausedOperation == null) return;
496+
497+
try {
498+
await continuePausedOperation({ skip: true });
499+
} catch (ex) {
500+
void window.showErrorMessage(ex.message);
501+
}
478502
}
479503

480504
private async openRebaseEditor(pausedOpArgs: GitPausedOperationCommandArgs) {

0 commit comments

Comments
 (0)