Skip to content

Commit 5c27682

Browse files
committed
Updates error handling for paused operations
1 parent 6a5f226 commit 5c27682

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';
@@ -474,18 +474,42 @@ export class HomeWebviewProvider implements WebviewProvider<State, State, HomeWe
474474
}
475475

476476
private async abortPausedOperation(pausedOpArgs: GitPausedOperationCommandArgs) {
477-
await this.container.git.status(pausedOpArgs.operation.repoPath).abortPausedOperation?.();
477+
const abortPausedOperation = this.container.git.status(pausedOpArgs.operation.repoPath).abortPausedOperation;
478+
if (abortPausedOperation == null) return;
479+
480+
try {
481+
await abortPausedOperation();
482+
} catch (ex) {
483+
void window.showErrorMessage(ex.message);
484+
}
478485
}
479486

480487
private async continuePausedOperation(pausedOpArgs: GitPausedOperationCommandArgs) {
481488
if (pausedOpArgs.operation.type === 'revert') return;
482-
await this.container.git.status(pausedOpArgs.operation.repoPath).continuePausedOperation?.();
489+
490+
const continuePausedOperation = this.container.git.status(
491+
pausedOpArgs.operation.repoPath,
492+
).continuePausedOperation;
493+
if (continuePausedOperation == null) return;
494+
495+
try {
496+
await continuePausedOperation();
497+
} catch (ex) {
498+
void window.showErrorMessage(ex.message);
499+
}
483500
}
484501

485502
private async skipPausedOperation(pausedOpArgs: GitPausedOperationCommandArgs) {
486-
if (pausedOpArgs.operation.type === 'merge') return;
487-
488-
await this.container.git.status(pausedOpArgs.operation.repoPath).continuePausedOperation?.({ skip: true });
503+
const continuePausedOperation = this.container.git.status(
504+
pausedOpArgs.operation.repoPath,
505+
).continuePausedOperation;
506+
if (continuePausedOperation == null) return;
507+
508+
try {
509+
await continuePausedOperation({ skip: true });
510+
} catch (ex) {
511+
void window.showErrorMessage(ex.message);
512+
}
489513
}
490514

491515
private async openRebaseEditor(pausedOpArgs: GitPausedOperationCommandArgs) {

0 commit comments

Comments
 (0)