diff --git a/package.json b/package.json index cfc86d3..e84f466 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "gptcommit", "displayName": "vscode-gptcommit", "description": "Automated git commit messages using GPT models", - "version": "0.2.1", + "version": "0.2.2", "repository": { "url": "https://github.com/pwwang/vscode-gptcommit" }, diff --git a/src/commands/createCommandGenerateGitCommitMessage.ts b/src/commands/createCommandGenerateGitCommitMessage.ts index f0309f2..7c0c802 100644 --- a/src/commands/createCommandGenerateGitCommitMessage.ts +++ b/src/commands/createCommandGenerateGitCommitMessage.ts @@ -19,8 +19,12 @@ export default (context: vscode.ExtensionContext, channel: vscode.OutputChannel) } vscode.commands.executeCommand('setContext', 'gptcommit.generating', false); }).catch((err) => { - vscode.window.showErrorMessage(err); vscode.commands.executeCommand('setContext', 'gptcommit.generating', false); + vscode.window.showErrorMessage(err, "Show Output").then((choice) => { + if (choice === "Show Output") { + channel.show(); + } + }); }); } ); diff --git a/src/utils.ts b/src/utils.ts index bbc75c3..b38d820 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -70,15 +70,25 @@ export async function getCommitMessage( channel.appendLine('DEBUG: allow_amend is false'); } // set allow-amend to true - const cmd = `${gptcommit} config set allow_amend true`; + const cmd = `${gptcommit} config set --local allow_amend true`; channel.appendLine(`COMMAND: ${cmd}`); - execSync(cmd, {cwd: repo.rootUri.fsPath}); - // try again - getCommitMessage(config, repo, context, channel).then((msg) => { - resolve(msg); - }).catch((err) => { - reject(err); - }); + let setAmendSuccess = true; + try { + const setAmendOut = execSync(cmd, {cwd: repo.rootUri.fsPath}).toString(); + channel.appendLine(`STDOUT: ${setAmendOut}`); + } catch (error) { + setAmendSuccess = false; + channel.appendLine(`ERROR: ${error}`); + reject("Failed to set allow_amend to true"); + } + if (setAmendSuccess) { + // try again + getCommitMessage(config, repo, context, channel).then((msg) => { + resolve(msg); + }).catch((err) => { + reject(err); + }); + } } else if (err || stderr) { if (config.debug) { channel.appendLine(`DEBUG: gptcommit failed with error: ${err} | ${stderr}`);