summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-01-19 04:31:38 -0600
committerJeff Carr <[email protected]>2025-01-19 04:31:38 -0600
commit1e8bdc5c53ccc9539f78d0584f1bac3621b8ff4d (patch)
treebd3cba88dbd92873b4f673887866e8dd5ead32e6
parent193d041306e5e669a4e9e7a965e2d3cae6f01a62 (diff)
fix checkout userv0.22.50
-rw-r--r--doCheckout.go44
-rw-r--r--windowRepos.go5
2 files changed, 29 insertions, 20 deletions
diff --git a/doCheckout.go b/doCheckout.go
index 85f73b3..bbb6a5b 100644
--- a/doCheckout.go
+++ b/doCheckout.go
@@ -62,7 +62,7 @@ func IsEverythingOnUser() error {
for all.Scan() {
repo := all.Next()
total += 1
- if repo.GetUserBranchName() == repo.GetUserBranchName() {
+ if repo.GetCurrentBranchName() == repo.GetUserBranchName() {
count += 1
}
}
@@ -111,15 +111,37 @@ func checkoutBranches(repo *gitpb.Repo) error {
}
*/
+func rillCheckoutUser(repo *gitpb.Repo) error {
+ if repo.IsDirty() {
+ // never do dirty repos
+ return nil
+ }
+ if repo.GetCurrentBranchName() == repo.GetUserBranchName() {
+ // repo is already on user branch
+ return nil
+ }
+ repo.CheckoutUser()
+ return nil
+}
+
func doAllCheckoutUser() error {
- me.forge.CheckoutUser()
- // me.forge = forgepb.Init()
+ me.forge.RillFuncError(rillCheckoutUser)
count := me.forge.RillReload()
- log.Info("CHECKOUT USER COUNT", count)
if count != 0 {
me.forge.ConfigSave()
}
if err := IsEverythingOnUser(); err != nil {
+ // display all repos not on user
+ me.found = new(gitpb.Repos)
+ all := me.forge.Repos.SortByFullPath()
+ for all.Scan() {
+ repo := all.Next()
+ if repo.GetCurrentBranchName() != repo.GetUserBranchName() {
+ me.found.AppendByGoPath(repo)
+ }
+ }
+ me.forge.PrintHumanTable(me.found)
+ log.Printf("There are %d repos that are NOT on the user branch\n", me.found.Len())
return err
}
return nil
@@ -197,18 +219,7 @@ func doAllCheckoutMaster() error {
func doCheckout() error {
if argv.Checkout.User != nil {
- if argv.Force {
- me.forge.CheckoutUserForce()
- } else {
- me.forge.CheckoutUser()
- }
- me.forge = forgepb.Init()
- me.found = new(gitpb.Repos)
- argv.Checkout.User.findRepos()
- me.forge.PrintHumanTable(me.found)
- if err := IsEverythingOnUser(); err != nil {
- badExit(err)
- }
+ doAllCheckoutUser()
okExit("")
}
@@ -223,6 +234,7 @@ func doCheckout() error {
if argv.Checkout.Master != nil {
doAllCheckoutMaster()
+ okExit("")
}
return nil
}
diff --git a/windowRepos.go b/windowRepos.go
index c99116e..6385847 100644
--- a/windowRepos.go
+++ b/windowRepos.go
@@ -176,10 +176,7 @@ func (r *repoWindow) repoMenu() *gui.Node {
if !r.mergeAllDevelToMain() {
return
}
- if !me.forge.CheckoutMaster() {
- return
- }
- me.forge.ConfigSave()
+ doAllCheckoutUser()
os.Exit(0)
})