@paradigma-inc/flywheel 0.2.61 → 0.2.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/flywheel-repo/references/repository-commands.md +2 -2
- package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js +19 -2
- package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-graph.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js +94 -42
- package/src/runtime/vendor/flywheel-cli-dist/commands/hosted-repository-snapshot.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js +23 -15
- package/src/runtime/vendor/flywheel-cli-dist/commands/registry/repository.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js +20 -27
- package/src/runtime/vendor/flywheel-cli-dist/commands/repository-edit.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js +72 -0
- package/src/runtime/vendor/flywheel-cli-dist/commands/repository-output.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/commands/types.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js +55 -49
- package/src/runtime/vendor/flywheel-cli-dist/local/adapter.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/models/tags.js +3 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/models/tags.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflict-view.js +288 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflict-view.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js +162 -11
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/conflicts.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js +95 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/edge-restoration.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js +351 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/graph-membership.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/local-replay.js +6 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/local-replay.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js +26 -18
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pull.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-artifacts.js +126 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-artifacts.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-state.js +412 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/pulled-state.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay-walk.js +107 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay-walk.js.map +1 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js +139 -130
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/replay.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js +245 -5
- package/src/runtime/vendor/flywheel-cli-dist/local/domain/rebase/resolve.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js +33 -3
- package/src/runtime/vendor/flywheel-cli-dist/local/fs/writer-lock.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js +14 -15
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/dispatch.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/conflicts.js +4 -9
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/operations/conflicts.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js +52 -9
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/recover-departed.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js +12 -19
- package/src/runtime/vendor/flywheel-cli-dist/local/runtime/snapshot-diff.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js +85 -13
- package/src/runtime/vendor/flywheel-cli-dist/local/store/pending.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/artifacts.js +2 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/artifacts.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/tags.js +4 -2
- package/src/runtime/vendor/flywheel-cli-dist/local/store/projection/tags.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js +7 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/hosted.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js +5 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/store/snapshot/schema.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js +5 -0
- package/src/runtime/vendor/flywheel-cli-dist/local/store/sqlite/errors.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js +29 -9
- package/src/runtime/vendor/flywheel-cli-dist/local/store/sync.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js +1 -4
- package/src/runtime/vendor/flywheel-cli-dist/local/store/workspace.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/main.js +1 -3
- package/src/runtime/vendor/flywheel-cli-dist/main.js.map +1 -1
- package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/src/runtime/vendor/flywheel-cli-dist/prebuilds/darwin-x64/node.napi.node +0 -0
- package/src/runtime/vendor/manifest.json +15 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { RepositoryOperation } from "../models/operations.js";
|
|
3
|
+
import { localOperationNodeIds } from "../models/operation-identity.js";
|
|
4
|
+
import { edgeDependency, removedEdges, restoredEdgeOperation } from "./edge-restoration.js";
|
|
5
|
+
import { operationKey } from "./keys.js";
|
|
6
|
+
import { PulledState } from "./pulled-state.js";
|
|
7
|
+
/** The resolution recorded for `key`, if any. */
|
|
8
|
+
export function resolutionFor(resolutions, key) {
|
|
9
|
+
for (const [candidate, resolution] of resolutions) {
|
|
10
|
+
if (candidate.length === key.length && candidate.every((value, index) => value === key[index]))
|
|
11
|
+
return resolution;
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
/** Nodes whose departure to another repository was accepted with a remote choice. */
|
|
16
|
+
export function remoteDepartureNodeIds(resolutions) {
|
|
17
|
+
const nodeIds = new Set();
|
|
18
|
+
for (const [key, [strategy]] of resolutions) {
|
|
19
|
+
if (key.length === 3 && key[0] === "departure" && strategy === "remote")
|
|
20
|
+
nodeIds.add(key[1]);
|
|
21
|
+
}
|
|
22
|
+
return nodeIds;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Walks the local operations in order, one `steps` call per operation, keeping
|
|
26
|
+
* the pulled lifecycle, tag, containment, edge, and artifact reference state
|
|
27
|
+
* up to date with every operation the walk lets through.
|
|
28
|
+
*/
|
|
29
|
+
export class ReplayWalk {
|
|
30
|
+
#input;
|
|
31
|
+
#departed;
|
|
32
|
+
#restorations;
|
|
33
|
+
#pending;
|
|
34
|
+
#discarded;
|
|
35
|
+
#discardedArtifacts = new Set();
|
|
36
|
+
/** The pulled state after every operation the walk has let through so far. */
|
|
37
|
+
state;
|
|
38
|
+
constructor(input) {
|
|
39
|
+
this.#input = input;
|
|
40
|
+
this.#departed = remoteDepartureNodeIds(input.resolutions);
|
|
41
|
+
const removed = removedEdges(input.resolutions, input.remoteTables, input.localTables, input.localCommitsNewestFirst, input.rebaseId);
|
|
42
|
+
this.#restorations = removed.restorations;
|
|
43
|
+
this.#pending = new Map(removed.restorations);
|
|
44
|
+
this.#discarded = removed.discarded;
|
|
45
|
+
this.state = new PulledState(input.remoteTables, input.repositoryId, input.departures);
|
|
46
|
+
}
|
|
47
|
+
/** The steps of every operation in `commit`, in order. */
|
|
48
|
+
*commitSteps(commit) {
|
|
49
|
+
for (const operation of commit.operations)
|
|
50
|
+
yield* this.steps(operation);
|
|
51
|
+
}
|
|
52
|
+
/** What replay does with `operation`, the next local operation in order. */
|
|
53
|
+
*steps(operation) {
|
|
54
|
+
const { graphMembership, resolutions } = this.#input;
|
|
55
|
+
for (const inserted of graphMembership.insertBefore.get(operation.operationId) ?? []) {
|
|
56
|
+
const restored = RepositoryOperation.fromMapping({ ...inserted, operation_id: randomUUID() });
|
|
57
|
+
this.state.apply(restored);
|
|
58
|
+
yield { kind: "inserted", operation: restored, original: operation };
|
|
59
|
+
}
|
|
60
|
+
if (graphMembership.drop.has(operation.operationId))
|
|
61
|
+
return;
|
|
62
|
+
if (localOperationNodeIds(operation).some(nodeId => this.#departed.has(nodeId)))
|
|
63
|
+
return;
|
|
64
|
+
const edgeId = edgeDependency(operation);
|
|
65
|
+
const artifactId = operation.type.startsWith("artifact.") ? operation.payload.artifact_id : undefined;
|
|
66
|
+
if (edgeId !== undefined && this.#discarded.has(edgeId)) {
|
|
67
|
+
if (artifactId !== undefined)
|
|
68
|
+
this.#discardedArtifacts.add(artifactId);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
// An artifact that only a discarded edge attachment created does not exist for later local operations,
|
|
72
|
+
// so they are skipped until a kept attachment replays: an attach carries the artifact's object and
|
|
73
|
+
// properties and creates it when absent (store/projection/artifacts.ts).
|
|
74
|
+
if (artifactId !== undefined && this.#discardedArtifacts.has(artifactId) && !this.state.hasArtifact(artifactId) &&
|
|
75
|
+
operation.type !== "artifact.attach.v1" && operation.type !== "artifact.attach.v2")
|
|
76
|
+
return;
|
|
77
|
+
const resolution = resolutionFor(resolutions, operationKey(operation));
|
|
78
|
+
if (resolution?.[0] === "remote")
|
|
79
|
+
return;
|
|
80
|
+
const restoration = edgeId === undefined ? undefined : this.#pending.get(edgeId);
|
|
81
|
+
if (restoration !== undefined) {
|
|
82
|
+
this.#pending.delete(restoration.edgeId);
|
|
83
|
+
const restored = restoredEdgeOperation(restoration, randomUUID());
|
|
84
|
+
const planned = this.state.plan(restored);
|
|
85
|
+
if (planned.action === "refuse") {
|
|
86
|
+
yield { kind: "refused", original: operation, resolution, problem: planned.problem, details: planned.details, restoration };
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
this.state.apply(restored);
|
|
90
|
+
yield { kind: "restored", restoration, operation: restored, original: operation };
|
|
91
|
+
}
|
|
92
|
+
// The restoration carries the first local content edit.
|
|
93
|
+
if (edgeId !== undefined && this.#restorations.get(edgeId)?.firstEdit.operation.operationId === operation.operationId)
|
|
94
|
+
return;
|
|
95
|
+
const planned = this.state.plan(operation);
|
|
96
|
+
if (planned.action === "drop")
|
|
97
|
+
return;
|
|
98
|
+
if (planned.action === "refuse") {
|
|
99
|
+
yield { kind: "refused", original: operation, resolution, problem: planned.problem, details: planned.details };
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const { rewrite } = planned;
|
|
103
|
+
this.state.apply(rewrite === undefined ? operation : RepositoryOperation.fromMapping({ ...operation.toMapping(), ...rewrite }));
|
|
104
|
+
yield { kind: "kept", original: operation, resolution, rewrite };
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=replay-walk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-walk.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/replay-walk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,qBAAqB,EAAwB,MAAM,uBAAuB,CAAC;AAElH,OAAO,EAAE,YAAY,EAAqB,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AA2ChD,iDAAiD;AACjD,MAAM,UAAU,aAAa,CAAC,WAA0D,EAAE,GAAiB;IACzG,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC;QAClD,IAAI,SAAS,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,UAAU,CAAC;IACpH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,sBAAsB,CAAC,WAA0D;IAC/F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5C,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACZ,MAAM,CAAkB;IACxB,SAAS,CAAsB;IAC/B,aAAa,CAAuC;IACpD,QAAQ,CAA+B;IACvC,UAAU,CAAsB;IAChC,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,8EAA8E;IACrE,KAAK,CAAc;IAE5B,YAAY,KAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtI,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IACzF,CAAC;IAED,0DAA0D;IAC1D,CAAC,WAAW,CAAC,MAAwB;QACnC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,UAAU;YAAE,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,4EAA4E;IAC5E,CAAC,KAAK,CAAC,SAA8B;QACnC,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACrD,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YACrF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;YAC9F,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC;YAAE,OAAO;QAC5D,IAAI,qBAAqB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAAE,OAAO;QACxF,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,WAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;QAChH,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,IAAI,UAAU,KAAK,SAAS;gBAAE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QACD,uGAAuG;QACvG,mGAAmG;QACnG,yEAAyE;QACzE,IAAI,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC;YAC7G,SAAS,CAAC,IAAI,KAAK,oBAAoB,IAAI,SAAS,CAAC,IAAI,KAAK,oBAAoB;YAAE,OAAO;QAC7F,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO;QACzC,MAAM,WAAW,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;gBAC5H,OAAO;YACT,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACpF,CAAC;QACD,wDAAwD;QACxD,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,WAAW;YAAE,OAAO;QAC9H,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;YAC/G,OAAO;QACT,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;QAChI,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACnE,CAAC;CACF"}
|
|
@@ -3,18 +3,23 @@ import { RepositoryServiceError } from "../errors.js";
|
|
|
3
3
|
import { isRecord, isUuid } from "../models/constants.js";
|
|
4
4
|
import { RepositoryCommit } from "../models/commits.js";
|
|
5
5
|
import { RepositoryOperation } from "../models/operations.js";
|
|
6
|
-
import {
|
|
6
|
+
import { foldArtifactPropertiesOperation, legacyArtifactMetadata, legacyArtifactProperties, parseArtifactProperties } from "../models/artifact-properties.js";
|
|
7
7
|
import { parseRepositoryJson, valueDigest } from "../models/encoding.js";
|
|
8
8
|
import { artifactDigests, latestStateDigests } from "../service/writes.js";
|
|
9
9
|
import { LatestValueWrite } from "../../store/contract.js";
|
|
10
10
|
import { latestValueWrites } from "../../store/latest-values.js";
|
|
11
|
-
import {
|
|
11
|
+
import { pulledSnapshotTables } from "../../store/snapshot/hosted.js";
|
|
12
|
+
import { operationFailureMessage } from "../models/operation-identity.js";
|
|
12
13
|
import { snapshotLatestValue } from "../../store/sync-commits.js";
|
|
14
|
+
import { RepositoryStoreError } from "../../store/sqlite/errors.js";
|
|
13
15
|
import { snapshotTables } from "../../store/snapshot/validate.js";
|
|
14
|
-
import { conflictContext, conflictResolutionByKey } from "./conflicts.js";
|
|
16
|
+
import { conflictContext, conflictResolutionByKey, conflictsForContext, graphMembershipReplayPlan, recheckConflicts, resolutionDigest } from "./conflicts.js";
|
|
15
17
|
import { RepositoryRebaseError } from "./context.js";
|
|
18
|
+
import { restoreRefusal } from "./edge-restoration.js";
|
|
19
|
+
import { NO_GRAPH_MEMBERSHIP_PLAN } from "./graph-membership.js";
|
|
16
20
|
import { operationKey } from "./keys.js";
|
|
17
|
-
import { pullBatch } from "./pull.js";
|
|
21
|
+
import { extendRebaseContext, pullBatch } from "./pull.js";
|
|
22
|
+
import { ReplayWalk } from "./replay-walk.js";
|
|
18
23
|
function commitTimestamp(clock) {
|
|
19
24
|
const value = clock();
|
|
20
25
|
if (!(value instanceof Date) || Number.isNaN(value.valueOf()))
|
|
@@ -25,19 +30,62 @@ export async function continueRebase(store, repositoryId, operationId, rebaseId,
|
|
|
25
30
|
if (!isUuid(operationId))
|
|
26
31
|
throw new RepositoryServiceError("operation_id must be UUIDv4");
|
|
27
32
|
const workspace = await store.loadWorkspace(repositoryId);
|
|
28
|
-
requireRebase(workspace, rebaseId, expectedHead);
|
|
29
|
-
|
|
33
|
+
const rebase = requireRebase(workspace, rebaseId, expectedHead);
|
|
34
|
+
const saved = savedRebaseContext(workspace);
|
|
35
|
+
const context = await extendRebaseContext(store, workspace, saved);
|
|
36
|
+
let conflicts = workspace.conflicts;
|
|
37
|
+
if (context !== saved) {
|
|
38
|
+
// Commits made while the rebase was open may touch what the remote side changed.
|
|
39
|
+
const rechecked = recheckConflicts(conflicts, conflictsForContext(repositoryId, rebaseId, context));
|
|
40
|
+
conflicts = rechecked.conflicts;
|
|
41
|
+
if (rechecked.dropped.length > 0) {
|
|
42
|
+
const conflictIds = rechecked.dropped.map((conflict) => conflict.conflictId);
|
|
43
|
+
throw new RepositoryServiceError(`Commits made while this rebase was open removed what conflict(s) ${conflictIds.join(", ")} were about, so their recorded choices can no longer be applied; the rebase was not continued and nothing changed.`, {
|
|
44
|
+
code: "repository_rebase_conflicts_dropped",
|
|
45
|
+
details: { rebase_id: rebaseId, conflict_ids: conflictIds },
|
|
46
|
+
nextAction: "Run flywheel repo:rebase:abort, which keeps every local commit and pending edit, then run flywheel repo:pull again so the conflicts are computed from the current history.",
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// A new or reopened conflict needs a resolution before replay.
|
|
50
|
+
if (rechecked.changed) {
|
|
51
|
+
const resolving = conflicts.some((conflict) => conflict.state === "resolved");
|
|
52
|
+
await store.applyWorkspaceAtomic({
|
|
53
|
+
repositoryId,
|
|
54
|
+
expectedLocalHeadCommitId: workspace.localHeadCommitId,
|
|
55
|
+
validateStaging: false,
|
|
56
|
+
expectedStaging: workspace.staging,
|
|
57
|
+
expectedRebase: workspace.rebase,
|
|
58
|
+
expectedConflicts: workspace.conflicts,
|
|
59
|
+
staging: workspace.staging,
|
|
60
|
+
rebase: {
|
|
61
|
+
...rebase,
|
|
62
|
+
state: resolving ? "resolving" : "open", pendingResolutionDigest: resolving ? resolutionDigest(conflicts) : null,
|
|
63
|
+
},
|
|
64
|
+
conflicts,
|
|
65
|
+
});
|
|
66
|
+
return { repositoryId, rebaseId, head: workspace.localHeadCommitId, state: "open" };
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const open = conflicts.filter((conflict) => conflict.state === "open").length;
|
|
70
|
+
if (open > 0) {
|
|
71
|
+
throw new RepositoryServiceError(`${open} rebase conflict(s) still need a resolution; the rebase was not continued and nothing changed.`, {
|
|
72
|
+
code: "repository_conflicts_unresolved",
|
|
73
|
+
details: { rebase_id: rebaseId, open_conflict_count: open },
|
|
74
|
+
nextAction: "Run flywheel repo:conflicts:list, resolve each open conflict with flywheel repo:conflicts:resolve, then run flywheel repo:rebase:continue again.",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
30
77
|
let resolutions;
|
|
78
|
+
let graphMembership;
|
|
31
79
|
try {
|
|
32
|
-
|
|
33
|
-
|
|
80
|
+
resolutions = conflictResolutionByKey(conflicts);
|
|
81
|
+
graphMembership = graphMembershipReplayPlan(conflicts, () => context);
|
|
34
82
|
}
|
|
35
83
|
catch (error) {
|
|
36
84
|
if (error instanceof RepositoryRebaseError)
|
|
37
85
|
throw new RepositoryServiceError(error.message, { cause: error });
|
|
38
86
|
throw error;
|
|
39
87
|
}
|
|
40
|
-
const rebased = rebaseLocalCommits(context.localCommits, context.targetHead, rebaseId, resolutions, clock, context.remoteSnapshot, await loadRebaseLatestValues(store, repositoryId, context.localCommits), context.localSnapshot);
|
|
88
|
+
const rebased = rebaseLocalCommits(context.localCommits, context.targetHead, rebaseId, resolutions, clock, context.remoteSnapshot, await loadRebaseLatestValues(store, repositoryId, context.localCommits), context.localSnapshot, graphMembership);
|
|
41
89
|
const result = await store.applyAtomic(pullBatch({
|
|
42
90
|
mode: "continue", workspace, context,
|
|
43
91
|
commits: [...context.remoteCommits, ...rebased.commits],
|
|
@@ -47,20 +95,22 @@ export async function continueRebase(store, repositoryId, operationId, rebaseId,
|
|
|
47
95
|
}));
|
|
48
96
|
return { repositoryId, rebaseId, head: result.head.commitId, state: "continued" };
|
|
49
97
|
}
|
|
50
|
-
|
|
51
|
-
if (!isUuid(operationId))
|
|
52
|
-
throw new RepositoryServiceError("operation_id must be UUIDv4");
|
|
53
|
-
const workspace = await store.loadWorkspace(repositoryId);
|
|
54
|
-
requireRebase(workspace, rebaseId, expectedHead);
|
|
55
|
-
let context;
|
|
98
|
+
function savedRebaseContext(workspace) {
|
|
56
99
|
try {
|
|
57
|
-
|
|
100
|
+
return conflictContext(workspace.conflicts);
|
|
58
101
|
}
|
|
59
102
|
catch (error) {
|
|
60
103
|
if (error instanceof RepositoryRebaseError)
|
|
61
104
|
throw new RepositoryServiceError(error.message, { cause: error });
|
|
62
105
|
throw error;
|
|
63
106
|
}
|
|
107
|
+
}
|
|
108
|
+
export async function abortRebase(store, repositoryId, operationId, rebaseId, expectedHead) {
|
|
109
|
+
if (!isUuid(operationId))
|
|
110
|
+
throw new RepositoryServiceError("operation_id must be UUIDv4");
|
|
111
|
+
const workspace = await store.loadWorkspace(repositoryId);
|
|
112
|
+
requireRebase(workspace, rebaseId, expectedHead);
|
|
113
|
+
const context = savedRebaseContext(workspace);
|
|
64
114
|
const actorId = context.localCommits.at(-1)?.authorId;
|
|
65
115
|
if (actorId === undefined)
|
|
66
116
|
throw new RepositoryServiceError("repository rebase is corrupt");
|
|
@@ -74,38 +124,7 @@ export function requireRebase(workspace, rebaseId, expectedHead) {
|
|
|
74
124
|
if (workspace.rebase === null || workspace.rebase.rebaseId !== rebaseId || workspace.localHeadCommitId !== expectedHead) {
|
|
75
125
|
throw new RepositoryServiceError("repository_rebase_id_mismatch", { code: "repository_rebase_id_mismatch" });
|
|
76
126
|
}
|
|
77
|
-
|
|
78
|
-
function referenceSetsFromSnapshot(snapshot) {
|
|
79
|
-
try {
|
|
80
|
-
const projection = parseRepositoryJson(Buffer.from(snapshot.canonicalBytes).toString("utf8"));
|
|
81
|
-
const rows = isRecord(projection) && isRecord(projection.tables)
|
|
82
|
-
? projection.tables.repository_artifact_references
|
|
83
|
-
: isRecord(projection) && (projection.format === "flywheel.repository.projection.v1" || projection.format === "flywheel.repository.projection.v2" ||
|
|
84
|
-
projection.format === "flywheel.repository.projection.v3" || projection.format === "flywheel.repository.projection.v4")
|
|
85
|
-
? projection.artifact_references : (() => { throw new Error(); })();
|
|
86
|
-
const sets = new Map();
|
|
87
|
-
for (const row of rows) {
|
|
88
|
-
const value = Array.isArray(row)
|
|
89
|
-
? { artifact_id: row[1], owner_type: row[2], owner_id: row[3], order: row[6] }
|
|
90
|
-
: isRecord(row)
|
|
91
|
-
? { artifact_id: row.artifact_id, owner_type: row.owner_kind, owner_id: row.owner_id, order: row.reference_order }
|
|
92
|
-
: null;
|
|
93
|
-
if (value === null || !isUuid(value.artifact_id) || (value.owner_type !== "node" && value.owner_type !== "edge") ||
|
|
94
|
-
!isUuid(value.owner_id) || (typeof value.order !== "number" && typeof value.order !== "bigint") ||
|
|
95
|
-
(typeof value.order === "number" && (!Number.isSafeInteger(value.order) || value.order < 0)) || value.order < 0)
|
|
96
|
-
throw new Error();
|
|
97
|
-
const owners = sets.get(value.artifact_id) ?? new Map();
|
|
98
|
-
const key = `${value.owner_type}\u0000${value.owner_id}`;
|
|
99
|
-
if (owners.has(key))
|
|
100
|
-
throw new Error();
|
|
101
|
-
owners.set(key, value.order);
|
|
102
|
-
sets.set(value.artifact_id, owners);
|
|
103
|
-
}
|
|
104
|
-
return sets;
|
|
105
|
-
}
|
|
106
|
-
catch (error) {
|
|
107
|
-
throw new RepositoryServiceError("remote artifact references are invalid", { cause: error });
|
|
108
|
-
}
|
|
127
|
+
return workspace.rebase;
|
|
109
128
|
}
|
|
110
129
|
function artifactPropertiesFromSnapshot(snapshot) {
|
|
111
130
|
try {
|
|
@@ -138,31 +157,15 @@ function artifactPropertiesFromSnapshot(snapshot) {
|
|
|
138
157
|
throw new RepositoryServiceError("remote artifact properties are invalid", { cause: error });
|
|
139
158
|
}
|
|
140
159
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
if (operation.type === "artifact.attach.v1" || operation.type === "artifact.attach.v2") {
|
|
144
|
-
const owner = payload.owner;
|
|
145
|
-
if (!isRecord(owner) || !isUuid(payload.artifact_id) || !isUuid(owner.owner_id) ||
|
|
146
|
-
(owner.owner_type !== "node" && owner.owner_type !== "edge") ||
|
|
147
|
-
(typeof payload.order !== "number" && typeof payload.order !== "bigint")) {
|
|
148
|
-
throw new RepositoryServiceError("local artifact reference is invalid");
|
|
149
|
-
}
|
|
150
|
-
const owners = referenceSets.get(payload.artifact_id) ?? new Map();
|
|
151
|
-
owners.set(`${owner.owner_type}\u0000${owner.owner_id}`, payload.order);
|
|
152
|
-
referenceSets.set(payload.artifact_id, owners);
|
|
153
|
-
}
|
|
154
|
-
else if (operation.type === "artifact.detach.v1") {
|
|
155
|
-
const owner = payload.owner;
|
|
156
|
-
if (!isRecord(owner) || !isUuid(payload.artifact_id) || !isUuid(owner.owner_id) ||
|
|
157
|
-
(owner.owner_type !== "node" && owner.owner_type !== "edge"))
|
|
158
|
-
throw new RepositoryServiceError("local artifact reference is invalid");
|
|
159
|
-
referenceSets.get(payload.artifact_id)?.delete(`${owner.owner_type}\u0000${owner.owner_id}`);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
function latestTarget(operation) {
|
|
160
|
+
/** The latest-value field an operation writes, with the digest of its new value. */
|
|
161
|
+
export function latestTarget(operation) {
|
|
163
162
|
const payload = operation.payload;
|
|
164
163
|
if (operation.type === "node.field.set.v1")
|
|
165
164
|
return ["node", payload.node_id, payload.field, payload.new_digest];
|
|
165
|
+
if (operation.type === "artifact.attach.v2")
|
|
166
|
+
return ["artifact", payload.artifact_id, "properties", payload.properties_digest];
|
|
167
|
+
if (operation.type === "edge.add.v1")
|
|
168
|
+
return ["edge", payload.edge_id, "content", payload.content_digest];
|
|
166
169
|
if (operation.type === "edge.field.set.v1")
|
|
167
170
|
return ["edge", payload.edge_id, "content", payload.new_digest];
|
|
168
171
|
if (operation.type === "artifact.metadata.set.v1")
|
|
@@ -171,29 +174,80 @@ function latestTarget(operation) {
|
|
|
171
174
|
return ["artifact", payload.artifact_id, "properties", payload.new_digest];
|
|
172
175
|
return undefined;
|
|
173
176
|
}
|
|
174
|
-
|
|
177
|
+
/**
|
|
178
|
+
* The latest values an original local operation recorded, recovered from the
|
|
179
|
+
* local snapshot when its commit kept none. An attachment's properties text is
|
|
180
|
+
* only needed when the attachment creates the artifact, which the store checks,
|
|
181
|
+
* so an attachment whose text is gone replays without it.
|
|
182
|
+
*/
|
|
183
|
+
export function localWrites(operation, originalWrites, localTables) {
|
|
184
|
+
if (originalWrites?.size === 0) {
|
|
185
|
+
const target = latestTarget(operation);
|
|
186
|
+
if (!target)
|
|
187
|
+
return new Map();
|
|
188
|
+
try {
|
|
189
|
+
const value = snapshotLatestValue(localTables(), ...target);
|
|
190
|
+
const write = LatestValueWrite.fromMapping({
|
|
191
|
+
owner_type: target[0], owner_id: target[1], field: target[2], value, value_digest: target[3],
|
|
192
|
+
});
|
|
193
|
+
return new Map([[JSON.stringify(write.key), write]]);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (error instanceof RepositoryStoreError && operation.type === "artifact.attach.v2")
|
|
197
|
+
return new Map();
|
|
198
|
+
const reason = error instanceof Error ? error.message : "local rebase latest value is unavailable";
|
|
199
|
+
throw new RepositoryServiceError(operationFailureMessage(operation, reason), { cause: error });
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const writes = originalWrites?.get(operation.operationId);
|
|
203
|
+
if (writes === undefined) {
|
|
204
|
+
throw new RepositoryServiceError(operationFailureMessage(operation, "original operation latest values are missing"));
|
|
205
|
+
}
|
|
206
|
+
return writes;
|
|
207
|
+
}
|
|
208
|
+
export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId, resolutions, clock, remoteSnapshot, localLatestValues, localSnapshot, graphMembership = NO_GRAPH_MEMBERSHIP_PLAN) {
|
|
175
209
|
let parent = targetHead;
|
|
176
210
|
const commits = [];
|
|
177
211
|
const latestValuesByCommit = [];
|
|
212
|
+
const sources = new Map();
|
|
178
213
|
let localTables;
|
|
214
|
+
const loadLocalTables = () => localTables ??= snapshotTables(localSnapshot);
|
|
179
215
|
const fieldResolutionHeads = new Map();
|
|
180
|
-
const referenceSets = referenceSetsFromSnapshot(remoteSnapshot);
|
|
181
216
|
const artifactProperties = artifactPropertiesFromSnapshot(remoteSnapshot);
|
|
182
|
-
const
|
|
217
|
+
const walk = new ReplayWalk({
|
|
218
|
+
localCommitsNewestFirst, resolutions, graphMembership, repositoryId: remoteSnapshot.repositoryId,
|
|
219
|
+
remoteTables: pulledSnapshotTables(remoteSnapshot), localTables: loadLocalTables, rebaseId,
|
|
220
|
+
});
|
|
183
221
|
for (const original of [...localCommitsNewestFirst].reverse()) {
|
|
184
222
|
const originalWrites = localLatestValues.get(original.commitId);
|
|
185
223
|
const serializedWrites = [];
|
|
186
224
|
const operations = [];
|
|
187
|
-
for (const
|
|
188
|
-
if (
|
|
225
|
+
for (const step of walk.commitSteps(original)) {
|
|
226
|
+
if (step.kind === "inserted") {
|
|
227
|
+
operations.push(step.operation);
|
|
228
|
+
sources.set(step.operation.operationId, step.original);
|
|
229
|
+
continue;
|
|
230
|
+
}
|
|
231
|
+
if (step.kind === "refused") {
|
|
232
|
+
throw step.restoration === undefined
|
|
233
|
+
? new RepositoryServiceError(operationFailureMessage(step.original, step.problem))
|
|
234
|
+
: restoreRefusal(step.restoration.edgeId, rebaseId, step.problem, step.details);
|
|
235
|
+
}
|
|
236
|
+
if (step.kind === "restored") {
|
|
237
|
+
const { commit, operation: firstEdit } = step.restoration.firstEdit;
|
|
238
|
+
operations.push(step.operation);
|
|
239
|
+
sources.set(step.operation.operationId, step.original);
|
|
240
|
+
for (const write of localWrites(firstEdit, localLatestValues.get(commit.commitId), loadLocalTables).values()) {
|
|
241
|
+
serializedWrites.push(write.canonicalBytes);
|
|
242
|
+
}
|
|
243
|
+
fieldResolutionHeads.set(JSON.stringify(["edge", step.restoration.edgeId]), firstEdit.payload.new_digest);
|
|
189
244
|
continue;
|
|
245
|
+
}
|
|
246
|
+
const { original: operation, resolution, rewrite } = step;
|
|
190
247
|
const key = operationKey(operation);
|
|
191
|
-
const resolution = resolutionFor(resolutions, key);
|
|
192
248
|
const [strategy, manualValue, remoteDigest] = resolution ?? ["local", null, null];
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const mapping = { ...operation.toMapping(), operation_id: randomUUID() };
|
|
196
|
-
let writes = originalWrites?.get(operation.operationId);
|
|
249
|
+
const mapping = { ...operation.toMapping(), ...rewrite, operation_id: randomUUID() };
|
|
250
|
+
let writes;
|
|
197
251
|
if (strategy === "manual") {
|
|
198
252
|
if (manualValue === null)
|
|
199
253
|
throw new RepositoryServiceError("manual conflict value is missing");
|
|
@@ -206,6 +260,9 @@ export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId
|
|
|
206
260
|
});
|
|
207
261
|
writes = new Map([[JSON.stringify(write.key), write]]);
|
|
208
262
|
}
|
|
263
|
+
else {
|
|
264
|
+
writes = localWrites(operation, originalWrites, loadLocalTables);
|
|
265
|
+
}
|
|
209
266
|
if (resolution !== undefined && (strategy === "local" || strategy === "manual")) {
|
|
210
267
|
if (operation.type === "artifact.properties.set.v1") {
|
|
211
268
|
const current = artifactProperties.get(operation.payload.artifact_id);
|
|
@@ -231,45 +288,12 @@ export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId
|
|
|
231
288
|
throw new RepositoryServiceError("field conflict new digest is invalid");
|
|
232
289
|
fieldResolutionHeads.set(JSON.stringify(key), mapping[newName]);
|
|
233
290
|
}
|
|
234
|
-
if (Object.hasOwn(mapping, "expected_reference_digest")) {
|
|
235
|
-
const artifactId = mapping.artifact_id;
|
|
236
|
-
if (typeof artifactId !== "string")
|
|
237
|
-
throw new RepositoryServiceError("artifact conflict reference is invalid");
|
|
238
|
-
const references = referenceSets.get(artifactId) ?? new Map();
|
|
239
|
-
mapping.expected_reference_digest = artifactReferenceSetDigest([...references.entries()].map(([owner, order]) => {
|
|
240
|
-
const [owner_type, owner_id] = owner.split("\u0000");
|
|
241
|
-
return { owner_type: owner_type, owner_id, order };
|
|
242
|
-
}));
|
|
243
|
-
}
|
|
244
291
|
}
|
|
245
292
|
const rebased = RepositoryOperation.fromMapping(mapping);
|
|
246
|
-
if (strategy !== "manual" && originalWrites?.size === 0) {
|
|
247
|
-
const target = latestTarget(rebased);
|
|
248
|
-
if (target) {
|
|
249
|
-
try {
|
|
250
|
-
localTables ??= snapshotTables(localSnapshot);
|
|
251
|
-
const value = snapshotLatestValue(localTables, ...target);
|
|
252
|
-
const write = LatestValueWrite.fromMapping({
|
|
253
|
-
owner_type: target[0], owner_id: target[1], field: target[2], value, value_digest: target[3],
|
|
254
|
-
});
|
|
255
|
-
writes = new Map([[JSON.stringify(write.key), write]]);
|
|
256
|
-
}
|
|
257
|
-
catch (error) {
|
|
258
|
-
const reason = error instanceof Error ? error.message : "local rebase latest value is unavailable";
|
|
259
|
-
throw new RepositoryServiceError(operationFailureMessage(operation, reason), { cause: error });
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
writes = new Map();
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
if (writes === undefined) {
|
|
267
|
-
throw new RepositoryServiceError(operationFailureMessage(operation, "original operation latest values are missing"));
|
|
268
|
-
}
|
|
269
293
|
operations.push(rebased);
|
|
294
|
+
sources.set(rebased.operationId, operation);
|
|
270
295
|
for (const write of writes.values())
|
|
271
296
|
serializedWrites.push(write.canonicalBytes);
|
|
272
|
-
applyReferenceOperation(referenceSets, rebased);
|
|
273
297
|
if (rebased.type.startsWith("artifact.")) {
|
|
274
298
|
const properties = foldArtifactPropertiesOperation(artifactProperties.get(rebased.payload.artifact_id), rebased, writes);
|
|
275
299
|
if (properties !== undefined)
|
|
@@ -288,7 +312,7 @@ export function rebaseLocalCommits(localCommitsNewestFirst, targetHead, rebaseId
|
|
|
288
312
|
latestValuesByCommit.push(serializedWrites);
|
|
289
313
|
parent = commit.commitId;
|
|
290
314
|
}
|
|
291
|
-
return { commits, latestValuesByCommit };
|
|
315
|
+
return { commits, latestValuesByCommit, sources };
|
|
292
316
|
}
|
|
293
317
|
export async function loadRebaseLatestValues(store, repositoryId, commits) {
|
|
294
318
|
const values = new Map();
|
|
@@ -303,19 +327,4 @@ export async function loadRebaseLatestValues(store, repositoryId, commits) {
|
|
|
303
327
|
}
|
|
304
328
|
return values;
|
|
305
329
|
}
|
|
306
|
-
function remoteDepartureNodeIds(resolutions) {
|
|
307
|
-
const nodeIds = new Set();
|
|
308
|
-
for (const [key, [strategy]] of resolutions) {
|
|
309
|
-
if (key.length === 3 && key[0] === "departure" && strategy === "remote")
|
|
310
|
-
nodeIds.add(key[1]);
|
|
311
|
-
}
|
|
312
|
-
return nodeIds;
|
|
313
|
-
}
|
|
314
|
-
function resolutionFor(resolutions, key) {
|
|
315
|
-
for (const [candidate, resolution] of resolutions) {
|
|
316
|
-
if (candidate.length === key.length && candidate.every((value, index) => value === key[index]))
|
|
317
|
-
return resolution;
|
|
318
|
-
}
|
|
319
|
-
return undefined;
|
|
320
|
-
}
|
|
321
330
|
//# sourceMappingURL=replay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/replay.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"replay.js","sourceRoot":"","sources":["../../../../src/local/domain/rebase/replay.ts"],"names":[],"mappings":"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"}
|