From 11452e8a57629c32a6641b3c755111a4a8437281 Mon Sep 17 00:00:00 2001 From: Cody Rose Date: Thu, 25 Apr 2024 10:56:48 -0400 Subject: [PATCH] Revert "feat(git): scan commit metadata (#2713)" (#2747) This reverts commit 81a9c813a17490aedbead3323493d687af14eea9. --- pkg/gitparse/gitparse.go | 137 ++------- pkg/gitparse/gitparse_test.go | 512 +++++++++++----------------------- pkg/sources/git/git.go | 38 +-- 3 files changed, 186 insertions(+), 501 deletions(-) diff --git a/pkg/gitparse/gitparse.go b/pkg/gitparse/gitparse.go index 241fe0d9fa20..d52cb9b55e5b 100644 --- a/pkg/gitparse/gitparse.go +++ b/pkg/gitparse/gitparse.go @@ -22,7 +22,7 @@ import ( const ( // defaultDateFormat is the standard date format for git. - defaultDateFormat = "Mon Jan 2 15:04:05 2006 -0700" + defaultDateFormat = "Mon Jan 02 15:04:05 2006 -0700" // defaultMaxDiffSize is the maximum size for a diff. Larger diffs will be cut off. defaultMaxDiffSize = 2 * 1024 * 1024 * 1024 // 2GB @@ -106,12 +106,11 @@ func (d *Diff) finalize() error { // Commit contains commit header info and diffs. type Commit struct { - Hash string - Author string - Committer string - Date time.Time - Message strings.Builder - Size int // in bytes + Hash string + Author string + Date time.Time + Message strings.Builder + Size int // in bytes hasDiffs bool } @@ -132,15 +131,10 @@ const ( CommitLine MergeLine AuthorLine - AuthorDateLine - CommitterLine - CommitterDateLine + DateLine MessageStartLine MessageLine MessageEndLine - NotesStartLine - NotesLine - NotesEndLine DiffLine ModeLine IndexLine @@ -158,15 +152,10 @@ func (state ParseState) String() string { "CommitLine", "MergeLine", "AuthorLine", - "AuthorDateLine", - "CommitterLine", - "CommitterDateLine", + "DateLine", "MessageStartLine", "MessageLine", "MessageEndLine", - "NotesStartLine", - "NotesLine", - "NotesEndLine", "DiffLine", "ModeLine", "IndexLine", @@ -220,15 +209,7 @@ func NewParser(options ...Option) *Parser { // RepoPath parses the output of the `git log` command for the `source` path. // The Diff chan will return diffs in the order they are parsed from the log. func (c *Parser) RepoPath(ctx context.Context, source string, head string, abbreviatedLog bool, excludedGlobs []string, isBare bool) (chan *Diff, error) { - args := []string{ - "-C", source, - "log", - "--patch", // https://git-scm.com/docs/git-log#Documentation/git-log.txt---patch - "--full-history", - "--date=format:%a %b %d %H:%M:%S %Y %z", - "--pretty=fuller", // https://git-scm.com/docs/git-log#_pretty_formats - "--notes", // https://git-scm.com/docs/git-log#Documentation/git-log.txt---notesltrefgt - } + args := []string{"-C", source, "log", "-p", "--full-history", "--date=format:%a %b %d %H:%M:%S %Y %z"} if abbreviatedLog { args = append(args, "--diff-filter=AM") } @@ -392,23 +373,16 @@ func (c *Parser) FromReader(ctx context.Context, stdOut io.Reader, diffChan chan latestState = MergeLine case isAuthorLine(isStaged, latestState, line): latestState = AuthorLine - currentCommit.Author = strings.TrimSpace(string(line[8:])) - case isAuthorDateLine(isStaged, latestState, line): - latestState = AuthorDateLine + currentCommit.Author = strings.TrimRight(string(line[8:]), "\n") + + case isDateLine(isStaged, latestState, line): + latestState = DateLine - date, err := time.Parse(c.dateFormat, strings.TrimSpace(string(line[12:]))) + date, err := time.Parse(c.dateFormat, strings.TrimSpace(string(line[6:]))) if err != nil { - ctx.Logger().Error(err, "failed to parse commit date", "commit", currentCommit.Hash, "latestState", latestState.String()) - latestState = ParseFailure - continue + ctx.Logger().V(2).Info("Could not parse date from git stream.", "error", err) } currentCommit.Date = date - case isCommitterLine(isStaged, latestState, line): - latestState = CommitterLine - currentCommit.Committer = strings.TrimSpace(string(line[8:])) - case isCommitterDateLine(isStaged, latestState, line): - latestState = CommitterDateLine - // NoOp case isMessageStartLine(isStaged, latestState, line): latestState = MessageStartLine // NoOp @@ -419,17 +393,6 @@ func (c *Parser) FromReader(ctx context.Context, stdOut io.Reader, diffChan chan case isMessageEndLine(isStaged, latestState, line): latestState = MessageEndLine // NoOp - case isNotesStartLine(isStaged, latestState, line): - latestState = NotesStartLine - - currentCommit.Message.WriteString("\n") - currentCommit.Message.Write(line) - case isNotesLine(isStaged, latestState, line): - latestState = NotesLine - currentCommit.Message.Write(line[4:]) // Notes are indented by 4 spaces. - case isNotesEndLine(isStaged, latestState, line): - latestState = NotesEndLine - // NoOp case isDiffLine(isStaged, latestState, line): latestState = DiffLine @@ -614,42 +577,20 @@ func isAuthorLine(isStaged bool, latestState ParseState, line []byte) bool { return false } -// AuthorDate: Tue Aug 10 15:20:40 2021 +0100 -func isAuthorDateLine(isStaged bool, latestState ParseState, line []byte) bool { +// Date: Tue Aug 10 15:20:40 2021 +0100 +func isDateLine(isStaged bool, latestState ParseState, line []byte) bool { if isStaged || latestState != AuthorLine { return false } - if len(line) > 10 && bytes.Equal(line[:11], []byte("AuthorDate:")) { - return true - } - return false -} - -// Commit: Bill Rich -func isCommitterLine(isStaged bool, latestState ParseState, line []byte) bool { - if isStaged || latestState != AuthorDateLine { - return false - } - if len(line) > 8 && bytes.Equal(line[:7], []byte("Commit:")) { + if len(line) > 7 && bytes.Equal(line[:5], []byte("Date:")) { return true } return false } -// CommitDate: Wed Apr 17 19:59:28 2024 -0400 -func isCommitterDateLine(isStaged bool, latestState ParseState, line []byte) bool { - if isStaged || latestState != CommitterLine { - return false - } - if len(line) > 10 && bytes.Equal(line[:11], []byte("CommitDate:")) { - return true - } - return false -} - -// Line directly after CommitterDate with only a newline. +// Line directly after Date with only a newline. func isMessageStartLine(isStaged bool, latestState ParseState, line []byte) bool { - if isStaged || latestState != CommitterDateLine { + if isStaged || latestState != DateLine { return false } // TODO: Improve the implementation of this and isMessageEndLine @@ -681,51 +622,15 @@ func isMessageEndLine(isStaged bool, latestState ParseState, line []byte) bool { return false } -// `Notes:` or `Notes (context):` -// See https://tylercipriani.com/blog/2022/11/19/git-notes-gits-coolest-most-unloved-feature/ -func isNotesStartLine(isStaged bool, latestState ParseState, line []byte) bool { - if isStaged || latestState != MessageEndLine { - return false - } - if len(line) > 5 && bytes.Equal(line[:5], []byte("Notes")) { - return true - } - return false -} - -// Line after NotesStartLine that starts with 4 spaces -func isNotesLine(isStaged bool, latestState ParseState, line []byte) bool { - if isStaged || !(latestState == NotesStartLine || latestState == NotesLine) { - return false - } - if len(line) > 4 && bytes.Equal(line[:4], []byte(" ")) { - return true - } - return false -} - -// Line directly after NotesLine with only a newline. -func isNotesEndLine(isStaged bool, latestState ParseState, line []byte) bool { - if isStaged || latestState != NotesLine { - return false - } - if len(strings.TrimRight(string(line[:]), "\r\n")) == 0 { - return true - } - return false -} - // diff --git a/internal/addrs/move_endpoint_module.go b/internal/addrs/move_endpoint_module.go func isDiffLine(isStaged bool, latestState ParseState, line []byte) bool { if !(latestState == MessageStartLine || // Empty commit messages can go from MessageStart->Diff latestState == MessageEndLine || - latestState == NotesEndLine || latestState == BinaryFileLine || - latestState == ModeLine || latestState == IndexLine || latestState == HunkContentLine || latestState == ParseFailure) { - if !(isStaged && latestState == Initial) { + if latestState == Initial && !isStaged { return false } } diff --git a/pkg/gitparse/gitparse_test.go b/pkg/gitparse/gitparse_test.go index 0e61cbfe14a4..99aba71bee85 100644 --- a/pkg/gitparse/gitparse_test.go +++ b/pkg/gitparse/gitparse_test.go @@ -78,7 +78,7 @@ func TestLineChecksWithStaged(t *testing.T) { }, fails: []testCaseLine{ { - CommitterDateLine, + DateLine, []byte(" Merge pull request #34511 from cescoffier/duplicated-context-doc"), }, { @@ -111,16 +111,16 @@ func TestLineChecksWithStaged(t *testing.T) { }, function: isAuthorLine, }, - "authorDateLine": { + "dateLine": { passes: []testCaseLine{ { AuthorLine, - []byte("AuthorDate: Tue Jan 18 16:59:18 2022 -0800"), + []byte("Date: Tue Jan 18 16:59:18 2022 -0800"), }, }, fails: []testCaseLine{ { - AuthorDateLine, + DateLine, []byte(""), }, { @@ -128,54 +128,12 @@ func TestLineChecksWithStaged(t *testing.T) { []byte("notcorrect"), }, }, - function: isAuthorDateLine, - }, - "committerLine": { - passes: []testCaseLine{ - { - AuthorDateLine, - []byte("Commit: Zachary Rice "), - }, - { - AuthorDateLine, - []byte("Commit: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>"), - }, - }, - fails: []testCaseLine{ - { - CommitLine, - []byte("Date: Tue Jun 20 13:55:31 2023 -0500"), - }, - { - AuthorLine, - []byte("Author: Bill Rich "), - }, - }, - function: isCommitterLine, - }, - "committerDateLine": { - passes: []testCaseLine{ - { - CommitterLine, - []byte("CommitDate: Tue Jan 18 16:59:18 2022 -0800"), - }, - }, - fails: []testCaseLine{ - { - CommitterDateLine, - []byte(""), - }, - { - CommitterLine, - []byte("notcorrect"), - }, - }, - function: isCommitterDateLine, + function: isDateLine, }, "messageStartLine": { passes: []testCaseLine{ { - CommitterDateLine, + DateLine, []byte(""), }, }, @@ -185,7 +143,7 @@ func TestLineChecksWithStaged(t *testing.T) { []byte("Date: Tue Jun 20 13:21:19 2023 -0700"), }, { - CommitterDateLine, + DateLine, []byte("notcorrect"), }, }, @@ -208,7 +166,7 @@ func TestLineChecksWithStaged(t *testing.T) { []byte("Date: Tue Jun 20 13:21:19 2023 -0700"), }, { - CommitterDateLine, + DateLine, []byte("notcorrect"), }, }, @@ -233,67 +191,6 @@ func TestLineChecksWithStaged(t *testing.T) { }, function: isMessageEndLine, }, - "notesStartLine": { - passes: []testCaseLine{ - { - MessageEndLine, - []byte("Notes:"), - }, - { - MessageEndLine, - []byte("Notes (review):"), - }, - }, - fails: []testCaseLine{ - { - MessageStartLine, - []byte(""), - }, - { - MessageEndLine, - []byte("notcorrect"), - }, - }, - function: isNotesStartLine, - }, - "notesLine": { - passes: []testCaseLine{ - { - NotesStartLine, - []byte(" Submitted-by: Random J Developer "), - }, - }, - fails: []testCaseLine{ - { - MessageEndLine, - []byte(""), - }, - { - MessageEndLine, - []byte("notcorrect"), - }, - }, - function: isNotesLine, - }, - "notesEndLine": { - passes: []testCaseLine{ - { - NotesLine, - []byte("\n"), - }, - }, - fails: []testCaseLine{ - { - MessageEndLine, - []byte("\n"), - }, - { - NotesLine, - []byte("notcorrect"), - }, - }, - function: isNotesEndLine, - }, "diffLine": { passes: []testCaseLine{ { @@ -304,10 +201,6 @@ func TestLineChecksWithStaged(t *testing.T) { MessageEndLine, []byte("diff --git a/ Lunch and Learn - HCDiag.pdf b/ Lunch and Learn - HCDiag.pdf"), }, - { - NotesEndLine, - []byte("diff --git \"a/one.txt\" \"b/one.txt\""), - }, { BinaryFileLine, []byte("diff --git a/pkg/decoders/utf16_test.go b/pkg/decoders/utf16_test.go"), @@ -316,24 +209,16 @@ func TestLineChecksWithStaged(t *testing.T) { HunkContentLine, []byte("diff --git a/pkg/decoders/utf8.go b/pkg/decoders/utf8.go"), }, - { - ModeLine, - []byte("diff --git a/pkg/decoders/utf8.go b/pkg/decoders/utf8.go"), - }, }, fails: []testCaseLine{ { - CommitterDateLine, + DateLine, []byte(" Make trace error message so newlines aren't escaped (#1396)"), }, { MessageLine, []byte("notcorrect"), }, - { - NotesLine, - []byte("diff --git a/pkg/decoders/utf8.go b/pkg/decoders/utf8.go"), - }, }, function: isDiffLine, }, @@ -1043,33 +928,30 @@ func TestCommitParseFailureRecovery(t *testing.T) { PathB: ".travis.yml", LineStart: 1, Commit: &Commit{ - Hash: "df393b4125c2aa217211b2429b8963d0cefcee27", - Author: "Stephen ", - Committer: "Stephen ", - Date: newTime("Wed Dec 06 14:44:41 2017 -0800"), - Message: newStringBuilderValue("Add travis testing\n"), + Hash: "df393b4125c2aa217211b2429b8963d0cefcee27", + Author: "Stephen ", + Date: newTime("Wed Dec 06 14:44:41 2017 -0800"), + Message: newStringBuilderValue("Add travis testing\n"), }, contentWriter: newBufferWithContent([]byte("language: python\npython:\n - \"2.6\"\n - \"2.7\"\n - \"3.2\"\n - \"3.3\"\n - \"3.4\"\n - \"3.5\"\n - \"3.5-dev\" # 3.5 development branch\n - \"3.6\"\n - \"3.6-dev\" # 3.6 development branch\n - \"3.7-dev\" # 3.7 development branch\n - \"nightly\"\n")), IsBinary: false, }, { Commit: &Commit{ - Hash: "3d76a97faad96e0f326afb61c232b9c2a18dca35", - Author: "John Smith ", - Committer: "John Smith ", - Date: newTime("Tue Jul 11 18:03:54 2023 -0400"), - Message: strings.Builder{}, + Hash: "3d76a97faad96e0f326afb61c232b9c2a18dca35", + Author: "John Smith ", + Date: newTime("Tue Jul 11 18:03:54 2023 -0400"), + Message: strings.Builder{}, }, }, { PathB: "tzu", LineStart: 11, Commit: &Commit{ - Hash: "7bd16429f1f708746dabf970e54b05d2b4734997", - Author: "John Smith ", - Committer: "John Smith ", - Date: newTime("Tue Jul 11 18:10:49 2023 -0400"), - Message: newStringBuilderValue("Change file\n"), + Hash: "7bd16429f1f708746dabf970e54b05d2b4734997", + Author: "John Smith ", + Date: newTime("Tue Jul 11 18:10:49 2023 -0400"), + Message: newStringBuilderValue("Change file\n"), }, contentWriter: newBufferWithContent([]byte("\n\n\n\nSource: https://www.gnu.org/software/diffutils/manual/diffutils.html#An-Example-of-Unified-Format\n")), IsBinary: false, @@ -1097,33 +979,30 @@ func TestCommitParseFailureRecoveryBufferedFileWriter(t *testing.T) { PathB: ".travis.yml", LineStart: 1, Commit: &Commit{ - Hash: "df393b4125c2aa217211b2429b8963d0cefcee27", - Author: "Stephen ", - Committer: "Stephen ", - Date: newTime("Wed Dec 06 14:44:41 2017 -0800"), - Message: newStringBuilderValue("Add travis testing\n"), + Hash: "df393b4125c2aa217211b2429b8963d0cefcee27", + Author: "Stephen ", + Date: newTime("Wed Dec 06 14:44:41 2017 -0800"), + Message: newStringBuilderValue("Add travis testing\n"), }, contentWriter: newBufferedFileWriterWithContent([]byte("language: python\npython:\n - \"2.6\"\n - \"2.7\"\n - \"3.2\"\n - \"3.3\"\n - \"3.4\"\n - \"3.5\"\n - \"3.5-dev\" # 3.5 development branch\n - \"3.6\"\n - \"3.6-dev\" # 3.6 development branch\n - \"3.7-dev\" # 3.7 development branch\n - \"nightly\"\n")), IsBinary: false, }, { Commit: &Commit{ - Hash: "3d76a97faad96e0f326afb61c232b9c2a18dca35", - Author: "John Smith ", - Committer: "John Smith ", - Date: newTime("Tue Jul 11 18:03:54 2023 -0400"), - Message: strings.Builder{}, + Hash: "3d76a97faad96e0f326afb61c232b9c2a18dca35", + Author: "John Smith ", + Date: newTime("Tue Jul 11 18:03:54 2023 -0400"), + Message: strings.Builder{}, }, }, { PathB: "tzu", LineStart: 11, Commit: &Commit{ - Hash: "7bd16429f1f708746dabf970e54b05d2b4734997", - Author: "John Smith ", - Committer: "John Smith ", - Date: newTime("Tue Jul 11 18:10:49 2023 -0400"), - Message: newStringBuilderValue("Change file\n"), + Hash: "7bd16429f1f708746dabf970e54b05d2b4734997", + Author: "John Smith ", + Date: newTime("Tue Jul 11 18:10:49 2023 -0400"), + Message: newStringBuilderValue("Change file\n"), }, contentWriter: newBufferedFileWriterWithContent([]byte("\n\n\n\nSource: https://www.gnu.org/software/diffutils/manual/diffutils.html#An-Example-of-Unified-Format\n")), IsBinary: false, @@ -1152,9 +1031,7 @@ func TestCommitParseFailureRecoveryBufferedFileWriter(t *testing.T) { const recoverableCommits = `commit df393b4125c2aa217211b2429b8963d0cefcee27 Author: Stephen -AuthorDate: Wed Dec 06 14:44:41 2017 -0800 -Commit: Stephen -CommitDate: Wed Dec 06 14:44:41 2017 -0800 +Date: Wed Dec 06 14:44:41 2017 -0800 Add travis testing @@ -1194,9 +1071,7 @@ index 00000000..e69de29b commit 3d76a97faad96e0f326afb61c232b9c2a18dca35 (HEAD -> master) Author: John Smith -AuthorDate: Tue Jul 11 18:03:54 2023 -0400 -Commit: John Smith -CommitDate: Tue Jul 11 18:03:54 2023 -0400 +Date: Tue Jul 11 18:03:54 2023 -0400 diff --git a/sample.txt b/sample.txt new file mode 100644 @@ -1208,9 +1083,7 @@ index 0000000..af5626b commit 7bd16429f1f708746dabf970e54b05d2b4734997 (HEAD -> master) Author: John Smith -AuthorDate: Tue Jul 11 18:10:49 2023 -0400 -Commit: John Smith -CommitDate: Tue Jul 11 18:10:49 2023 -0400 +Date: Tue Jul 11 18:10:49 2023 -0400 Change file @@ -1484,9 +1357,7 @@ func TestMaxCommitSize(t *testing.T) { const commitLog = `commit e50b135fd29e91b2fbb25923797f5ecffe59f359 Author: lionzxy -AuthorDate: Wed Mar 1 18:20:04 2017 +0300 -Commit: lionzxy -CommitDate: Wed Mar 1 18:20:04 2017 +0300 +Date: Wed Mar 1 18:20:04 2017 +0300 Все работает, но он не принимает :( @@ -1508,15 +1379,10 @@ index 85bfb17..89b08b5 100644 commit fd6e99e7a80199b76a694603be57c5ade1de18e7 Author: Jaliborc -AuthorDate: Mon Apr 25 16:28:06 2011 +0100 -Commit: Jaliborc -CommitDate: Mon Apr 25 16:28:06 2011 +0100 +Date: Mon Apr 25 16:28:06 2011 +0100 Added Unusable coloring -Notes: - Message-Id: <1264640755-22447-1-git-send-email-user@example.de> - diff --git a/components/item.lua b/components/item.lua index fc74534..f8d7d50 100755 --- a/components/item.lua @@ -1551,23 +1417,17 @@ new file mode 160000 commit 4727ffb7ad6dc5130bf4b4dd166e00705abdd018 (HEAD -> master) Author: John Smith -AuthorDate: Tue Jul 11 22:26:11 2023 -0400 -Commit: John Smith -CommitDate: Tue Jul 11 22:26:11 2023 -0400 +Date: Tue Jul 11 22:26:11 2023 -0400 commit c904e0f5cd9f30ae520c66bd5f70806219fe7ca2 (HEAD -> master) Author: John Smith -AuthorDate: Mon Jul 10 10:17:11 2023 -0400 -Commit: John Smith -CommitDate: Mon Jul 10 10:17:11 2023 -0400 +Date: Mon Jul 10 10:17:11 2023 -0400 Empty Commit commit 3d76a97faad96e0f326afb61c232b9c2a18dca35 (HEAD -> master) Author: John Smith -AuthorDate: Tue Jul 11 18:03:54 2023 -0400 -Commit: John Smith -CommitDate: Tue Jul 11 18:03:54 2023 -0400 +Date: Tue Jul 11 18:03:54 2023 -0400 diff --git a/sample.txt b/sample.txt new file mode 100644 @@ -1579,9 +1439,7 @@ index 0000000..af5626b commit df393b4125c2aa217211b2429b8963d0cefcee27 Author: Stephen -AuthorDate: Wed Dec 06 14:44:41 2017 -0800 -Commit: Stephen -CommitDate: Wed Dec 06 14:44:41 2017 -0800 +Date: Wed Dec 06 14:44:41 2017 -0800 Add travis testing @@ -1621,9 +1479,7 @@ index 00000000..e69de29b commit 4218c39d99b5f30153f62471c1be1c1596f0a4d4 Author: Dustin Decker -AuthorDate: Thu Jan 13 12:02:24 2022 -0800 -Commit: Dustin Decker -CommitDate: Thu Jan 13 12:02:24 2022 -0800 +Date: Thu Jan 13 12:02:24 2022 -0800 Initial CLI w/ partially implemented Git source and demo detector (#1) @@ -1679,9 +1535,7 @@ index 00000000..7fb2f73c commit 934cf5d255fd8e28b33f5a6ba64276caf0b284bf (HEAD -> master) Author: John Smith -AuthorDate: Tue Jul 11 18:43:22 2023 -0400 -Commit: John Smith -CommitDate: Tue Jul 11 18:43:22 2023 -0400 +Date: Tue Jul 11 18:43:22 2023 -0400 Test toFile/plusLine parsing @@ -1697,9 +1551,7 @@ index 0000000..451be67 commit 2a5d703b02b52d65c65ee9f7928f158b919ab741 Author: Sergey Beryozkin -AuthorDate: Fri Jul 7 17:44:26 2023 +0100 -Commit: Sergey Beryozkin -CommitDate: Fri Jul 7 17:44:26 2023 +0100 +Date: Fri Jul 7 17:44:26 2023 +0100 Do not refresh OIDC session if the user is requesting logout @@ -1807,9 +1659,7 @@ index 51e1b9a932d..472c2743bc4 100644 commit 2a057632d7f5fa3d1c77b9aa037263211c0e0290 Author: rjtmahinay -AuthorDate: Mon Jul 10 01:22:32 2023 +0800 -Commit: rjtmahinay -CommitDate: Mon Jul 10 01:22:32 2023 +0800 +Date: Mon Jul 10 01:22:32 2023 +0800 Add QuarkusApplication javadoc @@ -1827,9 +1677,7 @@ index 350685123d5..87d2220eb98 100644 commit bca2d17491015ea1522f34517223b5a366aea73c (HEAD -> master) Author: John Smith -AuthorDate: Tue Jul 11 18:12:21 2023 -0400 -Commit: John Smith -CommitDate: Tue Jul 11 18:12:21 2023 -0400 +Date: Tue Jul 11 18:12:21 2023 -0400 Delete binary file @@ -1840,9 +1688,7 @@ Binary files a/trufflehog_3.42.0_linux_arm64.tar.gz and /dev/null differ commit afc6dc5d47f28366638da877ecb6b819c69e659b Author: John Smith -AuthorDate: Mon Jul 10 12:21:33 2023 -0400 -Commit: John Smith -CommitDate: Mon Jul 10 12:21:33 2023 -0400 +Date: Mon Jul 10 12:21:33 2023 -0400 Change binary file @@ -1852,9 +1698,7 @@ Binary files a/trufflehog_3.42.0_linux_arm64.tar.gz and b/trufflehog_3.42.0_linu commit 638595917417c5c8a956937b28c5127719023363 Author: John Smith -AuthorDate: Mon Jul 10 12:20:35 2023 -0400 -Commit: John Smith -CommitDate: Mon Jul 10 12:20:35 2023 -0400 +Date: Mon Jul 10 12:20:35 2023 -0400 Add binary file @@ -1865,9 +1709,7 @@ Binary files /dev/null and b/trufflehog_3.42.0_linux_arm64.tar.gz differ commit ce0f5d1fe0272f180ccb660196f439c0c2f4ec8e (HEAD -> master) Author: John Smith -AuthorDate: Tue Jul 11 18:08:52 2023 -0400 -Commit: John Smith -CommitDate: Tue Jul 11 18:08:52 2023 -0400 +Date: Tue Jul 11 18:08:52 2023 -0400 Delete file @@ -1891,9 +1733,7 @@ index 635ef2c..0000000 commit d606a729383371558473b70a6a7b1ca264b0d205 Author: John Smith -AuthorDate: Mon Jul 10 14:17:04 2023 -0400 -Commit: John Smith -CommitDate: Mon Jul 10 14:17:04 2023 -0400 +Date: Mon Jul 10 14:17:04 2023 -0400 Rename file @@ -1904,9 +1744,7 @@ rename to tzu.txt commit 7bd16429f1f708746dabf970e54b05d2b4734997 (HEAD -> master) Author: John Smith -AuthorDate: Tue Jul 11 18:10:49 2023 -0400 -Commit: John Smith -CommitDate: Tue Jul 11 18:10:49 2023 -0400 +Date: Tue Jul 11 18:10:49 2023 -0400 Change file @@ -1923,9 +1761,7 @@ index 5af88a8..c729cdb 100644 commit c7062674c17192caa284615ab2fa9778c6602164 (HEAD -> master) Author: John Smith -AuthorDate: Mon Jul 10 10:15:18 2023 -0400 -Commit: John Smith -CommitDate: Mon Jul 10 10:15:18 2023 -0400 +Date: Mon Jul 10 10:15:18 2023 -0400 Create files @@ -1985,11 +1821,10 @@ func expectedDiffs() []*Diff { PathB: "C++/1 \320\243\321\200\320\276\320\272/.idea/workspace.xml", LineStart: 29, Commit: &Commit{ - Hash: "e50b135fd29e91b2fbb25923797f5ecffe59f359", - Author: "lionzxy ", - Committer: "lionzxy ", - Date: newTime("Wed Mar 1 18:20:04 2017 +0300"), - Message: newStringBuilderValue("Все работает, но он не принимает :(\n"), + Hash: "e50b135fd29e91b2fbb25923797f5ecffe59f359", + Author: "lionzxy ", + Date: newTime("Wed Mar 1 18:20:04 2017 +0300"), + Message: newStringBuilderValue("Все работает, но он не принимает :(\n"), }, contentWriter: newBufferWithContent([]byte("\n\n\n \n \n\n\n\n")), IsBinary: false, @@ -1998,11 +1833,10 @@ func expectedDiffs() []*Diff { PathB: "components/item.lua", LineStart: 9, Commit: &Commit{ - Hash: "fd6e99e7a80199b76a694603be57c5ade1de18e7", - Author: "Jaliborc ", - Committer: "Jaliborc ", - Date: newTime("Mon Apr 25 16:28:06 2011 +0100"), - Message: newStringBuilderValue("Added Unusable coloring\n\nNotes:\nMessage-Id: <1264640755-22447-1-git-send-email-user@example.de>\n"), + Hash: "fd6e99e7a80199b76a694603be57c5ade1de18e7", + Author: "Jaliborc ", + Date: newTime("Mon Apr 25 16:28:06 2011 +0100"), + Message: newStringBuilderValue("Added Unusable coloring\n"), }, contentWriter: newBufferWithContent([]byte("\n\nlocal Unfit = LibStub('Unfit-1.0')\n\n\n")), IsBinary: false, @@ -2012,11 +1846,10 @@ func expectedDiffs() []*Diff { LineStart: 6, contentWriter: newBufferWithContent([]byte("\n\n