diff options
-rw-r--r-- | docs/Config.md | 1 | ||||
-rw-r--r-- | pkg/commands/git_commands/commit.go | 10 | ||||
-rw-r--r-- | pkg/commands/git_commands/commit_test.go | 15 | ||||
-rw-r--r-- | pkg/config/user_config.go | 2 |
4 files changed, 27 insertions, 1 deletions
diff --git a/docs/Config.md b/docs/Config.md index e353a44ba..d3b3aeb3a 100644 --- a/docs/Config.md +++ b/docs/Config.md @@ -67,6 +67,7 @@ git: useConfig: false commit: signOff: false + verbose: false merging: # only applicable to unix users manualCommit: false diff --git a/pkg/commands/git_commands/commit.go b/pkg/commands/git_commands/commit.go index 444ec17ac..be06cb245 100644 --- a/pkg/commands/git_commands/commit.go +++ b/pkg/commands/git_commands/commit.go @@ -62,7 +62,7 @@ func (self *CommitCommands) CommitCmdObj(message string) oscommands.ICmdObj { // runs git commit without the -m argument meaning it will invoke the user's editor func (self *CommitCommands) CommitEditorCmdObj() oscommands.ICmdObj { - return self.cmd.New(fmt.Sprintf("git commit%s", self.signoffFlag())) + return self.cmd.New(fmt.Sprintf("git commit%s%s", self.signoffFlag(), self.verboseFlag())) } func (self *CommitCommands) signoffFlag() string { @@ -73,6 +73,14 @@ func (self *CommitCommands) signoffFlag() string { } } +func (self *CommitCommands) verboseFlag() string { + if self.UserConfig.Git.Commit.Verbose { + return " --verbose" + } else { + return "" + } +} + // Get the subject of the HEAD commit func (self *CommitCommands) GetHeadCommitMessage() (string, error) { message, err := self.cmd.New("git log -1 --pretty=%s").DontLog().RunWithOutput() diff --git a/pkg/commands/git_commands/commit_test.go b/pkg/commands/git_commands/commit_test.go index 96a46ecf4..f44d350f9 100644 --- a/pkg/commands/git_commands/commit_test.go +++ b/pkg/commands/git_commands/commit_test.go @@ -32,6 +32,7 @@ func TestCommitCommitObj(t *testing.T) { testName string message string configSignoff bool + configVerbose bool configSkipHookPrefix string expected string } @@ -41,6 +42,7 @@ func TestCommitCommitObj(t *testing.T) { testName: "Commit", message: "test", configSignoff: false, + configVerbose: false, configSkipHookPrefix: "", expected: `git commit -m "test"`, }, @@ -48,6 +50,7 @@ func TestCommitCommitObj(t *testing.T) { testName: "Commit with --no-verify flag", message: "WIP: test", configSignoff: false, + configVerbose: false, configSkipHookPrefix: "WIP", expected: `git commit --no-verify -m "WIP: test"`, }, @@ -55,6 +58,7 @@ func TestCommitCommitObj(t *testing.T) { testName: "Commit with multiline message", message: "line1\nline2", configSignoff: false, + configVerbose: false, configSkipHookPrefix: "", expected: `git commit -m "line1" -m "line2"`, }, @@ -62,13 +66,23 @@ func TestCommitCommitObj(t *testing.T) { testName: "Commit with signoff", message: "test", configSignoff: true, + configVerbose: false, configSkipHookPrefix: "", expected: `git commit --signoff -m "test"`, }, { + testName: "Commit with message ignores verbose flag", + message: "test", + configSignoff: false, + configVerbose: true, + configSkipHookPrefix: "", + expected: `git commit -m "test"`, + }, + { testName: "Commit with signoff and no-verify", message: "WIP: test", configSignoff: true, + configVerbose: false, configSkipHookPrefix: "WIP", expected: `git commit --no-verify --signoff -m "WIP: test"`, }, @@ -79,6 +93,7 @@ func TestCommitCommitObj(t *testing.T) { t.Run(s.testName, func(t *testing.T) { userConfig := config.GetDefaultConfig() userConfig.Git.Commit.SignOff = s.configSignoff + userConfig.Git.Commit.Verbose = s.configVerbose userConfig.Git.SkipHookPrefix = s.configSkipHookPrefix instance := buildCommitCommands(commonDeps{userConfig: userConfig}) diff --git a/pkg/config/user_config.go b/pkg/config/user_config.go index ac0971229..06dcf085b 100644 --- a/pkg/config/user_config.go +++ b/pkg/config/user_config.go @@ -94,6 +94,7 @@ type PagingConfig struct { type CommitConfig struct { SignOff bool `yaml:"signOff"` + Verbose bool `yaml:"verbose"` } type MergingConfig struct { @@ -386,6 +387,7 @@ func GetDefaultConfig() *UserConfig { }, Commit: CommitConfig{ SignOff: false, + Verbose: false, }, Merging: MergingConfig{ ManualCommit: false, |