Skip to content

Commit a8d893c

Browse files
committed
Adds friendlier error messages for continue/skip
1 parent 45e2de1 commit a8d893c

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

src/env/node/git/git.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1783,7 +1783,7 @@ const errorToReasonMap = new Map<GitCommand, [RegExp, GitCommandToReasonMap[GitC
17831783
[GitErrors.noPausedOperation, 'nothingToContinue'],
17841784
[GitErrors.uncommittedChanges, 'uncommittedChanges'],
17851785
[GitErrors.unmergedFiles, 'unmergedFiles'],
1786-
[GitErrors.unresolvedConflicts, 'unresolvedConflicts'],
1786+
[GitErrors.unresolvedConflicts, 'conflicts'],
17871787
[GitErrors.unstagedChanges, 'unstagedChanges'],
17881788
[GitErrors.changesWouldBeOverwritten, 'wouldOverwriteChanges'],
17891789
],

src/git/actions/pausedOperation.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,21 @@ async function continuePausedOperationCore(svc: GitRepositoryService, skip: bool
5454
return;
5555
}
5656

57+
if (
58+
PausedOperationContinueError.is(ex, 'uncommittedChanges') ||
59+
PausedOperationContinueError.is(ex, 'unstagedChanges') ||
60+
PausedOperationContinueError.is(ex, 'wouldOverwriteChanges')
61+
) {
62+
void window.showWarningMessage(ex.message);
63+
return;
64+
}
65+
66+
if (PausedOperationContinueError.is(ex, 'conflicts') || PausedOperationContinueError.is(ex, 'unmergedFiles')) {
67+
void window.showWarningMessage(ex.message);
68+
void executeCommand('gitlens.showCommitsView');
69+
return;
70+
}
71+
5772
void showGitErrorMessage(ex);
5873
}
5974
}

src/git/errors.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,11 +344,11 @@ export class PausedOperationAbortError extends GitCommandError<PausedOperationAb
344344
}
345345

346346
export type PausedOperationContinueErrorReason =
347+
| 'conflicts'
347348
| 'emptyCommit'
348349
| 'nothingToContinue'
349350
| 'uncommittedChanges'
350351
| 'unmergedFiles'
351-
| 'unresolvedConflicts'
352352
| 'unstagedChanges'
353353
| 'wouldOverwriteChanges';
354354
interface PausedOperationContinueErrorDetails {
@@ -369,6 +369,8 @@ export class PausedOperationContinueError extends GitCommandError<PausedOperatio
369369

370370
protected override buildErrorMessage(details: PausedOperationContinueErrorDetails): string {
371371
switch (details.reason) {
372+
case 'conflicts':
373+
return `Cannot ${details.skip ? 'skip' : 'continue'} the ${details.operation.type} operation as there are unresolved conflicts`;
372374
case 'emptyCommit':
373375
return `Cannot ${details.skip ? 'skip' : 'continue'} the ${details.operation.type} operation as the previous commit is empty`;
374376
case 'nothingToContinue':
@@ -377,8 +379,6 @@ export class PausedOperationContinueError extends GitCommandError<PausedOperatio
377379
return `Cannot ${details.skip ? 'skip' : 'continue'} the ${details.operation.type} operation as there are uncommitted changes`;
378380
case 'unmergedFiles':
379381
return `Cannot ${details.skip ? 'skip' : 'continue'} the ${details.operation.type} operation as there are unmerged files`;
380-
case 'unresolvedConflicts':
381-
return `Cannot ${details.skip ? 'skip' : 'continue'} the ${details.operation.type} operation as there are unresolved conflicts`;
382382
case 'unstagedChanges':
383383
return `Cannot ${details.skip ? 'skip' : 'continue'} the ${details.operation.type} operation as there are unstaged changes`;
384384
case 'wouldOverwriteChanges':

0 commit comments

Comments
 (0)