package main import ( "time" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) func doGitPull() { allerr := me.found.RillGitPull(40, 5) all := me.found.SortByFullPath() for all.Scan() { repo := all.Next() result := allerr[repo] if result.Error == gitpb.ErrorGitPullOnDirty { log.Info("skip git pull. repo is dirty", repo.GetGoPath()) continue } if result.Error == gitpb.ErrorGitPullOnLocal { log.Info("skip git pull. local branch ", repo.GetGoPath()) continue } if result.Exit == 0 { continue } log.Info("git pull error:", repo.GetGoPath(), result.Error) log.Info("git pull error:", repo.GetGoPath(), result.Stdout) } } func doCheckDirtyAndConfigSave() { now := time.Now() all := me.found.SortByFullPath() for all.Scan() { repo := all.Next() dirty := repo.IsDirty() if repo.CheckDirty() { me.found.AppendUniqueGoPath(repo) if !dirty { configSave = true } } else { if dirty { configSave = true } } } log.Info("dirty check took:", shell.FormatDuration(time.Since(now))) me.forge.SetConfigSave(configSave) } func IsEverythingOnDevel() bool { all := me.forge.Repos.SortByFullPath() for all.Scan() { repo := all.Next() if repo.GetCurrentBranchName() != repo.GetDevelBranchName() { log.Info(repo.GetFullPath(), repo.GetCurrentBranchName(), repo.GetDevelBranchName()) return false } } return true } func doGitReset() { all := me.found.SortByFullPath() for all.Scan() { repo := all.Next() if me.forge.Config.IsReadOnly(repo.GetGoPath()) { // log.Info("is readonly", repo.GetGoPath()) if repo.CheckDirty() { log.Info("is readonly and dirty", repo.GetGoPath()) cmd := []string{"git", "reset", "--hard"} repo.RunRealtime(cmd) } } else { // log.Info("is not readonly", repo.GetGoPath()) } } } func checkoutBranches(repo *gitpb.Repo) error { dname := repo.GetDevelBranchName() if dname == "" { if err := me.forge.MakeDevelBranch(repo); err != nil { log.Info("verify() no devel branch name", repo.GetGoPath()) return err } configSave = true } if repo.GetUserBranchName() == "" { if err := me.forge.MakeUserBranch(repo); err != nil { log.Info("verify() no devel branch name", repo.GetGoPath()) return err } configSave = true } return nil }