From b57144e6bfe8a6b63d2d2f8ffb47af04a926ae8b Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 29 Jan 2025 20:01:07 -0600 Subject: [PATCH] some useful helper functions --- branches.go | 15 +++++++++++++++ currentVersions.go | 24 +++++++++++++----------- goDep.parseGoSum.go | 3 ++- shell.go | 11 +++++++++++ 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/branches.go b/branches.go index ec86c20..1c923dd 100644 --- a/branches.go +++ b/branches.go @@ -123,3 +123,18 @@ func (repo *Repo) GetHashName(h string) (string, error) { } return r.Stdout[0], nil } + +// lookup a hash from a tag with 'git rev-list' +func (repo *Repo) GetTagHash(t string) string { + // git rev-list -n 1 v0.0.66 + cmd := []string{"git", "rev-list", "-n", "1", t} + result, _ := repo.RunStrictNew(cmd) + // log.Info("getLastTagVersion()", result.Stdout) + + if len(result.Stdout) == 0 { + // log.Log(WARN, "no gitpb.LastTag() repo is broken. ignore this.", repo.GetGoPath()) + return "" + } + + return result.Stdout[0] +} diff --git a/currentVersions.go b/currentVersions.go index 7f64335..0f09cdf 100644 --- a/currentVersions.go +++ b/currentVersions.go @@ -294,23 +294,25 @@ func (repo *Repo) IncrementTargetMinor() { } // changes the target revision. v0.1.3 becomes v0.1.4 -func (repo *Repo) IncrementTargetRevision() bool { +func (repo *Repo) IncrementTargetRevision() { // first try just going from the last tag repo.incrementRevision(repo.GetLastTag()) if !isNewerVersion(repo.GetMasterVersion(), repo.GetTargetVersion()) { - log.Printf("master version() %s is higher than target version %s\n", repo.GetMasterVersion(), repo.GetTargetVersion()) + // log.Printf("tag error. master version() %s was higher than target version %s\n", repo.GetMasterVersion(), repo.GetTargetVersion()) repo.incrementRevision(repo.GetMasterVersion()) } - if !isNewerVersion(repo.GetLastTag(), repo.GetTargetVersion()) { - log.Printf("last tag versn() %s is higher than target version %s\n", repo.GetLastTag(), repo.GetTargetVersion()) - return false - } - if !isNewerVersion(repo.GetMasterVersion(), repo.GetTargetVersion()) { - log.Printf("master version() %s is higher than target version %s\n", repo.GetMasterVersion(), repo.GetTargetVersion()) - return false - } - return true + /* + if !isNewerVersion(repo.GetLastTag(), repo.GetTargetVersion()) { + log.Printf("last tag versn() %s is higher than target version %s\n", repo.GetLastTag(), repo.GetTargetVersion()) + return false + } + if !isNewerVersion(repo.GetMasterVersion(), repo.GetTargetVersion()) { + log.Printf("master version() %s is higher than target version %s\n", repo.GetMasterVersion(), repo.GetTargetVersion()) + return false + } + return true + */ } func (repo *Repo) incrementRevision(lasttag string) { diff --git a/goDep.parseGoSum.go b/goDep.parseGoSum.go index cfe1deb..0008e9b 100644 --- a/goDep.parseGoSum.go +++ b/goDep.parseGoSum.go @@ -21,7 +21,8 @@ func (repo *Repo) ParseGoSum() bool { // that means, there is not a go.sum file // because the package is completely self contained! if err := repo.setPrimitive(); err != nil { - // log.Info("gitpb.ParseGoSum()", err) + // temporarily enabled this + log.Info("gitpb.ParseGoSum()", err) return false } if repo.GetGoPrimitive() { diff --git a/shell.go b/shell.go index d14960d..c8131f6 100644 --- a/shell.go +++ b/shell.go @@ -193,3 +193,14 @@ func (repo *Repo) ConstructGitDiffLog(branch1, branch2 string) []string { cmd = append(cmd, branch2) return cmd } + +// count all objects only in branch1 +func (repo *Repo) CountDiffObjects(branch1, branch2 string) int { + cmd := repo.ConstructGitDiffLog(branch1, branch2) + r, err := repo.RunVerboseOnError(cmd) + if err != nil { + return -1 + } + // log.Info("countDiffObjects()", cmd, len(r.Stdout), strings.Join(r.Stdout, " ")) + return len(r.Stdout) +}