MCPcopy Index your code
hub / github.com/go-git/go-git / getHaves

Function getHaves

remote.go:930–967  ·  view source on GitHub ↗
(
	localRefs []*plumbing.Reference,
	remoteRefStorer storer.ReferenceStorer,
	s storage.Storer,
	depth int,
)

Source from the content-addressed store, hash-verified

928}
929
930func getHaves(
931 localRefs []*plumbing.Reference,
932 remoteRefStorer storer.ReferenceStorer,
933 s storage.Storer,
934 depth int,
935) ([]plumbing.Hash, error) {
936 haves := map[plumbing.Hash]bool{}
937
938 // Build a map of all the remote references, to avoid loading too
939 // many parent commits for references we know don't need to be
940 // transferred.
941 remoteRefs, err := getRemoteRefsFromStorer(remoteRefStorer)
942 if err != nil {
943 return nil, err
944 }
945
946 for _, ref := range localRefs {
947 if haves[ref.Hash()] {
948 continue
949 }
950
951 if ref.Type() != plumbing.HashReference {
952 continue
953 }
954
955 err = getHavesFromRef(ref, remoteRefs, s, haves, depth)
956 if err != nil {
957 return nil, err
958 }
959 }
960
961 var result []plumbing.Hash
962 for h := range haves {
963 result = append(result, h)
964 }
965
966 return result, nil
967}
968
969const refspecAllTags = "+refs/tags/*:refs/tags/*"
970

Callers 2

TestGetHavesMethod · 0.85
fetchMethod · 0.85

Calls 4

getRemoteRefsFromStorerFunction · 0.85
getHavesFromRefFunction · 0.85
HashMethod · 0.65
TypeMethod · 0.65

Tested by 1

TestGetHavesMethod · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…