@ibgib/vcs-gib 0.0.21 → 0.0.23
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/dist/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/bootstrap/node-bootstrap.mjs +1 -1
- package/dist/cli/commands/merge-cmd.d.mts +21 -8
- package/dist/cli/commands/merge-cmd.d.mts.map +1 -1
- package/dist/cli/commands/merge-cmd.mjs +138 -70
- package/dist/cli/commands/merge-cmd.mjs.map +1 -1
- package/dist/cli/vcs-cli-main.mjs +2 -2
- package/dist/cli/vcs-cli-main.mjs.map +1 -1
- package/dist/engine/item/item-helper.d.mts +31 -1
- package/dist/engine/item/item-helper.d.mts.map +1 -1
- package/dist/engine/item/item-helper.mjs +39 -0
- package/dist/engine/item/item-helper.mjs.map +1 -1
- package/dist/engine/merge/{b2tfs-3way-merge-strategy.d.mts → b2tfs-3way-graft-strategy.d.mts} +9 -11
- package/dist/engine/merge/b2tfs-3way-graft-strategy.d.mts.map +1 -0
- package/dist/engine/merge/{b2tfs-3way-merge-strategy.mjs → b2tfs-3way-graft-strategy.mjs} +51 -294
- package/dist/engine/merge/b2tfs-3way-graft-strategy.mjs.map +1 -0
- package/dist/engine/merge/{b2tfs-3way-merge-types.d.mts → b2tfs-3way-graft-types.d.mts} +2 -9
- package/dist/engine/merge/b2tfs-3way-graft-types.d.mts.map +1 -0
- package/dist/engine/merge/b2tfs-3way-graft-types.mjs +2 -0
- package/dist/engine/merge/b2tfs-3way-graft-types.mjs.map +1 -0
- package/dist/test/test-helpers.d.mts +51 -0
- package/dist/test/test-helpers.d.mts.map +1 -0
- package/dist/test/test-helpers.mjs +135 -0
- package/dist/test/test-helpers.mjs.map +1 -0
- package/package.json +4 -4
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/bootstrap/node-bootstrap.mts +1 -1
- package/src/cli/commands/branch-checkout-cmd.respec.log +8 -101
- package/src/cli/commands/branch-checkout-cmd.respec.mts +11 -10
- package/src/cli/commands/merge-cmd.mts +154 -76
- package/src/cli/vcs-cli-main.mts +3 -3
- package/src/engine/item/item-helper.mts +71 -1
- package/src/engine/merge/{b2tfs-3way-merge-strategy.mts → b2tfs-3way-graft-strategy.mts} +66 -367
- package/src/engine/merge/{b2tfs-3way-merge-strategy.respec.mts → b2tfs-3way-graft-strategy.respec.mts} +27 -122
- package/src/engine/merge/{b2tfs-3way-merge-types.mts → b2tfs-3way-graft-types.mts} +34 -42
- package/src/test/test-helpers.mts +168 -0
- package/tsconfig.test.tsbuildinfo +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts.map +0 -1
- package/dist/engine/merge/b2tfs-3way-merge-strategy.mjs.map +0 -1
- package/dist/engine/merge/b2tfs-3way-merge-types.d.mts.map +0 -1
- package/dist/engine/merge/b2tfs-3way-merge-types.mjs +0 -2
- package/dist/engine/merge/b2tfs-3way-merge-types.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-helper.mjs","sourceRoot":"","sources":["../../../src/engine/item/item-helper.mts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"item-helper.mjs","sourceRoot":"","sources":["../../../src/engine/item/item-helper.mts"],"names":[],"mappings":"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"}
|
package/dist/engine/merge/{b2tfs-3way-merge-strategy.d.mts → b2tfs-3way-graft-strategy.d.mts}
RENAMED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module b2tfs-3way-
|
|
2
|
+
* @module b2tfs-3way-graft-strategy
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 3-way text line diff graft strategy for B2tFS file item timelines.
|
|
5
|
+
* Reconciles diverging file content via 3-way line diff (LCA, Base, Orphan)
|
|
6
|
+
* and inserts Git conflict markers when line edits collide.
|
|
7
|
+
*
|
|
8
|
+
* Non-text binaries and non-file items return early / false in `canGraft` and
|
|
9
|
+
* fall through to `DefaultDnaReplayGraftStrategy`.
|
|
10
|
+
* Folder hierarchies are re-synchronized post-merge via `reifyB2tFSHierarchy`.
|
|
5
11
|
*/
|
|
6
12
|
import { GraftMergeStrategyBase_V1 } from '@ibgib/core-gib/dist/sync/graft-info/graft-merge-strategy-base-v1.mjs';
|
|
7
13
|
import { GraftContext, GraftStrategy, GraftTimelinesResult } from '@ibgib/core-gib/dist/sync/graft-info/graft-info-types.mjs';
|
|
@@ -28,12 +34,7 @@ export declare class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 im
|
|
|
28
34
|
/**
|
|
29
35
|
* Returns true only if the graft context has two tips that are text-based file b2tfs item ibgibs.
|
|
30
36
|
*
|
|
31
|
-
* ## notes
|
|
32
|
-
*
|
|
33
|
-
* atow (08/12/2026) implementation is guantlet style: if cannot graft, return early
|
|
34
|
-
*
|
|
35
37
|
* @param context info about the divergent timelines {@link GraftContext}
|
|
36
|
-
*
|
|
37
38
|
* @returns true if it's a text file item ibgib, else false
|
|
38
39
|
*/
|
|
39
40
|
canGraft(context: GraftContext): Promise<boolean>;
|
|
@@ -41,8 +42,5 @@ export declare class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 im
|
|
|
41
42
|
private fetchIbGib;
|
|
42
43
|
private resolveRootItemNode;
|
|
43
44
|
private getFilePayloadBuffer;
|
|
44
|
-
private getChildItemsMap;
|
|
45
|
-
private mergeTreeNodes;
|
|
46
45
|
}
|
|
47
|
-
|
|
48
|
-
//# sourceMappingURL=b2tfs-3way-merge-strategy.d.mts.map
|
|
46
|
+
//# sourceMappingURL=b2tfs-3way-graft-strategy.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"b2tfs-3way-graft-strategy.d.mts","sourceRoot":"","sources":["../../../src/engine/merge/b2tfs-3way-graft-strategy.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,yBAAyB,EAAE,MAAM,uEAAuE,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAC;AAoB9H;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,OAAO,EACP,QAAQ,EACR,UAAU,GACb,EAAE;IACC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB,GAAG,mBAAmB,CA2FtB;AAED,qBAAa,sBAAuB,SAAQ,yBAA0B,YAAW,aAAa;IAC1F,QAAQ,CAAC,UAAU,EAAE,MAAM,CAA4B;IACvD,OAAO,CAAC,EAAE,CAA8B;IAExC;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAgDtD;IAEK,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CA+O5E;YAEa,UAAU;YA6BV,mBAAmB;YA0BnB,oBAAoB;CAyCrC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @module b2tfs-3way-
|
|
2
|
+
* @module b2tfs-3way-graft-strategy
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* 3-way text line diff graft strategy for B2tFS file item timelines.
|
|
5
|
+
* Reconciles diverging file content via 3-way line diff (LCA, Base, Orphan)
|
|
6
|
+
* and inserts Git conflict markers when line edits collide.
|
|
7
|
+
*
|
|
8
|
+
* Non-text binaries and non-file items return early / false in `canGraft` and
|
|
9
|
+
* fall through to `DefaultDnaReplayGraftStrategy`.
|
|
10
|
+
* Folder hierarchies are re-synchronized post-merge via `reifyB2tFSHierarchy`.
|
|
5
11
|
*/
|
|
6
12
|
import { extractErrorMsg, hash } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
7
13
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
@@ -15,10 +21,10 @@ import { GRAFT_INFO_REL8N_NAME } from '@ibgib/core-gib/dist/sync/graft-info/graf
|
|
|
15
21
|
import { SyncConflictStrategy } from '@ibgib/core-gib/dist/sync/sync-constants.mjs';
|
|
16
22
|
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
17
23
|
import { isBinaryBuffer, decodeToLines, computeLineLcsDiff } from '../diff/line-diff-helper.mjs';
|
|
18
|
-
import {
|
|
24
|
+
import { BINARY_REL8N_NAME, B2tFSType } from '../item/item-types.mjs';
|
|
19
25
|
import { evolveB2tFSItemIbGib, isB2tFSItemIbGib } from '../item/item-helper.mjs';
|
|
20
|
-
const lcFile = `[b2tfs-3way-
|
|
21
|
-
const logalot = GLOBAL_LOG_A_LOT
|
|
26
|
+
const lcFile = `[b2tfs-3way-graft-strategy]`;
|
|
27
|
+
const logalot = GLOBAL_LOG_A_LOT;
|
|
22
28
|
const mergeDiag = `[MERGE DIAGNOSTIC]`;
|
|
23
29
|
/**
|
|
24
30
|
* Performs 3-way line diff merging across LCA, Base, and Orphan text lines.
|
|
@@ -26,9 +32,6 @@ const mergeDiag = `[MERGE DIAGNOSTIC]`;
|
|
|
26
32
|
* line changes conflict.
|
|
27
33
|
*/
|
|
28
34
|
export function perform3WayTextLineMerge({ textLCA, textBase, textOrphan, }) {
|
|
29
|
-
console.log(`[DEBUG 3WAY] textLCA: ${JSON.stringify(textLCA)}`);
|
|
30
|
-
console.log(`[DEBUG 3WAY] textBase: ${JSON.stringify(textBase)}`);
|
|
31
|
-
console.log(`[DEBUG 3WAY] textOrphan: ${JSON.stringify(textOrphan)}`);
|
|
32
35
|
if (textBase === textOrphan) {
|
|
33
36
|
return { mergedText: textBase, hasConflict: false };
|
|
34
37
|
}
|
|
@@ -120,32 +123,24 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
120
123
|
/**
|
|
121
124
|
* Returns true only if the graft context has two tips that are text-based file b2tfs item ibgibs.
|
|
122
125
|
*
|
|
123
|
-
* ## notes
|
|
124
|
-
*
|
|
125
|
-
* atow (08/12/2026) implementation is guantlet style: if cannot graft, return early
|
|
126
|
-
*
|
|
127
126
|
* @param context info about the divergent timelines {@link GraftContext}
|
|
128
|
-
*
|
|
129
127
|
* @returns true if it's a text file item ibgib, else false
|
|
130
128
|
*/
|
|
131
129
|
async canGraft(context) {
|
|
132
130
|
const lc = `${this.lc}[${this.canGraft.name}]`;
|
|
133
131
|
try {
|
|
134
132
|
const { conflictStrategy, timelineAddrsA, timelineAddrsB, ibGibReadCache, space } = context;
|
|
135
|
-
// todo: refactor conflict strategy to be more generic: 'graft' | 'abort' | maybe something else.
|
|
136
133
|
const hasRelevantStrategy = conflictStrategy === SyncConflictStrategy.optimisticWithLCS || conflictStrategy === 'b2tfs3WayMerge';
|
|
137
134
|
if (!hasRelevantStrategy) {
|
|
138
|
-
|
|
139
|
-
// todo: after refactor, really this should be out of the hands of the implementation and we should have a discriminator as part of the strategy interface. So the graft strategy pipeline executor can just check that first, and then if multiple found, it will delegate to this `canGraft` method.
|
|
140
|
-
return false; /* <<<< returns early */
|
|
135
|
+
return false;
|
|
141
136
|
}
|
|
142
137
|
const tipAddrA = timelineAddrsA.at(-1);
|
|
143
138
|
const tipAddrB = timelineAddrsB.at(-1);
|
|
144
139
|
if (!tipAddrA || !tipAddrB) {
|
|
145
140
|
if (logalot) {
|
|
146
|
-
console.log(`${lc} we don't have two tip addrs?
|
|
141
|
+
console.log(`${lc} we don't have two tip addrs? (I: b20b6de462c35e0e74360cc8d317f126)`);
|
|
147
142
|
}
|
|
148
|
-
return false;
|
|
143
|
+
return false;
|
|
149
144
|
}
|
|
150
145
|
const [tipA, tipB] = await getIbGibsFromCache_fallbackToSpaces({
|
|
151
146
|
addrs: [tipAddrA, tipAddrB],
|
|
@@ -153,28 +148,26 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
153
148
|
space,
|
|
154
149
|
});
|
|
155
150
|
if (!tipA) {
|
|
156
|
-
throw new Error(`(UNEXPECTED) tipA falsy?
|
|
151
|
+
throw new Error(`(UNEXPECTED) tipA falsy? (E: 752101026888140f074614e893531826)`);
|
|
157
152
|
}
|
|
158
153
|
if (!tipB) {
|
|
159
|
-
throw new Error(`(UNEXPECTED) tipB falsy?
|
|
154
|
+
throw new Error(`(UNEXPECTED) tipB falsy? (E: d4d4a876cad8c7869830d33832bfde26)`);
|
|
160
155
|
}
|
|
161
156
|
const bothTipsAreB2tFSNodes = isB2tFSItemIbGib(tipA) && isB2tFSItemIbGib(tipB);
|
|
162
157
|
if (!bothTipsAreB2tFSNodes) {
|
|
163
|
-
// at this point, we're returning false. But I'm being extra defensive since this algorithm is so difficult to implement. So throw if somehow only one is a b2tfs item
|
|
164
158
|
if (isB2tFSItemIbGib(tipA) || isB2tFSItemIbGib(tipB)) {
|
|
165
159
|
console.error(`${lc}${mergeDiag} (UNEXPECTED)(NOT THROWN) only tipA or tipB but not both are b2tfs items? (E: cacb38796da881268898e9d1af245826)`);
|
|
166
160
|
}
|
|
167
|
-
return false;
|
|
161
|
+
return false;
|
|
168
162
|
}
|
|
169
163
|
if (tipA.data.fsType !== tipB.data.fsType) {
|
|
170
|
-
throw new Error(`(UNEXPECTED) tipA.data.fsType (${tipA.data.fsType}) !== tipB.data.fsType (${tipB.data.fsType})?
|
|
164
|
+
throw new Error(`(UNEXPECTED) tipA.data.fsType (${tipA.data.fsType}) !== tipB.data.fsType (${tipB.data.fsType})? (E: c01c1885ac738f679813117852c48426)`);
|
|
171
165
|
}
|
|
172
|
-
// only do files. folders
|
|
166
|
+
// only do files. folders and other containers fall back to DefaultDnaReplayGraftStrategy.
|
|
173
167
|
const isFile = tipA.data.fsType === B2tFSType.file;
|
|
174
168
|
if (!isFile) {
|
|
175
|
-
return false;
|
|
169
|
+
return false;
|
|
176
170
|
}
|
|
177
|
-
// passed gauntlet, we have a b2tfs file item that we can merge
|
|
178
171
|
return true;
|
|
179
172
|
}
|
|
180
173
|
catch (error) {
|
|
@@ -206,7 +199,7 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
206
199
|
space,
|
|
207
200
|
});
|
|
208
201
|
const tipB_receiver = branchB_receiver_sinceLCA.at(-1);
|
|
209
|
-
// 2. Base & Orphan
|
|
202
|
+
// 2. Base & Orphan resolution via DRY helper
|
|
210
203
|
const { baseTip, baseBranch, orphanTip, orphanBranch, } = this.resolveBaseAndOrphan({
|
|
211
204
|
graftPreference,
|
|
212
205
|
tipA_sender,
|
|
@@ -219,103 +212,10 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
219
212
|
const orphanTipAddr = getIbGibAddr({ ibGib: orphanTip });
|
|
220
213
|
const orphanBranchAddrs = orphanBranch.map(x => getIbGibAddr({ ibGib: x }));
|
|
221
214
|
if (logalot) {
|
|
222
|
-
console.log(`${lc} baseBranchAddrs:\n${baseBranchAddrs.join('\n')}
|
|
223
|
-
|
|
224
|
-
if (logalot) {
|
|
225
|
-
console.log(`${lc} orphanBranchAddrs:\n${orphanBranchAddrs.join('\n')}\n(I: cc86489d6737e2aced42b585cba13526)`);
|
|
215
|
+
console.log(`${lc} baseBranchAddrs:\n${baseBranchAddrs.join('\n')} (I: 2cad420d7bc822f798b8a8785f1f8c26)`);
|
|
216
|
+
console.log(`${lc} orphanBranchAddrs:\n${orphanBranchAddrs.join('\n')} (I: cc86489d6737e2aced42b585cba13526)`);
|
|
226
217
|
}
|
|
227
|
-
// 3.
|
|
228
|
-
const [latestCommonFrameIbGib] = await getIbGibsFromCache_fallbackToSpaces({
|
|
229
|
-
addrs: [latestCommonFrameAddr],
|
|
230
|
-
space,
|
|
231
|
-
});
|
|
232
|
-
// It is non-trivial and not at all obvious, but the following approach is WRONG!!
|
|
233
|
-
//
|
|
234
|
-
// This is not a generic timeline, rather, this is a timeline that
|
|
235
|
-
// is restricted to a b2tfs node, which itself has two
|
|
236
|
-
// possibilities: file or folder. So we can't replay dna blindly
|
|
237
|
-
// between the two branches and then try to do some kind of text
|
|
238
|
-
// merge later. We must analyze each branch and decide how to handle
|
|
239
|
-
// each change.
|
|
240
|
-
//
|
|
241
|
-
// NOTE: I have tweaked canGraft to only return true on
|
|
242
|
-
// B2tFSType.file and not folders, to see if the dna replay is good
|
|
243
|
-
// enough for folders, so we can concentrate on just files. Keep
|
|
244
|
-
// that in mind when I discuss the following notes.
|
|
245
|
-
//
|
|
246
|
-
// what we know at this point:
|
|
247
|
-
// * graft was invoked, so the sync engine detected divergence in
|
|
248
|
-
// the two spaces, i.e., our two branches (branch-per-space)
|
|
249
|
-
// * IOW, this is NOT a FF merge. That would have already been
|
|
250
|
-
// applied and not triggered this graft.
|
|
251
|
-
// * This is either a file or a folder b2tfs item.
|
|
252
|
-
// * If it is a folder...
|
|
253
|
-
// * How does git handle two folders merging, or does it?
|
|
254
|
-
// * git is file-based, and handles folders only secondarily.
|
|
255
|
-
// * How does our current vcs-gib diffing engine even detect if a
|
|
256
|
-
// folder has moved? does it?
|
|
257
|
-
// * If it is a file...
|
|
258
|
-
// * Is there anything that can happen besides the related binary file changing?
|
|
259
|
-
// * If there are multiple changes to the binary file, should we
|
|
260
|
-
// do each of those file changes in the graft?
|
|
261
|
-
// * we need to game out multiple scenarios to answer this.
|
|
262
|
-
// * What about multiple changes to each branch? Do we squash
|
|
263
|
-
// the orphan to a single change and then merge the final?
|
|
264
|
-
// * It is possible we can even parameterize this in this
|
|
265
|
-
// strategy object, but the caller would need to configure
|
|
266
|
-
// this strategy ahead of each sync call if that is the case I
|
|
267
|
-
// think.
|
|
268
|
-
// * One thing to parameterize would be how to handle graft
|
|
269
|
-
// points, as I just realized in the context of version
|
|
270
|
-
// control systems, it is possible that we may want to
|
|
271
|
-
// configure the sync/merge to drop/do something with large
|
|
272
|
-
// binaries (or just files in general) in a specific way.
|
|
273
|
-
// const dnaAddrsAlreadyAccountedFor: IbGibAddr[] = (latestCommonFrameIbGib?.rel8ns?.dna ?? []).concat();
|
|
274
|
-
// const dnaAddrsToApply: IbGibAddr[] = [];
|
|
275
|
-
// for (const orphanFrame of orphanBranch) {
|
|
276
|
-
// if (!orphanFrame.rel8ns) { throw new Error(`(UNEXPECTED) orphanFrame.rel8ns falsy? (E: bc9a78ef8dbcd9748305d898bf1b2826)`); }
|
|
277
|
-
// // I don't know if this is expected or not, but seems like if
|
|
278
|
-
// // we're doing a merge, we are expecting the ibgib frames to
|
|
279
|
-
// // have dna
|
|
280
|
-
// if (!orphanFrame.rel8ns.dna || orphanFrame.rel8ns.dna.length === 0) {
|
|
281
|
-
// throw new Error(`(UNEXPECTED) !orphanFrame.rel8ns.dna || orphanFrame.rel8ns.dna.length === 0? How can we be grafting when the orphan slice has no dna? (E: 7e58797aa2f98dfa811e8fa88c693826)`);
|
|
282
|
-
// }
|
|
283
|
-
// const orphanDnaAddrsToApply = getUniqueDnas({
|
|
284
|
-
// base: dnaAddrsAlreadyAccountedFor,
|
|
285
|
-
// extended: orphanFrame.rel8ns.dna,
|
|
286
|
-
// throwIfExtendedDoesntContainBase: true,
|
|
287
|
-
// });
|
|
288
|
-
// orphanDnaAddrsToApply.forEach(x => dnaAddrsAlreadyAccountedFor.push(x));
|
|
289
|
-
// orphanDnaAddrsToApply.forEach(x => dnaAddrsToApply.push(x));
|
|
290
|
-
// }
|
|
291
|
-
// const dnaIbGibsToApply = await getIbGibsFromCache_fallbackToSpaces({
|
|
292
|
-
// addrs: dnaAddrsToApply,
|
|
293
|
-
// readCache_graph: ibGibReadCache,
|
|
294
|
-
// space,
|
|
295
|
-
// });
|
|
296
|
-
// if (logalot) { console.log(`${lc}${mergeDiag} dnaAddrsToApply addrs (${dnaAddrsToApply.length}): ${dnaAddrsToApply} (I: 78a8a82f540d520682664aa806f1b826)`); }
|
|
297
|
-
// const createdIbGibs_Running: IbGib_V1[] = [];
|
|
298
|
-
// const newGraftedIntermediateIbGibs_ordered: IbGib_V1[] = [];
|
|
299
|
-
// const newGraftDnaIbGibs: IbGib_V1[] = [];
|
|
300
|
-
// let currentGraftTip = await applyTransforms({
|
|
301
|
-
// src: baseTip,
|
|
302
|
-
// dnaAddrsToApplyToStoreVersion_MUTATES_IN_PLACE: dnaAddrsToApply.concat(),
|
|
303
|
-
// allLocalIbGibs: dnaIbGibsToApply,
|
|
304
|
-
// createdIbGibs_Running,
|
|
305
|
-
// });
|
|
306
|
-
// if (createdIbGibs_Running.length > 0) {
|
|
307
|
-
// await putInSpace({ space, ibGibs: createdIbGibs_Running });
|
|
308
|
-
// const { mapWithTjp_YesDna: newGraftedIbGibsMap } = splitPerTjpAndOrDna({ ibGibs: createdIbGibs_Running });
|
|
309
|
-
// const newGraftedIbGibs_orderNotGuaranteed = Object.values(newGraftedIbGibsMap);
|
|
310
|
-
// const newGraftedIbGibsByTjp = getTimelinesGroupedByTjp({ ibGibs: newGraftedIbGibs_orderNotGuaranteed });
|
|
311
|
-
// if (Object.keys(newGraftedIbGibsByTjp).length > 0) {
|
|
312
|
-
// Object.values(newGraftedIbGibsByTjp)[0].forEach(x => newGraftedIntermediateIbGibs_ordered.push(x));
|
|
313
|
-
// for (const item of newGraftedIntermediateIbGibs_ordered) {
|
|
314
|
-
// await registerNewIbGib({ ibGib: item, space });
|
|
315
|
-
// }
|
|
316
|
-
// }
|
|
317
|
-
// }
|
|
318
|
-
// 4. Perform 3-way filesystem tree merge across lcaItem, baseItem, orphanItem
|
|
218
|
+
// 3. Perform 3-way filesystem tree merge across lcaItem, baseItem, orphanItem
|
|
319
219
|
const lcaNode = await this.fetchIbGib({ addr: latestCommonFrameAddr, space, readCache_graph: ibGibReadCache });
|
|
320
220
|
if (!lcaNode) {
|
|
321
221
|
throw new Error(`(UNEXPECTED) lcaNode falsy? (E: a8b2d80dc4f8ba1448fa280d89dfb626)`);
|
|
@@ -338,70 +238,47 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
338
238
|
if (lcaItem.data.fsType !== orphanItem.data.fsType) {
|
|
339
239
|
throw new Error(`(UNEXPECTED) lcaItem.data.fsType !== orphanItem.data.fsType? (E: 2813981c8c422b41f85a02fd8aa88226)`);
|
|
340
240
|
}
|
|
341
|
-
// all three fsTypes are equal
|
|
342
241
|
const fsType = lcaItem.data.fsType;
|
|
343
242
|
if (fsType === B2tFSType.folder) {
|
|
344
|
-
throw new Error(`(UNEXPECTED) fsType === B2tFSType.folder?
|
|
243
|
+
throw new Error(`(UNEXPECTED) fsType === B2tFSType.folder? Folders fall back to DefaultDnaReplayGraftStrategy and reification. (E: b282b8f77b18575378edb902bd80a826)`);
|
|
345
244
|
}
|
|
346
245
|
if (fsType !== B2tFSType.file) {
|
|
347
246
|
throw new Error(`(UNEXPECTED) fsType (${fsType}) is not a file? (E: 272418fe2067ea3e16dac028e86d1a26)`);
|
|
348
247
|
}
|
|
349
|
-
const lcaPayload = await this.getFilePayloadBuffer({
|
|
350
|
-
|
|
351
|
-
});
|
|
352
|
-
if (lcaPayload === undefined) {
|
|
353
|
-
if (logalot) {
|
|
354
|
-
console.log(`${lc}${mergeDiag} lcaPayload undefined? (I: 59b25835cce856cea883cf989ceb3826)`);
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
const basePayload = await this.getFilePayloadBuffer({
|
|
358
|
-
fileItem: baseItem, space, readCache_graph: ibGibReadCache
|
|
359
|
-
});
|
|
360
|
-
if (basePayload === undefined) {
|
|
361
|
-
if (logalot) {
|
|
362
|
-
console.log(`${lc}${mergeDiag} basePayload undefined? (I: 54f05406dca85eb98821b79f7325c826)`);
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
const orphanPayload = await this.getFilePayloadBuffer({
|
|
366
|
-
fileItem: orphanItem, space, readCache_graph: ibGibReadCache
|
|
367
|
-
});
|
|
368
|
-
if (orphanPayload === undefined) {
|
|
369
|
-
if (logalot) {
|
|
370
|
-
console.log(`${lc}${mergeDiag} orphanPayload undefined? (I: cd8b785875b43fc6684c65d818edd826)`);
|
|
371
|
-
}
|
|
372
|
-
}
|
|
248
|
+
const lcaPayload = await this.getFilePayloadBuffer({ fileItem: lcaItem, space, readCache_graph: ibGibReadCache });
|
|
249
|
+
const basePayload = await this.getFilePayloadBuffer({ fileItem: baseItem, space, readCache_graph: ibGibReadCache });
|
|
250
|
+
const orphanPayload = await this.getFilePayloadBuffer({ fileItem: orphanItem, space, readCache_graph: ibGibReadCache });
|
|
373
251
|
const isBaseBin = basePayload ? isBinaryBuffer(basePayload.buffer) : false;
|
|
374
252
|
const isOrphanBin = orphanPayload ? isBinaryBuffer(orphanPayload.buffer) : false;
|
|
375
253
|
const isLcaBin = lcaPayload ? isBinaryBuffer(lcaPayload.buffer) : false;
|
|
376
254
|
if (isBaseBin || isOrphanBin || isLcaBin) {
|
|
377
255
|
if (logalot) {
|
|
378
|
-
console.log(`${lc} Non-text binary file detected (${baseItem.data?.name}). Skipping 3-way line diff. (I: 4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b)`);
|
|
256
|
+
console.log(`${lc} Non-text binary file detected (${baseItem.data?.name}). Skipping 3-way line diff and falling through. (I: 4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a9b)`);
|
|
379
257
|
}
|
|
380
|
-
|
|
381
|
-
// we can still return `undefined` early if we decide we can't
|
|
382
|
-
// handle it and we haven't persisted/registered any ibgibs. In
|
|
383
|
-
// this particular case of 3-way text merges, we don't graft
|
|
384
|
-
// non-text binary divergences, e.g., pics, sound files, etc.
|
|
385
|
-
return undefined; /* <<<< returns early */
|
|
258
|
+
return undefined;
|
|
386
259
|
}
|
|
387
260
|
if (!lcaPayload) {
|
|
388
|
-
throw new Error(`(UNEXPECTED) lcaPayload falsy?
|
|
261
|
+
throw new Error(`(UNEXPECTED) lcaPayload falsy? (E: 0b82892204482f5538a430b8915b7826)`);
|
|
389
262
|
}
|
|
390
263
|
if (!basePayload) {
|
|
391
|
-
throw new Error(`(UNEXPECTED) basePayload falsy?
|
|
264
|
+
throw new Error(`(UNEXPECTED) basePayload falsy? (E: af1f68a020280b3a5d6ed4a812acd426)`);
|
|
392
265
|
}
|
|
393
266
|
if (!orphanPayload) {
|
|
394
|
-
throw new Error(`(UNEXPECTED) orphanPayload falsy?
|
|
267
|
+
throw new Error(`(UNEXPECTED) orphanPayload falsy? (E: 6a521b684763862c3a2e0ca315d62826)`);
|
|
395
268
|
}
|
|
396
269
|
const textLCA = decodeToLines(lcaPayload.buffer).join('\n');
|
|
397
270
|
const textBase = decodeToLines(basePayload.buffer).join('\n');
|
|
398
271
|
const textOrphan = decodeToLines(orphanPayload.buffer).join('\n');
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
272
|
+
if (logalot) {
|
|
273
|
+
console.log(`${lc}${mergeDiag} file: ${baseItem.data.name}`);
|
|
274
|
+
console.log(`${lc}${mergeDiag} textLCA:\n${textLCA}`);
|
|
275
|
+
console.log(`${lc}${mergeDiag} textBase:\n${textBase}`);
|
|
276
|
+
console.log(`${lc}${mergeDiag} textOrphan:\n${textOrphan}`);
|
|
277
|
+
}
|
|
403
278
|
const { mergedText } = perform3WayTextLineMerge({ textLCA, textBase, textOrphan });
|
|
404
|
-
|
|
279
|
+
if (logalot) {
|
|
280
|
+
console.log(`${lc}${mergeDiag} mergedText:\n${mergedText}`);
|
|
281
|
+
}
|
|
405
282
|
const dataBuffer = Buffer.from(mergedText, 'utf8');
|
|
406
283
|
const fileHash = await hash({ s: mergedText });
|
|
407
284
|
if (baseItem.data.fileExt !== orphanItem.data.fileExt) {
|
|
@@ -419,7 +296,6 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
419
296
|
};
|
|
420
297
|
binIbGib.gib = await getGib({ ibGib: binIbGib, hasTjp: false });
|
|
421
298
|
const binAddr = getIbGibAddr({ ibGib: binIbGib });
|
|
422
|
-
// at this point, we are committed to performing the 3-way merge.
|
|
423
299
|
await putInSpace({ ibGib: binIbGib, space });
|
|
424
300
|
await registerNewIbGib({ ibGib: binIbGib, space });
|
|
425
301
|
const fnGetN = (item) => {
|
|
@@ -432,9 +308,7 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
432
308
|
};
|
|
433
309
|
const baseItemDataN = fnGetN(baseItem);
|
|
434
310
|
const orphanItemDataN = fnGetN(orphanItem);
|
|
435
|
-
const lowestDataN = baseItemDataN <= orphanItemDataN ?
|
|
436
|
-
baseItemDataN :
|
|
437
|
-
orphanItemDataN;
|
|
311
|
+
const lowestDataN = baseItemDataN <= orphanItemDataN ? baseItemDataN : orphanItemDataN;
|
|
438
312
|
const evolveRes = await evolveB2tFSItemIbGib({
|
|
439
313
|
existingItem: baseItem,
|
|
440
314
|
dataToUpdate: {
|
|
@@ -445,12 +319,11 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
445
319
|
[BINARY_REL8N_NAME]: [binAddr],
|
|
446
320
|
},
|
|
447
321
|
});
|
|
448
|
-
// sanity checks
|
|
449
322
|
if (!evolveRes.dnas) {
|
|
450
|
-
throw new Error(`(UNEXPECTED) evolveRes.dnas falsy?
|
|
323
|
+
throw new Error(`(UNEXPECTED) evolveRes.dnas falsy? (E: e640e892cc76c77f98f3881301035826)`);
|
|
451
324
|
}
|
|
452
325
|
if (!evolveRes.newIbGib) {
|
|
453
|
-
throw new Error(`(UNEXPECTED) evolveRes.newIbGib falsy?
|
|
326
|
+
throw new Error(`(UNEXPECTED) evolveRes.newIbGib falsy? (E: 9e488d07772827b66a2aff4801905426)`);
|
|
454
327
|
}
|
|
455
328
|
const newItemWithNewBinPayload = evolveRes.newIbGib;
|
|
456
329
|
const newItemAddr = getIbGibAddr({ ibGib: newItemWithNewBinPayload });
|
|
@@ -461,27 +334,17 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
461
334
|
const newGraftedIntermediateIbGibs_ordered = [];
|
|
462
335
|
newGraftDnaIbGibs.push(...evolveRes.dnas);
|
|
463
336
|
if (evolveRes.intermediateIbGibs) {
|
|
464
|
-
// todo: when we have this completed, we should know whether or not there are intermediate ibgibs in all cases, some cases, or no cases (never). we should change this from an `if` block with no else to throw an unexpected error (assertion) if it is indeed unexpected
|
|
465
337
|
evolveRes.intermediateIbGibs.forEach(x => newGraftedIntermediateIbGibs_ordered.push(x));
|
|
466
338
|
}
|
|
467
339
|
await persistTransformResult({ resTransform: evolveRes, space });
|
|
468
340
|
await registerNewIbGib({ ibGib: evolveRes.newIbGib, space });
|
|
469
|
-
const baseItemAddr = getIbGibAddr({ ibGib: baseItem });
|
|
470
|
-
const mergedRootAddr = getIbGibAddr({ ibGib: newItemWithNewBinPayload });
|
|
471
|
-
const currentRootAddr = baseItem ? getIbGibAddr({ ibGib: baseItem }) : undefined;
|
|
472
|
-
/**
|
|
473
|
-
* stupid word "details" is plural and I have this set to be an
|
|
474
|
-
* array. don't have the ability to refactor right now, so this will
|
|
475
|
-
* be mildly confusing unfortunately. Agents should not try to just
|
|
476
|
-
* refactor this on the fly.
|
|
477
|
-
*/
|
|
478
341
|
const b2tfsAddlGraftDetails = {
|
|
479
342
|
baseTextB2tFSItemAddr: baseTipAddr,
|
|
480
343
|
baseTextBinAddr: basePayload.binIbGib ? getIbGibAddr({ ibGib: basePayload.binIbGib }) : undefined,
|
|
481
344
|
orphanTextB2tFSItemAddr: orphanTipAddr,
|
|
482
345
|
orphanTextBinAddr: orphanPayload.binIbGib ? getIbGibAddr({ ibGib: orphanPayload.binIbGib }) : undefined,
|
|
483
346
|
};
|
|
484
|
-
//
|
|
347
|
+
// 4. Attach GraftInfo frame
|
|
485
348
|
const graftInfo = await createGraftInfo({
|
|
486
349
|
conflictStrategy,
|
|
487
350
|
details: `Merged orphan tip text with the baseTip as a starting point.`,
|
|
@@ -553,8 +416,8 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
553
416
|
}
|
|
554
417
|
}
|
|
555
418
|
try {
|
|
556
|
-
const res = await getFromSpace({ space, addrs: [addr
|
|
557
|
-
if (res && res.
|
|
419
|
+
const res = await getFromSpace({ space, addrs: [addr] });
|
|
420
|
+
if (res && res.ibGibs && res.ibGibs.length > 0) {
|
|
558
421
|
const found = res.ibGibs.find((x) => !!x);
|
|
559
422
|
if (found) {
|
|
560
423
|
return found;
|
|
@@ -563,8 +426,6 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
563
426
|
}
|
|
564
427
|
catch {
|
|
565
428
|
// Suppress fetch error if address not found
|
|
566
|
-
// why suppress? any ibgibs available to us here should be in space
|
|
567
|
-
// (the temp space of the sync receiver)
|
|
568
429
|
}
|
|
569
430
|
return undefined;
|
|
570
431
|
}
|
|
@@ -583,12 +444,10 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
583
444
|
throw new Error(`(UNEXPECTED) node falsy? couldn't get node? (E: bd7d1c3b4a3881ff882746281869d826)`);
|
|
584
445
|
}
|
|
585
446
|
if (isB2tFSItemIbGib(node)) {
|
|
586
|
-
// it's an item ibgib
|
|
587
447
|
return node;
|
|
588
448
|
}
|
|
589
449
|
else {
|
|
590
|
-
|
|
591
|
-
throw new Error(`(UNEXPECTED) node is not a B2tFSItemIbGib_V1? canGraft should have returned false then and we should never have gotten here. (E: ddabb281ccb2fb1a181109a82046b826)`);
|
|
450
|
+
throw new Error(`(UNEXPECTED) node is not a B2tFSItemIbGib_V1? (E: ddabb281ccb2fb1a181109a82046b826)`);
|
|
592
451
|
}
|
|
593
452
|
}
|
|
594
453
|
async getFilePayloadBuffer({ fileItem, space, readCache_graph, }) {
|
|
@@ -606,7 +465,7 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
606
465
|
}
|
|
607
466
|
if (binIbGib.data === undefined) {
|
|
608
467
|
return undefined;
|
|
609
|
-
}
|
|
468
|
+
}
|
|
610
469
|
let fileData;
|
|
611
470
|
const dataObj = binIbGib.data;
|
|
612
471
|
if (dataObj && typeof dataObj === 'object' && dataObj._dataType === 'Uint8Array_Base64' && typeof dataObj.value === 'string') {
|
|
@@ -635,107 +494,5 @@ export class B2tFS3WayGraftStrategy extends GraftMergeStrategyBase_V1 {
|
|
|
635
494
|
}
|
|
636
495
|
return { buffer: fileData, binIbGib };
|
|
637
496
|
}
|
|
638
|
-
async getChildItemsMap({ folderItem, space, readCache_graph, }) {
|
|
639
|
-
const map = new Map();
|
|
640
|
-
if (!folderItem || !folderItem.rel8ns) {
|
|
641
|
-
return map;
|
|
642
|
-
}
|
|
643
|
-
const childAddrs = folderItem.rel8ns[B2TFS_CHILD_ITEM_REL8N_NAME] || [];
|
|
644
|
-
for (const addr of childAddrs) {
|
|
645
|
-
const childNode = await this.fetchIbGib({ addr, space, readCache_graph });
|
|
646
|
-
if (childNode && childNode.data?.name) {
|
|
647
|
-
map.set(childNode.data.name, childNode);
|
|
648
|
-
}
|
|
649
|
-
}
|
|
650
|
-
return map;
|
|
651
|
-
}
|
|
652
|
-
async mergeTreeNodes({ lcaItem, baseItem, orphanItem, space, readCache_graph, newGraftDnaIbGibs, newGraftedIntermediateIbGibs_ordered, }) {
|
|
653
|
-
const lc = `${lcFile}[${this.mergeTreeNodes.name}]`;
|
|
654
|
-
const baseAddr = baseItem ? getIbGibAddr({ ibGib: baseItem }) : undefined;
|
|
655
|
-
const orphanAddr = orphanItem ? getIbGibAddr({ ibGib: orphanItem }) : undefined;
|
|
656
|
-
const lcaAddr = lcaItem ? getIbGibAddr({ ibGib: lcaItem }) : undefined;
|
|
657
|
-
if (baseAddr && orphanAddr && baseAddr === orphanAddr) {
|
|
658
|
-
return baseItem;
|
|
659
|
-
}
|
|
660
|
-
if (lcaAddr && baseAddr && baseAddr === lcaAddr && orphanItem) {
|
|
661
|
-
return orphanItem;
|
|
662
|
-
}
|
|
663
|
-
if (lcaAddr && orphanAddr && orphanAddr === lcaAddr && baseItem) {
|
|
664
|
-
return baseItem;
|
|
665
|
-
}
|
|
666
|
-
if (!baseItem && !orphanItem) {
|
|
667
|
-
return undefined;
|
|
668
|
-
}
|
|
669
|
-
if (baseItem && !orphanItem) {
|
|
670
|
-
if (lcaAddr && baseAddr === lcaAddr) {
|
|
671
|
-
return undefined;
|
|
672
|
-
}
|
|
673
|
-
return baseItem;
|
|
674
|
-
}
|
|
675
|
-
if (orphanItem && !baseItem) {
|
|
676
|
-
if (lcaAddr && orphanAddr === lcaAddr) {
|
|
677
|
-
return undefined;
|
|
678
|
-
}
|
|
679
|
-
return orphanItem;
|
|
680
|
-
}
|
|
681
|
-
if (!baseItem || !orphanItem) {
|
|
682
|
-
throw new Error(`(UNEXPECTED) baseItem or orphanItem missing in 3-way merge branch (E: 5d4e3f2a1b0c9d8e7f6a5b4c3d2e1f0a)`);
|
|
683
|
-
}
|
|
684
|
-
const fsType = baseItem.data?.fsType || orphanItem.data?.fsType;
|
|
685
|
-
if (fsType === 'file') {
|
|
686
|
-
}
|
|
687
|
-
else if (fsType === 'folder') {
|
|
688
|
-
// const lcaChildrenMap = await this.getChildItemsMap({ folderItem: lcaItem, space, readCache_graph });
|
|
689
|
-
// const baseChildrenMap = await this.getChildItemsMap({ folderItem: baseItem, space, readCache_graph });
|
|
690
|
-
// const orphanChildrenMap = await this.getChildItemsMap({ folderItem: orphanItem, space, readCache_graph });
|
|
691
|
-
// const allChildAddrs = new Set([
|
|
692
|
-
// ...lcaChildrenMap.keys(),
|
|
693
|
-
// ...baseChildrenMap.keys(),
|
|
694
|
-
// ...orphanChildrenMap.keys(),
|
|
695
|
-
// ]);
|
|
696
|
-
// const mergedChildAddrs: string[] = [];
|
|
697
|
-
// for (const childItemAddr of allChildAddrs) {
|
|
698
|
-
// const childLCA = lcaChildrenMap.get(childItemAddr);
|
|
699
|
-
// const childBase = baseChildrenMap.get(childItemAddr);
|
|
700
|
-
// const childOrphan = orphanChildrenMap.get(childItemAddr);
|
|
701
|
-
// const mergedChild = await this.mergeTreeNodes({
|
|
702
|
-
// lcaItem: childLCA,
|
|
703
|
-
// baseItem: childBase,
|
|
704
|
-
// orphanItem: childOrphan,
|
|
705
|
-
// space,
|
|
706
|
-
// readCache_graph,
|
|
707
|
-
// newGraftDnaIbGibs,
|
|
708
|
-
// newGraftedIntermediateIbGibs_ordered,
|
|
709
|
-
// });
|
|
710
|
-
// if (mergedChild) {
|
|
711
|
-
// mergedChildAddrs.push(getIbGibAddr({ ibGib: mergedChild }));
|
|
712
|
-
// }
|
|
713
|
-
// }
|
|
714
|
-
// const currentChildAddrs = baseItem.rel8ns?.[B2TFS_CHILD_ITEM_REL8N_NAME] || [];
|
|
715
|
-
// const addrsChanged = mergedChildAddrs.length !== currentChildAddrs.length ||
|
|
716
|
-
// mergedChildAddrs.some((addr, idx) => addr !== currentChildAddrs[idx]);
|
|
717
|
-
// if (!addrsChanged) {
|
|
718
|
-
// return baseItem;
|
|
719
|
-
// }
|
|
720
|
-
// const evolveRes = await evolveB2tFSItemIbGib({
|
|
721
|
-
// existingItem: baseItem,
|
|
722
|
-
// rel8nsToUpdate: {
|
|
723
|
-
// [B2TFS_CHILD_ITEM_REL8N_NAME]: mergedChildAddrs,
|
|
724
|
-
// },
|
|
725
|
-
// rel8nsToRemove: {
|
|
726
|
-
// [B2TFS_CHILD_ITEM_REL8N_NAME]: baseItem.rel8ns?.[B2TFS_CHILD_ITEM_REL8N_NAME] || [],
|
|
727
|
-
// },
|
|
728
|
-
// });
|
|
729
|
-
// if (evolveRes.dnas) { newGraftDnaIbGibs.push(...evolveRes.dnas); }
|
|
730
|
-
// if (evolveRes.newIbGib) { newGraftedIntermediateIbGibs_ordered.push(evolveRes.newIbGib); }
|
|
731
|
-
// if (space) {
|
|
732
|
-
// await persistTransformResult({ resTransform: evolveRes, space });
|
|
733
|
-
// await registerNewIbGib({ ibGib: evolveRes.newIbGib, space });
|
|
734
|
-
// }
|
|
735
|
-
// return evolveRes.newIbGib as B2tFSItemIbGib_V1;
|
|
736
|
-
}
|
|
737
|
-
return baseItem;
|
|
738
|
-
}
|
|
739
497
|
}
|
|
740
|
-
|
|
741
|
-
//# sourceMappingURL=b2tfs-3way-merge-strategy.mjs.map
|
|
498
|
+
//# sourceMappingURL=b2tfs-3way-graft-strategy.mjs.map
|