diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index 4c712ed4e06..0ad6ae25db7 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -1939,6 +1939,17 @@ export class Repository { return message.replace(/^\s*#.*$\n?/gm, '').trim(); } + async getSquashMessage(): Promise { + const squashMsgPath = path.join(this.repositoryRoot, '.git', 'SQUASH_MSG'); + + try { + const raw = await fs.readFile(squashMsgPath, 'utf8'); + return this.stripCommitMessageComments(raw); + } catch { + return undefined; + } + } + async getMergeMessage(): Promise { const mergeMsgPath = path.join(this.repositoryRoot, '.git', 'MERGE_MSG'); diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index 72afa29eeea..7d6b77432e3 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -866,9 +866,12 @@ export class Repository implements Disposable { async getInputTemplate(): Promise { const mergeMessage = await this.repository.getMergeMessage(); + const squashMessage = await this.repository.getSquashMessage(); if (mergeMessage) { return mergeMessage; + } else if (squashMessage) { + return squashMessage; } return await this.repository.getCommitTemplate();