diff --git a/extensions/git/src/api/git.d.ts b/extensions/git/src/api/git.d.ts index ea4d1f97d6c..1b3ed4d2dec 100644 --- a/extensions/git/src/api/git.d.ts +++ b/extensions/git/src/api/git.d.ts @@ -214,4 +214,5 @@ export const enum GitErrorCodes { WrongCase = 'WrongCase', CantLockRef = 'CantLockRef', CantRebaseMultipleBranches = 'CantRebaseMultipleBranches', + PatchDoesNotApply = 'PatchDoesNotApply' } \ No newline at end of file diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index ff7e7bdd607..380ee42f411 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -829,7 +829,15 @@ export class Repository { args.push('-R'); } - await this.run(args); + try { + await this.run(args); + } catch (err) { + if (/patch does not apply/.test(err.stderr)) { + err.gitErrorCode = GitErrorCodes.PatchDoesNotApply; + } + + throw err; + } } async diff(cached = false): Promise {