devcam/hook: handle 'verbose' commits

See https://github.com/golang/go/issues/16376, and the related
https://go-review.googlesource.com/#/c/25342/.

Prior to this change, `git commit -v` would result in a nonsensical
commit message.

Change-Id: Ib11de27488b01fccff07b9385f7fa988bc6fe165
This commit is contained in:
Euan Kemp 2017-03-04 12:38:36 -08:00
parent 1951498e63
commit 23ef425564
1 changed files with 7 additions and 1 deletions

View File

@ -41,6 +41,8 @@ var hookFiles = []string{
"commit-msg",
}
var ignoreBelow = []byte("\n# ------------------------ >8 ------------------------\n")
func (c *hookCmd) installHook() error {
root, err := repoRoot()
if err != nil {
@ -131,8 +133,12 @@ func (c *hookCmd) RunCommand(args []string) error {
return nil
}
// stripComments strips lines that begin with "#".
// stripComments strips lines that begin with "#" and removes the diff section
// contained in verbose commits.
func stripComments(in []byte) []byte {
if i := bytes.Index(in, ignoreBelow); i >= 0 {
in = in[:i+1]
}
return regexp.MustCompile(`(?m)^#.*\n`).ReplaceAll(in, nil)
}