aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/git/git.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/git/git.go')
-rw-r--r--pkg/git/git.go29
1 files changed, 25 insertions, 4 deletions
diff --git a/pkg/git/git.go b/pkg/git/git.go
index a239453f8..e3dc8a142 100644
--- a/pkg/git/git.go
+++ b/pkg/git/git.go
@@ -81,16 +81,37 @@ func HeadCommit(dir string) (string, error) {
return string(output), nil
}
-// ListRecentCommits returns list of commit titles for the last year starting from baseCommit.
+// ListRecentCommits returns list of recent commit titles starting from baseCommit.
func ListRecentCommits(dir, baseCommit string) ([]string, error) {
- since := time.Now().Add(-time.Hour * 24 * 365).Format("01-02-2006")
- // On upstream kernel this produces 3.5MB of output.
+ // On upstream kernel this produces ~11MB of output.
// Somewhat inefficient to collect whole output in a slice
// and then convert to string, but should be bearable.
output, err := osutil.RunCmd(timeout, dir, "git", "log",
- "--pretty=format:%s", "--no-merges", "--since", since, baseCommit)
+ "--pretty=format:%s", "--no-merges", "-n", "200000", baseCommit)
if err != nil {
return nil, err
}
return strings.Split(string(output), "\n"), nil
}
+
+// CanonicalizeCommit returns commit title that can be used when checking
+// if a particular commit is present in a git tree.
+// Some trees add prefixes to commit titles during backporting,
+// so we want e.g. commit "foo bar" match "BACKPORT: foo bar".
+func CanonicalizeCommit(title string) string {
+ for _, prefix := range commitPrefixes {
+ if strings.HasPrefix(title, prefix) {
+ title = title[len(prefix):]
+ break
+ }
+ }
+ return strings.TrimSpace(title)
+}
+
+var commitPrefixes = []string{
+ "UPSTREAM:",
+ "CHROMIUM:",
+ "FROMLIST:",
+ "BACKPORT:",
+ "net-backports:",
+}