start tracking patchset state

This commit is contained in:
Jeff Carr 2025-03-11 12:00:27 -05:00
parent 95d4e03ca4
commit 422d853020
1 changed files with 50 additions and 6 deletions

View File

@ -59,7 +59,9 @@ func makePatchsetsWin() *stdPatchsetTableWin {
for all.Scan() {
pset := all.Next()
log.Info("What is up with?", pset.Name)
setPatchsetState(pset)
}
savePatchsets(psets)
})
// make a box at the bottom of the window for the protobuf table
@ -110,12 +112,8 @@ func AddPatchsetsPB(tbox *gui.Node, pb *forgepb.Patchsets) *forgepb.PatchsetsTab
}
tp := t.AddButtonFunc("Analyze", testf)
tp.Custom = func(p *forgepb.Patchset) {
log.Info("check patches here", p.Name)
all := p.Patches.All()
for all.Scan() {
patch := all.Next()
log.Info("What is up with patches:", patch.Filename)
}
setPatchsetState(p)
log.Info("patchset state", p.Name, "is", p.State)
}
vp := t.AddButtonFunc("View Patchset", func(p *forgepb.Patchset) string {
@ -133,6 +131,7 @@ func AddPatchsetsPB(tbox *gui.Node, pb *forgepb.Patchsets) *forgepb.PatchsetsTab
}
t.AddComment()
t.AddState()
ctimef := func(p *forgepb.Patchset) string {
ctime := p.Ctime.AsTime()
@ -162,3 +161,48 @@ func AddPatchsetsPB(tbox *gui.Node, pb *forgepb.Patchsets) *forgepb.PatchsetsTab
t.ShowTable()
return t
}
func setPatchsetState(p *forgepb.Patchset) {
var bad bool
var good bool
var done bool = true
all := p.Patches.All()
for all.Scan() {
patch := all.Next()
// log.Info("patch:", patch.StartHash, patch.CommitHash, patch.RepoNamespace, patch.Filename)
repo := me.forge.FindByGoPath(patch.RepoNamespace)
if repo == nil {
log.Info("couldn't find repo", patch.RepoNamespace)
bad = true
continue
}
if _, err := repo.GetHashName(patch.CommitHash); err == nil {
// this patch has been applied
patch.Applied = true
done = true
continue
}
if name, err := repo.GetHashName(patch.StartHash); err == nil {
// it might be possible to apply this patch
log.Info("patch may be good:", patch.RepoNamespace, name, patch.CommitHash, patch.Filename)
good = true
} else {
// probably screwed up git trees
log.Info("patch with unknown origin:", patch.RepoNamespace, name, err, patch.CommitHash, patch.Filename)
bad = true
}
}
if bad {
p.State = "BAD"
return
}
if good {
p.State = "TRY"
return
}
if done {
p.State = "DONE"
return
}
}