summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--argv.go13
-rw-r--r--doRepos.go19
2 files changed, 24 insertions, 8 deletions
diff --git a/argv.go b/argv.go
index 7e194fc..75385fe 100644
--- a/argv.go
+++ b/argv.go
@@ -39,12 +39,13 @@ type PatchCmd struct {
}
type ReposCmd struct {
- List *EmptyCmd `arg:"subcommand:list" help:"list the repos"`
- Pull *EmptyCmd `arg:"subcommand:pull" help:"'git pull' on the repos"`
- Clean *EmptyCmd `arg:"subcommand:clean" help:"clean the repos"`
- Merge *EmptyCmd `arg:"subcommand:merge" help:"merge in new patchsets"`
- Scan *EmptyCmd `arg:"subcommand:scan" help:"scan the forged repo dir"`
- Reload *EmptyCmd `arg:"subcommand:reload" help:"do Reload() on each git repo"`
+ List *EmptyCmd `arg:"subcommand:list" help:"list the repos"`
+ Pull *EmptyCmd `arg:"subcommand:pull" help:"'git pull' on the repos"`
+ Scan *EmptyCmd `arg:"subcommand:scan" help:"scan the forged repo dir"`
+ Fix *EmptyCmd `arg:"subcommand:fix" help:"try to fix the repo PB"`
+ // Reload *EmptyCmd `arg:"subcommand:reload" help:"do Reload() on each git repo"`
+ // Clean *EmptyCmd `arg:"subcommand:clean" help:"clean the repos"`
+ // Merge *EmptyCmd `arg:"subcommand:merge" help:"merge in new patchsets"`
}
func (args) Appname() string {
diff --git a/doRepos.go b/doRepos.go
index 0c79704..f33385d 100644
--- a/doRepos.go
+++ b/doRepos.go
@@ -4,10 +4,12 @@ import (
"os"
"time"
+ "go.wit.com/lib/config"
"go.wit.com/lib/gui/shell"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
+ "google.golang.org/protobuf/proto"
)
func doRepos() error {
@@ -25,13 +27,26 @@ func doRepos() error {
return err
}
- if argv.Repos.Reload != nil {
+ if argv.Repos.Fix != nil {
for repo := range me.forge.Repos.IterAll() {
if repo.GetMasterBranchName() == "" {
me.forge.VerifyBranchNames(repo)
log.Info("ABNORMAL: master branch name was blank in", repo.GetFullPath())
}
-
+ if repo.Tags == nil {
+ log.Infof("%s Tags == nil\n", repo.GetFullPath())
+ continue
+ }
+ if repo.Tags.Master == nil {
+ if found := repo.GetRemoteTag(repo.GetMasterBranchName()); found != nil {
+ // log.Info("found master tag ", repo.FullPath, found)
+ repo.Tags.Master = proto.Clone(found).(*gitpb.GitTag)
+ config.SetChanged("repos", true)
+ } else {
+ log.Info("not found master tag (Reload() ?)", repo.FullPath)
+ }
+ continue
+ }
}
me.forge.SaveRepos()
/*