ref: 1556cfb51d980ae8c5bf664ad69f3abd46f02386
dir: /refstore/files/update_prepare_lock.go/
package files
import "slices"
func (executor *refUpdateExecutor) prepareUpdateLocks(prepared []preparedUpdate) error {
lockNames := make([]string, 0, len(prepared))
for _, item := range prepared {
lockNames = append(lockNames, updateTargetKey(item.target.loc))
}
slices.Sort(lockNames)
for _, lockKey := range lockNames {
lockPath := refPathFromKey(lockKey)
err := executor.createUpdateLock(lockPath)
if err != nil {
for _, item := range prepared {
if updateTargetKey(item.target.loc) == lockKey {
return wrapUpdateError(item.op.name, err)
}
}
return err
}
}
return nil
}