code: func catFileBatchCheck(revs *StringChannelWrapper, lockableSet *lockableNameSet) (*StringChannelWrapper, chan string, error) {
  	smallRevCh := make(chan string, chanBufSize)
  	lockableCh := make(chan string, chanBufSize)
  	errCh := make(chan error, 2) // up to 2 errors, one from each goroutine
  	if err := runCatFileBatchCheck(smallRevCh, lockableCh, lockableSet, revs, errCh); err != nil {
  		return nil, nil, err
  	}
  	return NewStringChannelWrapper(smallRevCh, errCh), lockableCh, nil
  }
docs: // catFileBatchCheck uses git cat-file --batch-check to get the type
  // and size of a git object. Any object that isn't of type blob and
  // under the blobSizeCutoff will be ignored. revs is a channel over
  // which strings containing git sha1s will be sent. It returns a channel
  // from which sha1 strings can be read.