blob: f9c956eeb4fc78ab7b72af63e6e19007d4abf5da (
about) (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package commitquery
import (
stderrors "errors"
commitgraphread "codeberg.org/lindenii/furgit/format/commitgraph/read"
)
// loadByOID populates one node from an object ID.
func (query *query) loadByOID(idx nodeIndex) error {
id := query.nodes[idx].id
if query.graph != nil {
pos, err := query.graph.Lookup(id)
if err != nil {
if _, ok := stderrors.AsType[*commitgraphread.NotFoundError](err); !ok {
return err
}
} else {
return query.loadCommitAtGraphPos(idx, pos)
}
}
commit, err := query.fetcher.ExactCommit(id)
if err != nil {
return err
}
parents := make([]parentRef, 0, len(commit.Object().Parents))
for _, parentID := range commit.Object().Parents {
parents = append(parents, parentRef{ID: parentID})
}
commitData := commitData{
ID: id,
Parents: parents,
CommitTime: commit.Object().Committer.WhenUnix,
}
return query.populateNode(idx, commitData)
}
|