summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--branchesBox.go14
-rw-r--r--common.go160
-rw-r--r--git.go336
-rw-r--r--gitConfig.go4
-rw-r--r--merge.go324
-rw-r--r--modifyBox.go19
-rw-r--r--new.go5
-rw-r--r--revert.go4
-rw-r--r--tagWindow.go6
-rw-r--r--update.go32
11 files changed, 70 insertions, 836 deletions
diff --git a/Makefile b/Makefile
index 350c71e..07684a3 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-all:
+all: goimports
GO111MODULE=off go vet
goimports:
diff --git a/branchesBox.go b/branchesBox.go
index a8be26b..7caa7d7 100644
--- a/branchesBox.go
+++ b/branchesBox.go
@@ -57,15 +57,17 @@ func (rs *RepoStatus) makeBranchesBox(parent *gui.Node) {
newgrid.NextRow()
rs.checkBranchesButton = newgrid.NewButton("CheckBranches()", func() {
- if rs.CheckBranches() {
- log.Log(WARN, "Branches are perfect")
- } else {
- log.Log(WARN, "Branches are not perfect")
- }
+ /*
+ if rs.CheckBranches() {
+ log.Log(WARN, "Branches are perfect")
+ } else {
+ log.Log(WARN, "Branches are not perfect")
+ }
+ */
})
newgrid.NextRow()
newgrid.NewButton("Revert master to devel", func() {
- rs.RevertMasterToDevel()
+ // rs.RevertMasterToDevel()
})
}
diff --git a/common.go b/common.go
index 6480e56..08a7625 100644
--- a/common.go
+++ b/common.go
@@ -1,11 +1,6 @@
package repostatus
import (
- "os"
- "strings"
- "unicode"
-
- "go.wit.com/lib/gui/shell"
"go.wit.com/log"
)
@@ -26,30 +21,10 @@ func (rs *RepoStatus) getChanges() string {
}
func (rs *RepoStatus) NoteChange(s string) {
- log.Log(REPOWARN, "NoteChange() got", rs.String(), s)
rs.changed = true
rs.changes += s + "\n"
}
-// deprecate this. returns the gopath right now
-func (rs *RepoStatus) String() string {
- // log.Warn("RepoStatus.String() is to be deprecated")
- return rs.path.String()
-}
-
-// returns the filesystem path to the repo
-func (rs *RepoStatus) Path() string {
- if rs == nil {
- log.Warn("rs == nil")
- return ""
- }
- if rs.realPath == nil {
- log.Warn("rs.realPath == nil")
- return ""
- }
- return rs.realPath.String()
-}
-
func (rs *RepoStatus) Show() {
if !rs.Ready() {
return
@@ -87,138 +62,3 @@ func (rs *RepoStatus) Ready() bool {
}
return rs.ready
}
-
-func (rs *RepoStatus) IsGoLang() bool {
- if !rs.Ready() {
- return false
- }
- if rs.isGoLang.String() == "true" {
- return true
- }
- return false
-}
-
-// experiment to determine the golang package type
-func (rs *RepoStatus) RepoType() string {
- if !rs.IsGoLang() {
- return ""
- }
- if !rs.Exists("go.mod") {
- return ""
- }
- os.Setenv("GO111MODULE", "off")
- cmd := []string{"go", "list", "-f", "'{{if eq .Name \"main\"}}binary{{else}}library{{end}}'"}
- r := shell.PathRunLog(rs.Path(), cmd, INFO)
- output := strings.TrimSpace(strings.Join(r.Stdout, "\n"))
- if r.Error != nil {
- log.Info("go package error:", r.Error)
- }
- return output
-}
-
-func (rs *RepoStatus) BinaryName() string {
- // get the package name from the repo name
- path := rs.String()
- parts := strings.Split(path, "/")
- name := parts[len(parts)-1]
- return name
-}
-
-func (rs *RepoStatus) Build() bool {
- if !rs.IsGoLang() {
- return false
- }
- name := rs.BinaryName()
- // removes the binary if it already exists
- rs.Run([]string{"rm", "-f", name})
- if rs.Exists(name) {
- log.Warn("file could not be removed filename =", name)
- return false
- }
- log.Info("need to build here", rs.String())
- // rs.RunCmd([]string{"go", "build", "-v", "-x"})
- rs.XtermBash([]string{"go", "build", "-v", "-x"})
- if rs.Exists(name) {
- log.Warn("build worked", name)
- return true
- }
- log.Warn("build failed", name)
- return false
-}
-
-func (rs *RepoStatus) GetTargetVersion() string {
- return rs.targetReleaseVersion.String()
-}
-
-func (rs *RepoStatus) GetCurrentVersion() string {
- return rs.currentVersion.String()
-}
-
-func (rs *RepoStatus) LastTag() string {
- return rs.lasttag.String()
-}
-
-func (rs *RepoStatus) IncrementVersion() bool {
- rs.incrementRevision()
- rs.EnableSelectTag()
- rs.setTag()
- newtag := "v" + rs.newversion.String()
- rs.targetReleaseVersion.SetText(newtag)
- return true
-}
-
-// TODO: run this through the sanity check!
-func (rs *RepoStatus) SetTargetVersion(s string) {
- // todo: redo setTag to do increment logic
- // func (rs *RepoStatus) setTag() bool {
- rs.targetReleaseVersion.SetText(s)
-}
-
-func (rs *RepoStatus) IsPrivate() bool {
- if rs.private.String() == "true" {
- return true
- }
- return false
-}
-
-func (rs *RepoStatus) SetPrivate(b bool) {
- if b {
- rs.private.SetText("true")
- } else {
- rs.private.SetText("false")
- }
-}
-
-func trimNonNumericFromStart(s string) string {
- for i, r := range s {
- if unicode.IsDigit(r) {
- return s[i:]
- }
- }
- return ""
-}
-
-func (rs *RepoStatus) DebianReleaseVersion() string {
- lasttag := rs.GetLastTagVersion()
- newv := trimNonNumericFromStart(lasttag)
- if newv == "" {
- newv = "0.0"
- if lasttag != "" {
- newv += "-" + lasttag
- }
- }
- return newv
-}
-
-func (rs *RepoStatus) DebianCurrentVersion() string {
- cbversion := rs.GetCurrentBranchVersion()
-
- newv := trimNonNumericFromStart(cbversion)
- if newv == "" {
- newv = "0.0"
- }
- if rs.CheckDirty() {
- newv += "-dirty"
- }
- return newv
-}
diff --git a/git.go b/git.go
index 42255f0..3b66d9d 100644
--- a/git.go
+++ b/git.go
@@ -2,13 +2,8 @@ package repostatus
import (
"errors"
- "fmt"
- "os/user"
"strings"
"time"
- "unicode/utf8"
-
- "io/ioutil"
"go.wit.com/lib/gui/shell"
"go.wit.com/log"
@@ -44,28 +39,10 @@ func (rs *RepoStatus) Age() time.Duration {
var ErrorMissingGitConfig error = errors.New("missing .git/config")
var ErrorGitPullOnLocal error = errors.New("git pull on local only branch")
-/*
-func (rs *RepoStatus) GitPull() (string, error) {
- currentName := rs.GetCurrentBranchName()
- if rs.IsOnlyLocalTag(currentName) {
- return "", ErrorGitPullOnLocal
- }
- var cmd []string
- cmd = append(cmd, "git", "pull")
- r := rs.Run(cmd)
- output := strings.Join(r.Stdout, "\n")
- if r.Error != nil {
- output = "git error_,,,_a_,,,_b_,,,c"
- }
- if r.Error == nil {
- log.Log(REPOWARN, "git pull ran", rs.Path())
- log.Log(REPOWARN, "git pull output", output)
- } else {
- log.Log(REPOWARN, "git pull error", rs.Path(), r.Error)
- }
- return output, r.Error
+// remove this everything
+func (rs *RepoStatus) Path() string {
+ return rs.realPath.String()
}
-*/
func (rs *RepoStatus) checkoutBranch(level string, branch string) {
if rs.CheckDirty() {
@@ -90,102 +67,6 @@ func (rs *RepoStatus) checkoutBranch(level string, branch string) {
}
}
-func (rs *RepoStatus) guessDevelWorkingName() {
- if rs.TagExists("guidevel") {
- rs.develWorkingName.SetValue("guidevel")
- rs.develBranchVersion.SetLabel("guidevel")
- return
- }
- if rs.TagExists("devel") {
- rs.develWorkingName.SetValue("devel")
- rs.develBranchVersion.SetLabel("devel")
- return
- }
-
- // figure out what to do here
- rs.develWorkingName.SetValue("develFIXME")
- rs.develBranchVersion.SetLabel("develFIXME")
-}
-
-func (rs *RepoStatus) setUserWorkingName() {
- usr, _ := user.Current()
- uname := usr.Username
- if rs.TagExists(uname) {
- rs.userWorkingName.SetValue(uname)
- rs.userBranchVersion.SetLabel(uname)
- return
- }
- rs.userWorkingName.SetValue("need to create " + uname)
- rs.userBranchVersion.SetLabel("need to create " + uname)
-}
-
-// returns "master", "devel", os.Username, etc
-func (rs *RepoStatus) GetMasterBranchName() string {
- name := rs.mainWorkingName.String()
- return name
-}
-func (rs *RepoStatus) GetDevelBranchName() string {
- name := rs.develWorkingName.String()
- return name
-}
-
-func (rs *RepoStatus) GetUserBranchName() string {
- name := rs.userWorkingName.String()
- return name
-}
-
-// returns the git versions like "1.3-2-laksdjf" or whatever
-func (rs *RepoStatus) GetMasterVersion() string {
- name := rs.mainBranchVersion.String()
- return name
-}
-func (rs *RepoStatus) GetDevelVersion() string {
- name := rs.develBranchVersion.String()
- return name
-}
-func (rs *RepoStatus) GetUserVersion() string {
- name := rs.userBranchVersion.String()
- return name
-}
-
-func (rs *RepoStatus) setMasterVersion(s string) {
- old := rs.GetMasterVersion()
- if old == s {
- return
- }
- rs.mainBranchVersion.SetValue(s)
- if old == "" {
- return // don't note if there was nothing before
- }
- rs.NoteChange("master branch has been changed from " + old + " to " + s)
-}
-
-func (rs *RepoStatus) setDevelVersion(s string) {
- old := rs.GetDevelVersion()
- if old == s {
- return
- }
- if old == "" {
- // don't note nothing
- } else {
- rs.NoteChange("devel branch has been changed from " + old + " to " + s)
- }
- rs.develBranchVersion.SetValue(s)
-}
-
-func (rs *RepoStatus) setUserVersion(s string) {
- old := rs.GetUserVersion()
- if old == s {
- return
- }
- if old == "" {
- // don't note nothing
- } else {
- rs.NoteChange("user branch has been changed from " + old + " to " + s)
- }
- rs.userBranchVersion.SetValue(s)
-}
-
func (rs *RepoStatus) GitState() string {
return rs.gitState.String()
}
@@ -200,105 +81,48 @@ func (rs *RepoStatus) GetStatus() string {
}
func (rs *RepoStatus) setState() {
+ pb := rs.pb
rs.changed = false
- if rs.CheckDirty() {
+ if pb.CheckDirty() {
log.Log(REPO, "CheckDirty() true")
rs.gitState.SetText("dirty")
return
}
- if rs.GetUserVersion() != rs.GetDevelVersion() {
+ if pb.GetUserVersion() != pb.GetDevelVersion() {
rs.gitState.SetText("merge to devel")
return
}
- if rs.GetDevelVersion() != rs.GetMasterVersion() {
+ if pb.GetDevelVersion() != pb.GetMasterVersion() {
rs.gitState.SetText("merge to main")
return
}
- if rs.lasttag.String() != rs.GetMasterVersion() {
+ if pb.GetLastTag() != pb.GetMasterVersion() {
rs.gitState.SetText("unchanged")
return
}
- if rs.CheckBranches() {
+ if pb.CheckBranches() {
log.Log(REPO, "Branches are Perfect")
rs.gitState.SetText("PERFECT")
return
}
- log.Log(REPO, rs.String(), "Branches are not Perfect")
+ log.Log(REPO, "FIND THIS IN REPO STATUS Branches are not Perfect")
+ log.Log(REPO, "FIND THIS IN REPO STATUS Branches are not Perfect")
+ log.Log(REPO, "FIND THIS IN REPO STATUS Branches are not Perfect")
+ log.Log(REPO, "FIND THIS IN REPO STATUS Branches are not Perfect")
rs.gitState.SetText("unknown branches")
}
-// TODO: make this report the error somewhere
-// This is supposed to check all the branches to make sure
-// the are the same. that was originally what this was for
-// now I think it's jsut probably dumb old code that doesn't
-// need to be here
-
-// actually, this is to attempt to verify absolutely everything
-// is pushed upstream before doing a rm -rf ~/go/src
-// TODO: revisit this code in the autotypist later
-func (rs *RepoStatus) CheckBranches() bool {
- var hashCheck string
- var perfect bool = true
- all := rs.getBranches()
- path := rs.realPath.String() + "/.git/refs/"
- for _, b := range all {
- parts := strings.Split(b, "/")
- rdir := "heads"
- if len(parts) == 2 {
- rdir = "remotes"
- }
- fullfile := path + "/" + rdir + "/" + b
-
- // check if the ref name is "HEAD". if so, skip
- runeCount := utf8.RuneCountInString(fullfile)
- // Convert the string to a slice of runes
- runes := []rune(fullfile)
- // Slice the last 4 runes
- lastFour := runes[runeCount-4:]
- if string(lastFour) == "HEAD" {
- log.Log(REPO, "skip HEAD fullfile", fullfile)
- continue
- }
-
- content, _ := ioutil.ReadFile(fullfile)
- hash := strings.TrimSpace(string(content))
- if hashCheck == "" {
- hashCheck = hash
- }
- var cmd []string
- cmd = append(cmd, "git", "show", "-s", "--format=%ci", hash)
- r := shell.PathRunLog(rs.Path(), cmd, INFO)
- if r.Error != nil {
- log.Log(WARN, "CheckBranches() git show error:", r.Error)
- }
- // git show -s --format=%ci <hash> will give you the time
- // log.Log(REPO, fullfile)
- if hash == hashCheck {
- log.Log(REPO, "notsure why this git show is here", hash)
- } else {
- // log.Log(WARN, rs.String(), hash, output, b)
- // log.Log(WARN, "UNKNOWN BRANCHES IN THIS REPO", cmd)
- rs.versionCmdOutput.SetText("UNKNOWN BRANCHES")
- perfect = false
- // parts := strings.Split(b, "/")
- // log.Warn("git push", parts)
- }
- }
- return perfect
-}
-
-/*
-// this isn't right
-func (rs *RepoStatus) LastTagAge() (time.Time, string) {
- return time.Now(), rs.lasttag.String()
-}
-*/
-
func (rs *RepoStatus) GetLastTagVersion() string {
return rs.lasttag.String()
}
+func (rs *RepoStatus) displayCurrentBranchName() string {
+ out := rs.pb.GetCurrentBranchName()
+ rs.currentBranch.SetValue(out)
+ return out
+}
+
// stores the current branch name
func (rs *RepoStatus) checkCurrentBranchName() string {
currentname := rs.currentBranch.String()
@@ -319,7 +143,7 @@ func (rs *RepoStatus) gitDescribeByHash(hash string) (string, error) {
if hash == "" {
return "", errors.New("hash was blank")
}
- r := shell.PathRunLog(rs.Path(), []string{"git", "describe", "--tags", "--always", hash}, INFO)
+ r := shell.PathRunLog(rs.realPath.String(), []string{"git", "describe", "--tags", "--always", hash}, INFO)
out := strings.Join(r.Stdout, "\n")
if r.Error != nil {
log.Warn("not in a git repo or bad hash?", r.Error, rs.Path())
@@ -358,8 +182,7 @@ func (rs *RepoStatus) gitDescribeByName(name string) (string, error) {
// todo: don't run git every time?
func (rs *RepoStatus) checkCurrentBranchVersion() string {
- out, _ := rs.gitDescribeByName("")
- log.Log(REPO, "checkCurrentBranchVersion()", out)
+ out := rs.pb.GetCurrentVersion()
rs.currentVersion.SetValue(out)
return out
}
@@ -406,12 +229,10 @@ func (rs *RepoStatus) getBranches() []string {
// returns quickly based on the last time it was checked
func (rs *RepoStatus) IsDirty() bool {
- if rs.dirtyLabel.String() == "no" {
- return false
- }
- return true
+ return rs.pb.IsDirty()
}
+/*
// return the list of dirty files (but ignores go.mod & go.sum)
func (rs *RepoStatus) DirtyList() []string {
var all []string
@@ -431,56 +252,18 @@ func (rs *RepoStatus) DirtyList() []string {
}
return all
}
+*/
func (rs *RepoStatus) CheckDirty() bool {
- var start string = rs.dirtyLabel.String()
- cmd := []string{"git", "status", "--porcelain"}
- r := shell.PathRunLog(rs.Path(), cmd, INFO)
- out := strings.Join(r.Stdout, "\n")
- if r.Error != nil {
- log.Warn("CheckDirty() status cmd =", cmd)
- log.Warn("CheckDirty() status out =", out)
- log.Warn("CheckDirty() status err =", r.Error)
- log.Error(r.Error, "CheckDirty() git status error")
- rs.dirtyLabel.SetValue("error")
- if start != "error" {
- rs.NoteChange("git status is in error " + fmt.Sprint(r.Error))
- }
+ if rs.pb.IsDirty() {
+ rs.dirtyLabel.SetValue("dirty")
return true
}
-
- rs.dirtyList = out
-
- // last := out[strings.LastIndex(out, "\n")+1:]
- // if last == "nothing to commit, working tree clean" {
-
- if len(rs.DirtyList()) == 0 {
- log.Log(REPO, "CheckDirty() no", rs.realPath.String())
- rs.dirtyLabel.SetValue("no")
- if start == "" {
- // don't record a change as this is the initial run
- return false
- }
- if start != "no" {
- log.Log(REPOWARN, "is no longer dirty")
- rs.NoteChange("is no longer dirty")
- }
- return false
- }
-
- rs.dirtyLabel.SetValue("dirty")
- if start == "" {
- // don't record a change as this is the initial run
- return false
- }
- if start != "dirty" {
- log.Log(REPOWARN, "is now dirty")
- rs.NoteChange("is now dirty")
- }
- return true
-
+ rs.dirtyLabel.SetValue("")
+ return false
}
+/*
func (rs *RepoStatus) CheckoutBranch(bname string) bool {
if rs.CheckDirty() {
log.Log(REPO, rs.realPath.String(), "is dirty")
@@ -507,63 +290,4 @@ func (rs *RepoStatus) CheckoutBranch(bname string) bool {
rs.checkCurrentBranchVersion()
return true
}
-
-func (rs *RepoStatus) CheckoutMaster() bool {
- if rs.CheckDirty() {
- log.Log(REPO, rs.realPath.String(), "is dirty")
- return false
- }
- mName := rs.GetMasterBranchName()
- if rs.CheckoutBranch(mName) {
- return true
- }
- return true
-}
-
-func (rs *RepoStatus) CheckoutDevel() bool {
- devel := rs.develWorkingName.String()
- // user := rs.userWorkingName.String()
- if devel == "" {
- return false
- }
- if rs.CheckDirty() {
- log.Log(REPO, rs.realPath.String(), "is dirty")
- return false
- }
-
- log.Log(REPO, "checkoutBranch", devel)
- rs.checkoutBranch("devel", devel)
- // log.Log(REPO, "checkoutBranch", user)
- // rs.checkoutBranch("user", user)
- return true
-}
-
-func (rs *RepoStatus) CheckoutUser() bool {
- bName := rs.GetUserBranchName()
- if bName == "" {
- return false
- }
- if rs.CheckDirty() {
- log.Log(REPO, rs.realPath.String(), "is dirty")
- return false
- }
- if !rs.BranchExists(bName) {
- return false
- }
- cmd := []string{"git", "checkout", bName}
- r := rs.Run(cmd)
- if r.Error != nil {
- log.Log(REPO, "git checkout error:", r.Error)
- }
-
- realname := rs.GetCurrentBranchName()
- realversion := rs.GetCurrentBranchVersion()
- log.Log(REPO, rs.realPath.String(), "realname =", realname, "realversion =", realversion)
-
- if realname != bName {
- log.Log(REPO, "git checkout failed", rs.realPath.String(), bName, "!=", realname)
- return false
- }
- rs.userBranchVersion.SetValue(realversion)
- return true
-}
+*/
diff --git a/gitConfig.go b/gitConfig.go
index 3b2ea83..ddfaa8c 100644
--- a/gitConfig.go
+++ b/gitConfig.go
@@ -259,7 +259,7 @@ func (rs *RepoStatus) processBranch(branch string) {
data, err := ioutil.ReadFile(filename)
if err != nil {
- log.Log(WARN, "hash: read failed", filename, rs.String())
+ log.Log(WARN, "hash: read failed", filename, rs.Path())
return
}
newhash := strings.TrimSpace(string(data))
@@ -267,7 +267,7 @@ func (rs *RepoStatus) processBranch(branch string) {
rs.gitConfig.hashes[branch] = newhash
if ok {
if hash != newhash {
- log.Log(WARN, "hash changed", hash, rs.String())
+ log.Log(WARN, "hash changed", hash, rs.Path())
}
}
diff --git a/merge.go b/merge.go
index cda174b..9eb8439 100644
--- a/merge.go
+++ b/merge.go
@@ -1,233 +1,12 @@
package repostatus
import (
- "errors"
- "strconv"
"strings"
"go.wit.com/log"
- "go.wit.com/widget"
)
-// used to block commits on non-user branches
-func (rs *RepoStatus) IsUserBranch() bool {
- if rs.GetCurrentBranchName() == rs.GetUserBranchName() {
- return true
- }
- return false
-}
-
-func (rs *RepoStatus) DeleteUserBranch(force bool) bool {
- log.Log(REPOWARN, "figure out what to do here")
- return false
-}
-
-func (rs *RepoStatus) ResetBranches() bool {
- log.Log(REPOWARN, "figure out what to do here")
- return false
-}
-
-func (rs *RepoStatus) FetchMaster() (error, string) {
- // log.Log(REPOWARN, "FetchMaster() start", rs.Name())
- master := rs.GetMasterBranchName()
- return rs.fetchBranchByName(master)
-}
-
-func (rs *RepoStatus) FetchDevel() (error, string) {
- devel := rs.GetDevelBranchName()
- return rs.fetchBranchByName(devel)
-}
-
-// fetch the branch by name
-func (rs *RepoStatus) fetchBranchByName(bname string) (error, string) {
- if rs.GetCurrentBranchName() != rs.GetUserBranchName() {
- return errors.New("not in user branch"), ""
- }
- if rs.gitConfig == nil {
- return errors.New("missing .git/config"), ""
- }
- for name, branch := range rs.gitConfig.branches {
- if name == bname {
- // found the branch!
- log.Log(REPO, " ", name, "remote:", branch.remote, "merge", branch.merge)
- cmd := []string{"git", "fetch", branch.remote, bname + ":" + bname}
- r := rs.Run(cmd)
- output := strings.Join(r.Stdout, "\n")
- return r.Error, strings.TrimSpace(output)
- }
- }
- return errors.New("branch " + bname + " not found"), ""
-}
-
/*
-func (rs *RepoStatus) runFullAutomation() bool {
- if !rs.MergeUserToDevel() {
- log.Warn("THINGS FAILED returned false")
- return false
- }
- log.Warn("THINGS SEEM OK returned true. can run this again?")
- return true
-}
-*/
-
-var releaseRevision string = ""
-
-// over ride the computation of this if a release is being created
-func (rs *RepoStatus) setRevision(c string) {
- if releaseRevision == "" {
- rs.revision.SetText(c)
- }
- rs.revision.SetText(releaseRevision)
-}
-
-func (rs *RepoStatus) SetVersion(a, b, c string, reason string) {
- rs.major.SetText(a)
- rs.minor.SetText(b)
- releaseRevision = c
- rs.setRevision(c)
-
- rs.targetReleaseVersion.SetText("v" + a + "." + b + "." + c)
-
- rs.versionMessage.SetLabel(reason)
- rs.versionMessage.SetText(reason)
- // rs.versionMessage.SetValue(reason)
-}
-
-func (rs *RepoStatus) IncrementMinorVersion(reason string) {
- lasttag := rs.lasttag.String()
- var major, minor, revision string
- major, minor, revision = splitVersion(lasttag)
-
- olda, _ := strconv.Atoi(major)
- oldb, _ := strconv.Atoi(minor)
- oldc, _ := strconv.Atoi(revision)
-
- oldb += 1
- oldc = 0
-
- newa := strconv.Itoa(olda)
- newb := strconv.Itoa(oldb)
- newc := strconv.Itoa(oldc)
-
- rs.SetVersion(newa, newb, newc, reason)
-}
-
-func (rs *RepoStatus) IncrementRevisionVersion(reason string) {
- lasttag := rs.lasttag.String()
- var major, minor, revision string
- major, minor, revision = splitVersion(lasttag)
-
- olda, _ := strconv.Atoi(major)
- oldb, _ := strconv.Atoi(minor)
- oldc, _ := strconv.Atoi(revision)
-
- oldc += 1
-
- newa := strconv.Itoa(olda)
- newb := strconv.Itoa(oldb)
- newc := strconv.Itoa(oldc)
-
- rs.SetVersion(newa, newb, newc, reason)
-}
-
-func (rs *RepoStatus) setTag() bool {
- lasttag := rs.lasttag.String()
- var major, minor, revision string
- major, minor, revision = splitVersion(lasttag)
-
- olda, _ := strconv.Atoi(major)
- oldb, _ := strconv.Atoi(minor)
- oldc, _ := strconv.Atoi(revision)
-
- log.Log(INFO, "current version here", lasttag)
- log.Log(INFO, "current release a,b,c =", major, minor, revision)
-
- newa, _ := strconv.Atoi(rs.major.String())
-
- newver := strconv.Itoa(newa)
- if newa < olda {
- log.Warn("new version bad", newver, "vs old version", lasttag, "newa =", newa, "olda =", olda)
- rs.newversion.SetLabel("bad")
- return false
- }
- if newa > olda {
- log.Log(INFO, "new version ok", newver, "vs old version", lasttag)
- rs.minor.SetText("0")
- rs.setRevision("0")
- newver := strconv.Itoa(newa) + ".0.0"
- rs.newversion.SetLabel(newver)
- return true
- }
-
- newb, _ := strconv.Atoi(rs.minor.String())
- newver = strconv.Itoa(newa) + "." + strconv.Itoa(newb)
- if newb < oldb {
- log.Warn("new version bad", newver, "vs old version", lasttag, "newb =", newb, "oldb =", oldb)
- rs.newversion.SetLabel("bad")
- return false
- }
-
- if newb > oldb {
- log.Log(INFO, "new version ok", newver, "vs old version", lasttag)
- newver = strconv.Itoa(newa) + "." + strconv.Itoa(newb) + ".0"
- rs.newversion.SetLabel(newver)
- rs.setRevision("0")
- return true
- }
-
- newc, _ := strconv.Atoi(rs.revision.String())
- newver = strconv.Itoa(newa) + "." + strconv.Itoa(newb) + "." + strconv.Itoa(newc)
- if newc <= oldc {
- log.Warn("new version bad", newver, "vs old version", lasttag)
- rs.newversion.SetLabel("bad")
- return false
- }
- log.Log(INFO, "new version ok", newver, "vs old version", lasttag)
- rs.newversion.SetLabel(newver)
- return true
-}
-
-// the newversion field goes through some sanity checking
-// to make sure it's greater than the existing tag and
-// valid according to golang -- it must be format 'v1.2.3'
-func (rs *RepoStatus) GetNewVersionTag() string {
- return rs.newversion.String()
-}
-
-func (rs *RepoStatus) incrementRevision() {
- lasttag := rs.lasttag.String()
- var major, minor, revision string
- if rs.targetReleaseVersion.String() == "" {
- major, minor, revision = splitVersion(lasttag)
- log.Warn("Should release version here", lasttag)
- log.Log(INFO, "Should release a,b,c", major, minor, revision)
- } else {
- // this means there is a specific release version trying to be done
- // use the target release version instead
- major, minor, revision = splitVersion(rs.targetReleaseVersion.String())
- log.Warn("Should release version here", lasttag)
- log.Log(INFO, "Should release a,b,c", major, minor, revision)
- }
-
- a, _ := strconv.Atoi(major)
- b, _ := strconv.Atoi(minor)
- c, _ := strconv.Atoi(revision)
-
- rs.major.AddText(widget.GetString(a))
- rs.major.AddText(widget.GetString(a + 1))
- rs.major.SetText(widget.GetString(a))
-
- rs.minor.AddText(widget.GetString(b))
- rs.minor.AddText(widget.GetString(b + 1))
- rs.minor.SetText(widget.GetString(b))
-
- // rs.c := strconv.Atoi(revision)
- rs.revision.AddText(strconv.Itoa(c + 1))
- rs.revision.AddText(strconv.Itoa(c + 2))
- rs.revision.SetText(strconv.Itoa(c + 1))
- // rs.setRevision(widget.GetString(c + 1))
-}
-
func (rs *RepoStatus) recommend() {
log.Log(INFO, "Is repo dirty?", rs.dirtyLabel.String())
log.Log(INFO, "list the known tags")
@@ -261,7 +40,9 @@ func (rs *RepoStatus) recommend() {
}
log.Log(INFO, "Is repo pushed upstream? git.wit.org or github?")
}
+*/
+/*
func (rs *RepoStatus) generateCmd() bool {
// the length of 24 is arbitrary, but should be short
// they should be things like perhaps, major release names
@@ -292,6 +73,7 @@ func (rs *RepoStatus) generateCmd() bool {
rs.releaseVersion.Enable()
return true
}
+*/
func (rs *RepoStatus) runGitCommands(verbose bool) bool {
var line []string
@@ -343,60 +125,7 @@ func (rs *RepoStatus) setGitCommands() {
rs.versionCmdOutput.SetValue(strings.Join(tmp, "\n"))
}
-func (rs *RepoStatus) setMergeDevelCommands() {
- var line1, line2, line3 []string
- var all [][]string
-
- master := rs.GetMasterBranchName()
- devel := rs.GetDevelBranchName()
-
- line1 = append(line1, "git", "checkout", master)
- all = append(all, line1)
- line2 = append(line2, "git", "merge", devel)
- all = append(all, line2)
- line3 = append(line3, "git", "push")
- all = append(all, line3)
-
- rs.versionCmds = all
-
- var tmp []string
- // convert to displayable to the user text
- for _, line := range all {
- s := strings.Join(line, " ")
- log.Log(INFO, "s =", s)
- tmp = append(tmp, s)
- }
-
- rs.versionCmdOutput.SetValue(strings.Join(tmp, "\n"))
-}
-
-func (rs *RepoStatus) setMergeUserCommands() {
- var line1, line2, line3 []string
- var all [][]string
-
- devel := rs.GetDevelBranchName()
- user := rs.userWorkingName.String()
-
- line1 = append(line1, "git", "checkout", devel)
- all = append(all, line1)
- line2 = append(line2, "git", "merge", user)
- all = append(all, line2)
- line3 = append(line3, "git", "push")
- all = append(all, line3)
-
- rs.versionCmds = all
-
- var tmp []string
- // convert to displayable to the user text
- for _, line := range all {
- s := strings.Join(line, " ")
- log.Log(INFO, "s =", s)
- tmp = append(tmp, s)
- }
-
- rs.versionCmdOutput.SetValue(strings.Join(tmp, "\n"))
-}
-
+/*
func (rs *RepoStatus) IsCorrectMode(mode string) bool {
switch mode {
case "master":
@@ -420,49 +149,4 @@ func (rs *RepoStatus) IsCorrectMode(mode string) bool {
}
return false
}
-
-/* moved to gitpb
-func (rs *RepoStatus) MergeUserToDevel() bool {
- startbranch := rs.GetCurrentBranchName()
- devel := rs.GetDevelBranchName()
- user := rs.GetUserBranchName()
-
- log.Info("MergeUserToDevel() checking out", devel, "started on", startbranch, "merge", user)
-
- var all [][]string
- all = append(all, []string{"git", "checkout", devel})
- all = append(all, []string{"git", "merge", user})
- all = append(all, []string{"git", "push"})
-
- if rs.DoAll(all) {
- log.Log(WARN, "MergeUserToDevel() failed", rs.Path())
- rs.updateNew()
- return true
- }
- // DoAll failed
- rs.updateNew()
- return false
-}
-
-func (rs *RepoStatus) MergeDevelToMaster() bool {
- startbranch := rs.GetCurrentBranchName()
- devel := rs.GetDevelBranchName()
- main := rs.GetMasterBranchName()
-
- log.Info("MergeDevelToMaster() checking out", main, "started on", startbranch, "merge", devel)
-
- var all [][]string
- all = append(all, []string{"git", "checkout", main})
- all = append(all, []string{"git", "merge", devel})
- all = append(all, []string{"git", "push"})
-
- if rs.DoAll(all) {
- log.Log(WARN, "MergeDevelToMaster() failed", rs.Path())
- rs.updateNew()
- return true
- }
- // DoAll failed
- rs.updateNew()
- return false
-}
*/
diff --git a/modifyBox.go b/modifyBox.go
index 6003fae..81dec1a 100644
--- a/modifyBox.go
+++ b/modifyBox.go
@@ -24,7 +24,7 @@ func (rs *RepoStatus) drawGitCommands(box *gui.Node) {
newgrid.NewButton("show .git/config", func() {
if rs.gitConfig == nil {
- log.Log(WARN, "Nonexistant or damaged .git/config", rs.String())
+ log.Log(WARN, "Nonexistant or damaged .git/config", rs.Path())
return
}
log.Log(WARN, ".git/config:", rs.realPath.String())
@@ -66,30 +66,31 @@ func (rs *RepoStatus) drawGitCommands(box *gui.Node) {
rs.Enable()
})
newgrid.NewButton("increment version", func() {
- rs.IncrementVersion()
+ log.Info("broken")
+ // rs.IncrementVersion()
})
newgrid.NextRow()
rs.major = gadgets.NewBasicCombobox(newgrid, "major")
rs.major.Custom = func() {
- rs.setTag()
- rs.generateCmd()
+ // rs.setTag()
+ // rs.generateCmd()
}
// rs.major.Hide()
newgrid.NextRow()
rs.minor = gadgets.NewBasicCombobox(newgrid, "minor")
rs.minor.Custom = func() {
- rs.setTag()
- rs.generateCmd()
+ // rs.setTag()
+ // rs.generateCmd()
}
// rs.minor.Hide()
newgrid.NextRow()
rs.revision = gadgets.NewBasicCombobox(newgrid, "revision")
rs.revision.Custom = func() {
- rs.setTag()
- rs.generateCmd()
+ // rs.setTag()
+ // rs.generateCmd()
}
// rs.revision.Hide()
newgrid.NextRow()
@@ -101,7 +102,7 @@ func (rs *RepoStatus) drawGitCommands(box *gui.Node) {
rs.versionMessage = gadgets.NewBasicEntry(newgrid, "tag message")
rs.versionMessage.Custom = func() {
- rs.generateCmd()
+ // rs.generateCmd()
}
// rs.versionMessage.Hide()
newgrid.NextRow()
diff --git a/new.go b/new.go
index 3864178..2dc9f00 100644
--- a/new.go
+++ b/new.go
@@ -16,9 +16,6 @@ func init() {
// deprecate this
func ListAllOld() {
- for path, rs := range windowMap {
- log.Warn(rs.GetMasterVersion(), path)
- }
}
// returns the object for the path
@@ -103,7 +100,7 @@ func NewRepoStatusWindow(repo *gitpb.Repo) (*RepoStatus, error) {
rs.userWorkingName.SetText(rs.pb.GetUserBranchName())
rs.userBranchVersion.SetLabel(rs.pb.GetUserBranchName())
- if rs.pb.GetGoPath ()== "" {
+ if rs.pb.GetGoPath() == "" {
// not golang repo
} else {
rs.isGoLang.SetText("true")
diff --git a/revert.go b/revert.go
index 201c1db..5a080e9 100644
--- a/revert.go
+++ b/revert.go
@@ -1,9 +1,8 @@
package repostatus
-import "go.wit.com/log"
-
// reverts master to devel
// used in the unwind process of making GUI releases
+/*
func (rs *RepoStatus) RevertMasterToDevel() bool {
if rs.CheckDirty() {
log.Info("sorry, it's still dirty")
@@ -39,3 +38,4 @@ func (rs *RepoStatus) RevertMasterToDevel() bool {
log.Info("SOMETHING FAILED")
return false
}
+*/
diff --git a/tagWindow.go b/tagWindow.go
index fbd67dc..07effd3 100644
--- a/tagWindow.go
+++ b/tagWindow.go
@@ -51,7 +51,7 @@ func (rs *RepoStatus) makeTagBox(box *gui.Node) error {
}
tagB := new(GitTagBox)
rs.Tags = tagB
- tagB.group = box.NewGroup(".git tags for " + rs.String())
+ tagB.group = box.NewGroup(".git tags for " + rs.Path())
// tagB.group.NewButton("prune tags", func() {
// tagB.Prune()
@@ -110,9 +110,9 @@ func (rs *RepoStatus) makeTagBox(box *gui.Node) error {
all = append(all, []string{"git", "push", "--delete", "origin", tagversion})
if rs.DoAll(all) {
- log.Info("TAG DELETED", rs.String(), tagversion)
+ log.Info("TAG DELETED", rs.Path(), tagversion)
} else {
- log.Info("TAG DELETE FAILED", rs.String(), tagversion)
+ log.Info("TAG DELETE FAILED", rs.Path(), tagversion)
}
})
diff --git a/update.go b/update.go
index 81a604e..1d5b28e 100644
--- a/update.go
+++ b/update.go
@@ -11,7 +11,7 @@ import (
func (rs *RepoStatus) gitBranchAll() {
r := rs.Run([]string{"git", "branch", "--all"})
if r.Error != nil {
- log.Log(WARN, "git branch failed string =", rs.String())
+ log.Log(WARN, "git branch failed string =", rs.Path())
log.Log(WARN, "git branch failed realpath =", rs.realPath.String())
return
}
@@ -27,6 +27,8 @@ func (rs *RepoStatus) updateNew() {
return
}
+ pb := rs.pb
+
// store the current checked out branch name and version
rs.checkCurrentBranchName()
rs.checkCurrentBranchVersion()
@@ -35,33 +37,17 @@ func (rs *RepoStatus) updateNew() {
rs.populateTags()
// record if the repo is dirty
- rs.CheckDirty()
+ pb.CheckDirty()
// store the last tag version
rs.setLastTagVersion()
// store the master branch version
- mName := rs.GetMasterBranchName()
- out, _ := rs.gitDescribeByName(mName)
- rs.setMasterVersion(out)
-
- // store the devel branch version
- dName := rs.GetDevelBranchName()
- if dName == "" {
- rs.setDevelVersion("")
- } else {
- out, _ = rs.gitDescribeByName(dName)
- rs.setDevelVersion(out)
- }
+ ver := pb.GetMasterVersion()
+ rs.mainBranchVersion.SetValue(ver)
- // store the user branch version
- uName := rs.GetUserBranchName()
- if uName == "" {
- rs.setUserVersion("")
- } else {
- out, _ = rs.gitDescribeByName(uName)
- rs.setUserVersion(out)
- }
+ rs.develBranchVersion.SetValue(pb.GetDevelVersion())
+ rs.userBranchVersion.SetValue(pb.GetUserVersion())
// populates a string into the rs.gitState widget
// todo: make the values from this function a bit cleaner
@@ -151,7 +137,7 @@ func (rs *RepoStatus) EnableSelectTag() {
// force there to be a commit message
rs.releaseVersion.Disable()
} else {
- rs.generateCmd()
+ // rs.generateCmd()
rs.releaseVersion.Enable()
}
}