1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-02-03 13:21:56 +02:00

Add skipHookPrefix to config

allows a user to specify a commit message prefix that will tell lazygit to skip
the pre-commit hook. This defaults to WIP. Setting it to the empty string will
disable the feature.

So if my message goes 'WIP: do the thing' then the pre-commit hook will not run
This commit is contained in:
Jesse Duffield 2019-04-13 13:34:12 +10:00
parent cadc74eeec
commit ab9fa291a8
4 changed files with 10 additions and 3 deletions

View File

@ -21,6 +21,7 @@
merging:
# only applicable to unix users
manualCommit: false
skipHookPrefix: WIP
update:
method: prompt # can be: prompt | background | never
days: 14 # how often an update is checked for

View File

@ -334,8 +334,8 @@ func (c *GitCommand) usingGpg() bool {
}
// Commit commits to git
func (c *GitCommand) Commit(message string) (*exec.Cmd, error) {
command := fmt.Sprintf("git commit -m %s", c.OSCommand.Quote(message))
func (c *GitCommand) Commit(message string, flags string) (*exec.Cmd, error) {
command := fmt.Sprintf("git commit %s -m %s", flags, c.OSCommand.Quote(message))
if c.usingGpg() {
return c.OSCommand.PrepareSubProcess(c.OSCommand.Platform.shell, c.OSCommand.Platform.shellArg, command), nil
}

View File

@ -248,6 +248,7 @@ func GetDefaultConfig() []byte {
git:
merging:
manualCommit: false
skipHookPrefix: 'WIP'
update:
method: prompt # can be: prompt | background | never
days: 14 # how often a update is checked for

View File

@ -30,7 +30,12 @@ func (gui *Gui) handleCommitConfirm(g *gocui.Gui, v *gocui.View) error {
if message == "" {
return gui.createErrorPanel(g, gui.Tr.SLocalize("CommitWithoutMessageErr"))
}
ok, err := gui.runSyncOrAsyncCommand(gui.GitCommand.Commit(message))
flags := ""
skipHookPrefix := gui.Config.GetUserConfig().GetString("git.skipHookPrefix")
if skipHookPrefix != "" && strings.HasPrefix(message, skipHookPrefix) {
flags = "--no-verify"
}
ok, err := gui.runSyncOrAsyncCommand(gui.GitCommand.Commit(message, flags))
if err != nil {
return err
}