diff --git a/doCheckout.go b/doCheckout.go index b168da3..85f73b3 100644 --- a/doCheckout.go +++ b/doCheckout.go @@ -140,18 +140,27 @@ func doAllCheckoutDevel() error { } func rillCheckoutMaster(repo *gitpb.Repo) error { - if repo.GetUserVersion() != repo.GetDevelVersion() { - // don't switch braches if the user branch has uncommitted patches - return nil - } - if repo.GetDevelVersion() != repo.GetMasterVersion() { - // don't switch braches if the devel branch does not match master (needs merge) + if repo.IsDirty() { + // never do dirty repos return nil } if repo.GetCurrentBranchName() == repo.GetMasterBranchName() { // repo is already on master return nil } + if repo.GetUserVersion() != repo.GetDevelVersion() { + // don't switch branches if the user branch has uncommitted patches + return nil + } + if me.forge.Config.IsReadOnly(repo.GetGoPath()) { + // skip other checks for readonly repos + repo.CheckoutMaster() + return nil + } + if repo.GetDevelVersion() != repo.GetMasterVersion() { + // don't switch braches if the devel branch does not match master (needs merge) + return nil + } repo.CheckoutMaster() return nil } diff --git a/doClean.go b/doClean.go index dcd782b..154be88 100644 --- a/doClean.go +++ b/doClean.go @@ -184,8 +184,8 @@ func userToDevelRequiresGitPush(repo *gitpb.Repo, branchName string) error { return fmt.Errorf("user branch not clean to delete %d %d", missing, b2) } if missing == 0 { - log.Info("THIS MEANS THE LOCAL BRANCH IS OK TO DELETE missing =", missing) - return nil + // log.Info("THIS MEANS THE LOCAL BRANCH IS OK TO DELETE missing =", missing) + log.Info("THIS IS REALLY BAD RIGHT NOW. must to git push / git merge missing =", missing, b2) } return fmt.Errorf("user branch not clean to delete. maybe it is? devel might be ahead of user branch. %d %d", missing, b2) }