in git-codereview/pending.go [34:79]
func (b *pendingBranch) load() {
b.loadPending()
if !b.current && b.commitsAhead == 0 {
// Won't be displayed, don't bother looking any closer.
return
}
b.OriginBranch() // cache result
if b.current {
b.staged, b.unstaged, b.untracked = LocalChanges()
}
var changeIDs []string
var commits []*Commit
for _, c := range b.Pending() {
c.committed = ListFiles(c)
if c.ChangeID == "" {
c.gerr = fmt.Errorf("missing Change-Id in commit message")
} else {
changeIDs = append(changeIDs, fullChangeID(b.Branch, c))
commits = append(commits, c)
}
}
if !pendingLocal {
gs, err := b.GerritChanges(changeIDs, "DETAILED_LABELS", "CURRENT_REVISION", "MESSAGES", "DETAILED_ACCOUNTS")
if len(gs) != len(commits) && err == nil {
err = fmt.Errorf("invalid response from Gerrit server - %d queries but %d results", len(changeIDs), len(gs))
}
if err != nil {
for _, c := range commits {
if c.gerr != nil {
c.gerr = err
}
}
} else {
for i, c := range commits {
if len(gs[i]) == 1 {
c.g = gs[i][0]
}
}
}
}
for _, c := range b.Pending() {
if c.g == nil {
c.g = new(GerritChange) // easier for formatting code
}
}
}