code: func fetchAndReportToChan(allpointers []*lfs.WrappedPointer, filter *filepathfilter.Filter, out chan<- *lfs.WrappedPointer) bool {
  	ready, pointers, meter := readyAndMissingPointers(allpointers, filter)
  	q := newDownloadQueue(
  		getTransferManifestOperationRemote("download", cfg.Remote()),
  		cfg.Remote(), tq.WithProgress(meter),
  	)
  
  	if out != nil {
  		// If we already have it, or it won't be fetched
  		// report it to chan immediately to support pull/checkout
  		for _, p := range ready {
  			out <- p
  		}
  
  		dlwatch := q.Watch()
  
  		go func() {
  			// fetch only reports single OID, but OID *might* be referenced by multiple
  			// WrappedPointers if same content is at multiple paths, so map oid->slice
  			oidToPointers := make(map[string][]*lfs.WrappedPointer, len(pointers))
  			for _, pointer := range pointers {
  				plist := oidToPointers[pointer.Oid]
  				oidToPointers[pointer.Oid] = append(plist, pointer)
  			}
  
  			for t := range dlwatch {
  				plist, ok := oidToPointers[t.Oid]
  				if !ok {
  					continue
  				}
  				for _, p := range plist {
  					out <- p
  				}
  			}
  			close(out)
  		}()
  	}
  
  	for _, p := range pointers {
  		tracerx.Printf("fetch %v [%v]", p.Name, p.Oid)
  
  		q.Add(downloadTransfer(p))
  	}
  
  	processQueue := time.Now()
  	q.Wait()
  	tracerx.PerformanceSince("process queue", processQueue)
  
  	ok := true
  	for _, err := range q.Errors() {
  		ok = false
  		FullError(err)
  	}
  	return ok
  }
docs: // Fetch and report completion of each OID to a channel (optional, pass nil to skip)
  // Returns true if all completed with no errors, false if errors were written to stderr/log