MCPcopy
hub / github.com/go-git/go-git / updateReferences

Method updateReferences

repository.go:1105–1139  ·  view source on GitHub ↗
(spec []config.RefSpec,
	resolvedRef *plumbing.Reference)

Source from the content-addressed store, hash-verified

1103}
1104
1105func (r *Repository) updateReferences(spec []config.RefSpec,
1106 resolvedRef *plumbing.Reference) (updated bool, err error) {
1107
1108 if !resolvedRef.Name().IsBranch() {
1109 // Detached HEAD mode
1110 h, err := r.resolveToCommitHash(resolvedRef.Hash())
1111 if err != nil {
1112 return false, err
1113 }
1114 head := plumbing.NewHashReference(plumbing.HEAD, h)
1115 return updateReferenceStorerIfNeeded(r.Storer, head)
1116 }
1117
1118 refs := []*plumbing.Reference{
1119 // Create local reference for the resolved ref
1120 resolvedRef,
1121 // Create local symbolic HEAD
1122 plumbing.NewSymbolicReference(plumbing.HEAD, resolvedRef.Name()),
1123 }
1124
1125 refs = append(refs, r.calculateRemoteHeadReference(spec, resolvedRef)...)
1126
1127 for _, ref := range refs {
1128 u, err := updateReferenceStorerIfNeeded(r.Storer, ref)
1129 if err != nil {
1130 return updated, err
1131 }
1132
1133 if u {
1134 updated = true
1135 }
1136 }
1137
1138 return
1139}
1140
1141func (r *Repository) calculateRemoteHeadReference(spec []config.RefSpec,
1142 resolvedHead *plumbing.Reference) []*plumbing.Reference {

Callers 1

Calls 8

resolveToCommitHashMethod · 0.95
NewHashReferenceFunction · 0.92
NewSymbolicReferenceFunction · 0.92
IsBranchMethod · 0.80
NameMethod · 0.65
HashMethod · 0.65

Tested by

no test coverage detected