(spec []config.RefSpec, resolvedRef *plumbing.Reference)
| 1103 | } |
| 1104 | |
| 1105 | func (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 | |
| 1141 | func (r *Repository) calculateRemoteHeadReference(spec []config.RefSpec, |
| 1142 | resolvedHead *plumbing.Reference) []*plumbing.Reference { |
no test coverage detected