Fast implementation of Git in pure Go
at master 30 lines 561 B view raw
1package mix 2 3import ( 4 "errors" 5 6 "codeberg.org/lindenii/furgit/objectstore" 7) 8 9// Refresh forwards refresh calls to refresh-capable backends. 10func (mix *Mix) Refresh() error { 11 mix.mu.RLock() 12 13 backends := make([]objectstore.Store, 0, len(mix.backendNodeByStore)) 14 for node := mix.backendHead; node != nil; node = node.next { 15 backends = append(backends, node.backend) 16 } 17 18 mix.mu.RUnlock() 19 20 var errs []error 21 22 for _, backend := range backends { 23 err := backend.Refresh() 24 if err != nil { 25 errs = append(errs, err) 26 } 27 } 28 29 return errors.Join(errs...) 30}