From e36a2768ab1ac80be74cf823dfeed5e419007bcb Mon Sep 17 00:00:00 2001 From: Phodal Huang Date: Fri, 20 Dec 2019 23:28:06 +0800 Subject: [PATCH] fix: fix author issues --- core/domain/gitt/gitt.go | 13 ++++++++----- test/gitt_test.go | 34 ++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/core/domain/gitt/gitt.go b/core/domain/gitt/gitt.go index a043586..6b410ce 100644 --- a/core/domain/gitt/gitt.go +++ b/core/domain/gitt/gitt.go @@ -26,7 +26,12 @@ func BuildCommitMessage() []CommitMessage { log.Fatalf("cmd.Run() failed with %s\n", err) } - splitStr := strings.Split(string(out), "\n"); + return BuildMessageByInput(string(out)) +} + +func BuildMessageByInput(inputStr string) []CommitMessage { + commitMessages = nil + splitStr := strings.Split(inputStr, "\n") for _, str := range splitStr { ParseLog(str) } @@ -199,7 +204,7 @@ func BasicSummary(commitMessages []CommitMessage) *GitSummary { return gitSummary } -func ParseLog(text string) CommitMessage { +func ParseLog(text string) { // TODO 支持多行提交 rev := `\[([\d|a-f]{5,12})\]` author := `(.*?)\s\d{4}-\d{2}-\d{2}` @@ -223,7 +228,7 @@ func ParseLog(text string) CommitMessage { msg := strings.Split(str, dat[0])[1] msg = msg[1:] - currentCommitMessage = *&CommitMessage{id[1], auth[1], dat[0], msg, nil} + currentCommitMessage = *&CommitMessage{id[1], auth[1][1:], dat[0], msg, nil} } else if changesReg.MatchString(text) { changes := changesReg.FindStringSubmatch(text) deleted, _ := strconv.Atoi(changes[2]) @@ -240,6 +245,4 @@ func ParseLog(text string) CommitMessage { currentFileChanges = nil } } - - return currentCommitMessage } diff --git a/test/gitt_test.go b/test/gitt_test.go index 0268768..5f57c2a 100644 --- a/test/gitt_test.go +++ b/test/gitt_test.go @@ -1,6 +1,5 @@ package test_test - import ( "coca/core/domain/gitt" . "github.com/onsi/ginkgo" @@ -9,15 +8,42 @@ import ( var _ = Describe("Git Parser", func() { Context("Test for Range", func() { - It("should be a novel", func() { - result := gitt.ParseLog(` + It("support for long commits", func() { + result := gitt.BuildMessageByInput(` [828fe39523] Rossen Stoyanchev 2019-12-04 Consistently use releaseBody in DefaultWebClient 5 3 spring-webflux/core/main/java/org/springframework/web/reactive/function/client/ClientResponse.java 1 1 spring-webflux/core/main/java/org/springframework/web/reactive/function/client/DefaultWebClient.java 9 3 spring-webflux/core/main/java/org/springframework/web/reactive/function/client/WebClient.java 6 11 core/docs/asciidoc/web/webflux-webclient.adoc `) - Expect(result.Date).To(Equal("2019-12-04")) + Expect(result[0].Rev).To(Equal("828fe39523")) + Expect(result[0].Date).To(Equal("2019-12-04")) + Expect(result[0].Author).To(Equal("Rossen Stoyanchev")) + Expect(result[0].Message).To(Equal("Consistently use releaseBody in DefaultWebClient")) }) }) +// +// Context("Test for Move file", func() { +// It("should have a current file move update", func() { +// result := gitt.BuildMessageByInput(` +//[d00f04b] Phodal Huang 2019-12-18 refactor: move bs to adapter +//1 1 cmd/bs.go +//5 5 core/{domain => adapter}/bs/BadSmellApp.go +//19 19 core/{domain => adapter}/bs/BadSmellListener.go +//0 0 core/{domain => adapter}/bs/models/BsModel.go +//`) +// Expect(result).To(Equal("2019-12-04")) +// }) +// +// It("should update child", func() { +// result := gitt.BuildMessageByInput(` +//[ef9165c] Phodal Huang 2019-12-18 fefactor: extract vars +//13 11 cmd/analysis.go +//10 8 cmd/api.go +//0 0 cmd/{call_graph.go => call.go} +//0 0 cmd/{git_cmd.go => git.go} +//`) +// Expect(result).To(Equal("2019-12-04")) +// }) +// }) }) \ No newline at end of file -- GitLab