// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "fmt" "time" "go.wit.com/lib/gui/shell" "go.wit.com/lib/protobuf/forgepb" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) // trys to figure out if there is still something to update func didRepoChangeDir(repo *gitpb.Repo) error { return repo.DidRepoChangeDir() } func doCheckout() error { if argv.Checkout.User != nil { setForgeMode(forgepb.ForgeMode_USER) start := time.Now() err := me.forge.DoAllCheckoutUser(argv.Force) dur := time.Since(start) log.Printf("Checked out %d user braches in %s\n", me.forge.Repos.Len(), shell.FormatDuration(dur)) if err != nil { badExit(err) } okExit("") } if argv.Checkout.Devel != nil { setForgeMode(forgepb.ForgeMode_DEVEL) if err := me.forge.DoAllCheckoutDevelNew(argv.Force); err != nil { badExit(err) } okExit("") } if argv.Checkout.Master != nil { setForgeMode(forgepb.ForgeMode_MASTER) err := me.forge.DoAllCheckoutMaster() count := me.forge.RillReload() log.Info("rillreload 1 count", count) if count != 0 { me.forge.ConfigSave() } count = me.forge.RillReload() log.Info("rillreload 2 count", count) if count != 0 { me.forge.ConfigSave() } stats := me.forge.RillFuncError(didRepoChangeDir) log.Printf("total stats len%d\n", len(stats)) if err != nil { badExit(err) } okExit("") } badExit(fmt.Errorf("did not specify what branch to checkout")) return nil }