mirror of
https://github.com/dolthub/dolt.git
synced 2026-04-22 11:29:06 -05:00
go/store/types: SerialCommitParentRefs -> SerialCommitParentAddrs.
This commit is contained in:
@@ -415,28 +415,21 @@ func GetCommitParents(ctx context.Context, vr types.ValueReader, cv types.Value)
|
||||
if serial.GetFileID(data) != serial.CommitFileID {
|
||||
return nil, errors.New("GetCommitParents: provided value is not a commit.")
|
||||
}
|
||||
refs, err := types.SerialCommitParentRefs(vr.Format(), sm)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
hashes := make([]hash.Hash, len(refs))
|
||||
for i, r := range refs {
|
||||
hashes[i] = r.TargetHash()
|
||||
}
|
||||
vals, err := vr.ReadManyValues(ctx, hashes)
|
||||
addrs, err := types.SerialCommitParentAddrs(vr.Format(), sm)
|
||||
vals, err := vr.ReadManyValues(ctx, addrs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res := make([]*Commit, len(vals))
|
||||
for i, v := range vals {
|
||||
if v == nil {
|
||||
return nil, fmt.Errorf("GetCommitParents: Did not find parent Commit in ValueReader: %s", hashes[i].String())
|
||||
return nil, fmt.Errorf("GetCommitParents: Did not find parent Commit in ValueReader: %s", addrs[i].String())
|
||||
}
|
||||
csm := serial.GetRootAsCommit([]byte(v.(types.SerialMessage)), 0)
|
||||
res[i] = &Commit{
|
||||
val: v,
|
||||
height: csm.Height(),
|
||||
addr: hashes[i],
|
||||
addr: addrs[i],
|
||||
}
|
||||
}
|
||||
return res, nil
|
||||
|
||||
@@ -276,11 +276,15 @@ func (sm SerialMessage) walkRefs(nbf *NomsBinFormat, cb RefCallback) error {
|
||||
|
||||
return v.walkRefs(nbf, cb)
|
||||
case serial.CommitFileID:
|
||||
parents, err := SerialCommitParentRefs(nbf, sm)
|
||||
parents, err := SerialCommitParentAddrs(nbf, sm)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, r := range parents {
|
||||
for _, addr := range parents {
|
||||
r, err := constructRef(nbf, addr, PrimitiveTypeMap[ValueKind], SerialMessageRefHeight)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err = cb(r); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -299,19 +303,15 @@ func (sm SerialMessage) walkRefs(nbf *NomsBinFormat, cb RefCallback) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func SerialCommitParentRefs(nbf *NomsBinFormat, sm SerialMessage) ([]Ref, error) {
|
||||
func SerialCommitParentAddrs(nbf *NomsBinFormat, sm SerialMessage) ([]hash.Hash, error) {
|
||||
msg := serial.GetRootAsCommit([]byte(sm), 0)
|
||||
addrs := msg.ParentAddrsBytes()
|
||||
n := len(addrs) / 20
|
||||
ret := make([]Ref, n)
|
||||
ret := make([]hash.Hash, n)
|
||||
for i := 0; i < n; i++ {
|
||||
addr := hash.New(addrs[:20])
|
||||
addrs = addrs[20:]
|
||||
r, err := constructRef(nbf, addr, PrimitiveTypeMap[ValueKind], SerialMessageRefHeight)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ret[i] = r
|
||||
ret[i] = addr
|
||||
}
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user