aboutsummaryrefslogtreecommitdiff
path: root/ref/store/files/update_resolve_target.go
diff options
context:
space:
mode:
authorGravatar Runxi Yu2026-03-25 14:31:16 +0000
committerGravatar Runxi Yu2026-03-25 14:31:16 +0000
commit48ff647cf4a8bb8f23fcd6b8616f56a8ef72b980 (patch)
treeae199c38042adaa544d5f7d31351661d5831381e /ref/store/files/update_resolve_target.go
parent*: objectstore -> object/store (diff)
signatureNo signature
*: refstore -> ref/store
Diffstat (limited to 'ref/store/files/update_resolve_target.go')
-rw-r--r--ref/store/files/update_resolve_target.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/ref/store/files/update_resolve_target.go b/ref/store/files/update_resolve_target.go
new file mode 100644
index 00000000..7cfb9aa1
--- /dev/null
+++ b/ref/store/files/update_resolve_target.go
@@ -0,0 +1,21 @@
+package files
+
+import "fmt"
+
+func (executor *refUpdateExecutor) resolveQueuedUpdateTarget(op queuedUpdate) (resolvedUpdateTarget, error) {
+ switch op.kind {
+ case updateCreate:
+ return executor.resolveOrdinaryTarget(op.name, true)
+ case updateReplace, updateDelete, updateVerify:
+ return executor.resolveOrdinaryTarget(op.name, false)
+ case updateCreateSymbolic, updateReplaceSymbolic, updateDeleteSymbolic, updateVerifySymbolic:
+ refState, err := executor.directRead(op.name)
+ if err != nil {
+ return resolvedUpdateTarget{}, err
+ }
+
+ return resolvedUpdateTarget{name: op.name, loc: executor.store.loosePath(op.name), ref: refState}, nil
+ default:
+ return resolvedUpdateTarget{}, fmt.Errorf("refstore/files: unsupported update operation %d", op.kind)
+ }
+}