|
8 | 8 | "fmt"
|
9 | 9 |
|
10 | 10 | "code.gitea.io/gitea/models"
|
| 11 | + "code.gitea.io/gitea/modules/log" |
11 | 12 | "code.gitea.io/gitea/modules/setting"
|
12 | 13 | pull_service "code.gitea.io/gitea/services/pull"
|
13 | 14 |
|
@@ -44,13 +45,21 @@ func addCommitDivergenceToPulls(x *xorm.Engine) error {
|
44 | 45 | for _, pr := range results {
|
45 | 46 | divergence, err := pull_service.GetDiverging(pr)
|
46 | 47 | if err != nil {
|
47 |
| - return fmt.Errorf("GetDiverging: %v", err) |
48 |
| - } else { |
49 |
| - pr.CommitsAhead = divergence.Ahead |
50 |
| - pr.CommitsBehind = divergence.Behind |
51 |
| - if _, err = sess.ID(pr.ID).Cols("commits_ahead", "commits_behind").Update(pr); err != nil { |
52 |
| - return fmt.Errorf("Update Cols: %v", err) |
| 48 | + if err = pr.LoadIssue(); err != nil { |
| 49 | + return fmt.Errorf("pr.LoadIssue()[%d]: %v", pr.ID, err) |
53 | 50 | }
|
| 51 | + if !pr.Issue.IsClosed { |
| 52 | + return fmt.Errorf("GetDiverging: %v", err) |
| 53 | + } |
| 54 | + log.Error("Could not recalculate Divergence for pull: %d", pr.ID) |
| 55 | + pr.CommitsAhead = 0 |
| 56 | + pr.CommitsBehind = 0 |
| 57 | + } |
| 58 | + |
| 59 | + pr.CommitsAhead = divergence.Ahead |
| 60 | + pr.CommitsBehind = divergence.Behind |
| 61 | + if _, err = sess.ID(pr.ID).Cols("commits_ahead", "commits_behind").Update(pr); err != nil { |
| 62 | + return fmt.Errorf("Update Cols: %v", err) |
54 | 63 | }
|
55 | 64 | }
|
56 | 65 |
|
|
0 commit comments