diff --git a/extensions/git/package.json b/extensions/git/package.json index 9cee78f096b..060b6af554e 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -1608,6 +1608,12 @@ "default": "mixed", "description": "%config.untrackedChanges%", "scope": "resource" + }, + "git.restoreCommitTemplateComments": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "%config.restoreCommitTemplateComments%" } } }, diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json index 0c4959e20e4..ad377c36b61 100644 --- a/extensions/git/package.nls.json +++ b/extensions/git/package.nls.json @@ -139,6 +139,7 @@ "config.untrackedChanges.mixed": "All changes, tracked and untracked, appear together and behave equally.", "config.untrackedChanges.separate": "Untracked changes appear separately in the Source Control view. They are also excluded from several actions.", "config.untrackedChanges.hidden": "Untracked changes are hidden and excluded from several actions.", + "config.restoreCommitTemplateComments": "Controls whether to restore commit template comments in the commit input box.", "colors.added": "Color for added resources.", "colors.modified": "Color for modified resources.", "colors.deleted": "Color for deleted resources.", diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index 23a68ca7c16..6d54fb4db21 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -1823,7 +1823,6 @@ export class Repository { return message.replace(/^\s*#.*$\n?/gm, '').trim(); } - 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 949c97bb8a3..5f3c9bee464 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -844,7 +844,15 @@ export class Repository implements Disposable { return mergeMessage; } - return await this.repository.getCommitTemplate(); + let template = await this.repository.getCommitTemplate(); + + const config = workspace.getConfiguration('git', Uri.file(this.root)); + + if (!config.get('restoreCommitTemplateComments')) { + template = this.cleanUpCommitEditMessage(template); + } + + return template; } getConfigs(): Promise<{ key: string; value: string; }[]> { @@ -1278,7 +1286,7 @@ export class Repository implements Disposable { return await this.run(Operation.GetCommitTemplate, async () => this.repository.getCommitTemplate()); } - async cleanUpCommitEditMessage(editMessage: string): Promise { + cleanUpCommitEditMessage(editMessage: string): string { return this.repository.cleanupCommitEditMessage(editMessage); }