MCPcopy
hub / github.com/git-lfs/git-lfs / SearchLocks

Method SearchLocks

locking/locks.go:213–240  ·  view source on GitHub ↗

SearchLocks returns a channel of locks which match the given name/value filter If limit > 0 then search stops at that number of locks If localOnly = true, don't query the server & report only own local locks

(filter map[string]string, limit int, localOnly bool, cached bool)

Source from the content-addressed store, hash-verified

211// If limit > 0 then search stops at that number of locks
212// If localOnly = true, don't query the server & report only own local locks
213func (c *Client) SearchLocks(filter map[string]string, limit int, localOnly bool, cached bool) ([]Lock, error) {
214 if localOnly {
215 return c.searchLocalLocks(filter, limit)
216 } else if cached {
217 if len(filter) > 0 || limit != 0 {
218 return []Lock{}, errors.New(tr.Tr.Get("can't search cached locks when filter or limit is set"))
219 }
220
221 locks := []Lock{}
222 err := c.readLocksFromCacheFile("remote", func(decoder *json.Decoder) error {
223 return decoder.Decode(&locks)
224 })
225 return locks, err
226 } else {
227 locks, err := c.searchRemoteLocks(filter, limit)
228 if err != nil {
229 return locks, err
230 }
231
232 if len(filter) == 0 && limit == 0 {
233 err = c.writeLocksToCacheFile("remote", func(writer io.Writer) error {
234 return c.EncodeLocks(locks, writer)
235 })
236 }
237
238 return locks, err
239 }
240}
241
242func (c *Client) SearchLocksVerifiable(limit int, cached bool) (ourLocks, theirLocks []Lock, err error) {
243 ourLocks = make([]Lock, 0, limit)

Callers 4

TestRemoteLocksWithCacheFunction · 0.95
TestRefreshCacheFunction · 0.95
locksCommandFunction · 0.80

Calls 7

searchLocalLocksMethod · 0.95
searchRemoteLocksMethod · 0.95
writeLocksToCacheFileMethod · 0.95
EncodeLocksMethod · 0.95
NewFunction · 0.92
GetMethod · 0.65

Tested by 2

TestRemoteLocksWithCacheFunction · 0.76
TestRefreshCacheFunction · 0.76