diff --git a/doPatch.go b/doPatch.go index 8d5b7d4..b13bd82 100644 --- a/doPatch.go +++ b/doPatch.go @@ -103,33 +103,28 @@ func doPatch() error { var changed bool newpatches := forgepb.NewPatches() for pset := range me.forge.Patchsets.IterAll() { - log.Info(pset.Uuid) + pset.PrintTable() for patch := range pset.Patches.IterAll() { - if setNewCommitHash(patch) { - changed = true + if err := setNewCommitHash(patch); err != nil { + log.Infof("%s bad check on patch failure %v\n", patch.Filename, err) + return err } - if patch.NewHash == "na" { - newpatches.Append(patch) - log.Info("apply this patch?") - } - } - - /* - for patch := range pset.Patches.IterAll() { - if repo, ok := me.forge.IsPatchApplied(patch); ok { - log.Info("\tfound patch in repo", repo.Namespace, patch.Filename) + changed = true + if patch.NewHash == "" { + if newpatches.AppendByPatchId(patch) { + log.Info("patchId added here", patch.PatchId) } else { - log.Info("\tdid not find patch", patch.CommitHash, patch.NewHash, patch.Filename) + log.Info("patchId already here", patch.PatchId) } } - */ + } } if changed { if err := me.forge.SavePatchsets(); err != nil { log.Warn("savePatchsets() failed", err) } } - me.forge.Patchsets.PrintTable() + newpatches.PrintTable() if newpatches.Len() != 0 { for patch := range newpatches.IterAll() { log.Info("new patch:", patch.CommitHash, patch.NewHash, patch.Filename) diff --git a/helperPatches.go b/helperPatches.go index bfc36f7..6bfd4c1 100644 --- a/helperPatches.go +++ b/helperPatches.go @@ -173,52 +173,35 @@ func findCommitBySubject(subject string) (string, error) { } // returns true if PB changed -func setNewCommitHash(patch *forgepb.Patch) bool { - // parts := strings.Fields(patch.Comment) - +func setNewCommitHash(patch *forgepb.Patch) error { repo := me.forge.FindByGoPath(patch.Namespace) if repo == nil { - log.Info("could not find repo", patch.Namespace) - return false + return log.Errorf("could not find repo %s", patch.Namespace) } comment := cleanSubject(patch.Comment) - if patch.NewHash == "" { - log.Info("init() new patch to 'na' ", patch.NewHash, "commithash:", patch.CommitHash, patch.Namespace, comment) - patch.NewHash = "na" - return true + if patch.NewHash != "" { + return nil } os.Chdir(repo.GetFullPath()) newhash, err := findCommitBySubject(comment) if err != nil { - log.Info("patch: not found hash:", patch.CommitHash, patch.Namespace, comment, newhash, err) - return false + return log.Errorf("patch: not found hash: %s %s %s %s %v", patch.CommitHash, patch.Namespace, comment, newhash, err) } if patch.NewHash == newhash { // patch was already set - return false + return nil } - if patch.NewHash != "na" { + if patch.NewHash != "" { log.Infof("patch: hash MISMATCH %s old=%s new=%s name=%s\n", patch.Namespace, patch.NewHash, newhash, comment) - return false + return nil } patch.NewHash = newhash log.Info("patch: found hash:", patch.CommitHash, newhash, patch.Namespace, comment) - return true + return nil } -/* -func setNewCommitHashLoop(p *forgepb.Set) bool { - var done bool = true - for patch := range p.Patches.IterAll() { - setNewCommitHashLoop(patch) - } - - return done -} -*/ - func AddAllPatches(notdone *forgepb.Patches, pset *forgepb.Set, full bool) { for patch := range pset.Patches.IterAll() { comment := cleanSubject(patch.Comment) @@ -251,7 +234,7 @@ func AddNotDonePatches(notdone *forgepb.Patches, pset *forgepb.Set, full bool) { continue } - if patch.NewHash != "na" { + if patch.NewHash != "" { log.Info("already applied patch", patch.Namespace, ": newhash:", patch.NewHash, "commithash:", patch.CommitHash, comment) continue } @@ -301,7 +284,7 @@ func findExpired() *forgepb.Patches { continue } - if patch.NewHash != "na" { + if patch.NewHash != "" { log.Info("already applied patch", patch.Namespace, ": newhash:", patch.NewHash, "commithash:", patch.CommitHash, comment) found.AppendByCommitHash(patch) // double check to ensure the commit hash isn't added twice continue diff --git a/windowPatches.go b/windowPatches.go index a7d40b5..40f96de 100644 --- a/windowPatches.go +++ b/windowPatches.go @@ -117,11 +117,8 @@ func applyPatchLabel(p *forgepb.Patch) string { // log.Info("Could not figure out repo path", rn) return "" } - if p.NewHash == "na" { - return "git am" - } if p.NewHash == "" { - return "new" + return "git am" } return "done" }