@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
|
@@ -15,7 +15,7 @@ import { NodeFilesystemSpace_V1 } from '@ibgib/node-gib/dist/witness/space/node-
|
|
|
15
15
|
import { DEFAULT_NODE_FILESYSTEM_SPACE_DATA_V1 } from '@ibgib/node-gib/dist/witness/space/node-filesystem-space/node-filesystem-space-types.mjs';
|
|
16
16
|
import { fnCreateNewLocalSpace, fnDtoToSpace_nodeFilesystem } from '@ibgib/node-gib/dist/witness/space/metaspace/metaspace-nodespace/metaspace-nodespace-helper.mjs';
|
|
17
17
|
import { GLOBAL_LOG_A_LOT } from '../vcs-gib-constants.mjs';
|
|
18
|
-
import { B2tFS3WayGraftStrategy } from '../engine/merge/b2tfs-3way-
|
|
18
|
+
import { B2tFS3WayGraftStrategy } from '../engine/merge/b2tfs-3way-graft-strategy.mjs';
|
|
19
19
|
const lcFile = `[node-bootstrap]`;
|
|
20
20
|
const logalot = GLOBAL_LOG_A_LOT;
|
|
21
21
|
/**
|
|
@@ -2,22 +2,35 @@
|
|
|
2
2
|
* @module merge-cmd
|
|
3
3
|
*
|
|
4
4
|
* Command handler for `vcs merge <branchName>`.
|
|
5
|
-
* Merges
|
|
6
|
-
*
|
|
5
|
+
* Merges the incoming branch into the base (active/current) branch using
|
|
6
|
+
* SyncSagaCoordinator sync and 3-way graft merge strategy.
|
|
7
|
+
* Projects merged branch snapshot onto the base branch physical worktree path.
|
|
8
|
+
*
|
|
9
|
+
* ## Terminology (matches standard git usage)
|
|
10
|
+
*
|
|
11
|
+
* * **base** branch / space — the branch currently checked out, the one being
|
|
12
|
+
* merged INTO (analogous to `ours` / `HEAD` in git)
|
|
13
|
+
* * **incoming** branch / space — the branch whose changes are being merged IN
|
|
14
|
+
* (analogous to `theirs` / the topic branch in git)
|
|
7
15
|
*/
|
|
8
16
|
export interface MergeCmdOpts {
|
|
9
|
-
|
|
17
|
+
/** The incoming branch name — the branch whose changes will be merged in. */
|
|
18
|
+
incomingBranchName?: string;
|
|
10
19
|
targetDir?: string;
|
|
11
20
|
vcsFolderName?: string;
|
|
12
21
|
quiet?: boolean;
|
|
22
|
+
/** When true, emit diagnostic checkpoint logging (useful in tests). */
|
|
23
|
+
diagLog?: boolean;
|
|
13
24
|
}
|
|
14
25
|
export interface MergeCmdResult {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
26
|
+
/** The base (current/active) branch name — merged into. */
|
|
27
|
+
baseBranch: string;
|
|
28
|
+
/** The incoming branch name — merged from. */
|
|
29
|
+
incomingBranch: string;
|
|
30
|
+
baseSpaceId: string;
|
|
31
|
+
incomingSpaceId: string;
|
|
19
32
|
mergedBranchAddr?: string;
|
|
20
33
|
worktreePath: string;
|
|
21
34
|
}
|
|
22
|
-
export declare function executeMergeCmd({
|
|
35
|
+
export declare function executeMergeCmd({ incomingBranchName, targetDir, vcsFolderName, quiet, diagLog, }?: MergeCmdOpts): Promise<MergeCmdResult>;
|
|
23
36
|
//# sourceMappingURL=merge-cmd.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/merge-cmd.mts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"merge-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/merge-cmd.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA6BH,MAAM,WAAW,YAAY;IACzB,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC3B,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,eAAe,CAAC,EAClC,kBAAkB,EAClB,SAAyB,EACzB,aAAyB,EACzB,KAAa,EACb,OAAe,GAClB,GAAE,YAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAoS7C"}
|
|
@@ -2,14 +2,23 @@
|
|
|
2
2
|
* @module merge-cmd
|
|
3
3
|
*
|
|
4
4
|
* Command handler for `vcs merge <branchName>`.
|
|
5
|
-
* Merges
|
|
6
|
-
*
|
|
5
|
+
* Merges the incoming branch into the base (active/current) branch using
|
|
6
|
+
* SyncSagaCoordinator sync and 3-way graft merge strategy.
|
|
7
|
+
* Projects merged branch snapshot onto the base branch physical worktree path.
|
|
8
|
+
*
|
|
9
|
+
* ## Terminology (matches standard git usage)
|
|
10
|
+
*
|
|
11
|
+
* * **base** branch / space — the branch currently checked out, the one being
|
|
12
|
+
* merged INTO (analogous to `ours` / `HEAD` in git)
|
|
13
|
+
* * **incoming** branch / space — the branch whose changes are being merged IN
|
|
14
|
+
* (analogous to `theirs` / the topic branch in git)
|
|
7
15
|
*/
|
|
8
16
|
import path from 'node:path';
|
|
9
17
|
import fs from 'node:fs/promises';
|
|
10
18
|
import { clone, extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
11
19
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
12
|
-
import { putInSpace, getLatestAddrs, } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
20
|
+
import { putInSpace, getLatestAddrs, persistTransformResult, registerNewIbGib } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
21
|
+
import { rel8 } from '@ibgib/ts-gib/dist/V1/transforms/rel8.mjs';
|
|
13
22
|
import { SyncSagaCoordinator } from '@ibgib/core-gib/dist/sync/sync-saga-coordinator.mjs';
|
|
14
23
|
import { SyncPeerInnerspace_V1 } from '@ibgib/core-gib/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-v1.mjs';
|
|
15
24
|
import { SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1 } from '@ibgib/core-gib/dist/sync/sync-peer/sync-peer-innerspace/sync-peer-innerspace-constants.mjs';
|
|
@@ -18,19 +27,22 @@ import { GraftPreference } from '@ibgib/core-gib/dist/sync/graft-info/graft-info
|
|
|
18
27
|
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
19
28
|
import { getOrCreateBranchSpace } from '../../engine/branch/branch-space-helper.mjs';
|
|
20
29
|
import { B2TFS_CHILD_ITEM_REL8N_NAME } from '../../engine/item/item-types.mjs';
|
|
21
|
-
import { writeB2tFSItemToFS, getIbGibWithMetaspaceFallback } from '../../engine/item/item-helper.mjs';
|
|
30
|
+
import { writeB2tFSItemToFS, getIbGibWithMetaspaceFallback, reifyB2tFSHierarchy } from '../../engine/item/item-helper.mjs';
|
|
22
31
|
import { getB2tFSIndexIbGib, updateB2tFSIndexIbGib } from '../../engine/index/index-helper.mjs';
|
|
23
32
|
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
33
|
+
import { logBranchState, logItemState, logCheckpoint, logAddr } from '../../test/test-helpers.mjs';
|
|
24
34
|
const lcFile = `[merge-cmd]`;
|
|
25
35
|
const logalot = GLOBAL_LOG_A_LOT;
|
|
26
|
-
export async function executeMergeCmd({
|
|
36
|
+
export async function executeMergeCmd({ incomingBranchName, targetDir = process.cwd(), vcsFolderName = '.vcsgib', quiet = false, diagLog = false, } = {}) {
|
|
27
37
|
const lc = `${lcFile}[${executeMergeCmd.name}]`;
|
|
38
|
+
const diag = (label) => { if (diagLog)
|
|
39
|
+
logCheckpoint(`merge-cmd: ${label}`); };
|
|
28
40
|
try {
|
|
29
41
|
if (logalot) {
|
|
30
42
|
console.log(`${lc} starting... (I: 4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f)`);
|
|
31
43
|
}
|
|
32
|
-
const
|
|
33
|
-
if (!
|
|
44
|
+
const trimmedIncomingBranch = incomingBranchName?.trim();
|
|
45
|
+
if (!trimmedIncomingBranch) {
|
|
34
46
|
throw new Error(`Branch name is required for merge (E: 5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a)`);
|
|
35
47
|
}
|
|
36
48
|
const absTargetDir = path.resolve(targetDir);
|
|
@@ -50,9 +62,9 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
|
|
|
50
62
|
if (!indexIbGib) {
|
|
51
63
|
throw new Error(`Repository index B2tFSIndexIbGib_V1 not found in localSpace (E: 7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c)`);
|
|
52
64
|
}
|
|
53
|
-
const
|
|
54
|
-
if (
|
|
55
|
-
throw new Error(`Cannot merge branch '${
|
|
65
|
+
const baseBranchName = indexIbGib.data?.activeBranch || 'main';
|
|
66
|
+
if (baseBranchName === trimmedIncomingBranch) {
|
|
67
|
+
throw new Error(`Cannot merge branch '${trimmedIncomingBranch}' into itself (E: 8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d)`);
|
|
56
68
|
}
|
|
57
69
|
// 2. Fetch all registered branch ibgibs
|
|
58
70
|
const branchAddrs = [
|
|
@@ -72,84 +84,132 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
|
|
|
72
84
|
}
|
|
73
85
|
}
|
|
74
86
|
}
|
|
75
|
-
// Resolve
|
|
76
|
-
const
|
|
77
|
-
if (!
|
|
78
|
-
throw new Error(`
|
|
87
|
+
// Resolve base branch node & incoming branch node
|
|
88
|
+
const baseBranchIbGib = branchIbGibs.findLast((b) => b?.data?.name === baseBranchName);
|
|
89
|
+
if (!baseBranchIbGib) {
|
|
90
|
+
throw new Error(`Base branch '${baseBranchName}' not found in repository (E: 9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e)`);
|
|
79
91
|
}
|
|
80
|
-
const
|
|
81
|
-
if (!
|
|
82
|
-
throw new Error(`Branch '${
|
|
92
|
+
const incomingBranchIbGib = branchIbGibs.findLast((b) => b?.data?.name === trimmedIncomingBranch);
|
|
93
|
+
if (!incomingBranchIbGib) {
|
|
94
|
+
throw new Error(`Branch '${trimmedIncomingBranch}' does not exist (E: 0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f)`);
|
|
83
95
|
}
|
|
84
|
-
// 3. Resolve
|
|
85
|
-
const
|
|
96
|
+
// 3. Resolve base branch space & incoming branch space
|
|
97
|
+
const baseSpaceRes = await getOrCreateBranchSpace({
|
|
86
98
|
metaspace,
|
|
87
99
|
vcsPath,
|
|
88
|
-
branchName:
|
|
100
|
+
branchName: baseBranchName,
|
|
89
101
|
});
|
|
90
|
-
const
|
|
91
|
-
const
|
|
102
|
+
const baseSpace = baseSpaceRes.space;
|
|
103
|
+
const incomingSpaceRes = await getOrCreateBranchSpace({
|
|
92
104
|
metaspace,
|
|
93
105
|
vcsPath,
|
|
94
|
-
branchName:
|
|
106
|
+
branchName: trimmedIncomingBranch,
|
|
95
107
|
});
|
|
96
|
-
const
|
|
97
|
-
await putInSpace({ space:
|
|
98
|
-
await putInSpace({ space:
|
|
99
|
-
// Resolve latest branch tip inside
|
|
100
|
-
const
|
|
101
|
-
const
|
|
102
|
-
const
|
|
103
|
-
const
|
|
104
|
-
addr:
|
|
105
|
-
space:
|
|
108
|
+
const incomingSpace = incomingSpaceRes.space;
|
|
109
|
+
await putInSpace({ space: baseSpace, ibGib: baseBranchIbGib });
|
|
110
|
+
await putInSpace({ space: incomingSpace, ibGib: incomingBranchIbGib });
|
|
111
|
+
// Resolve latest branch tip inside incomingSpace (in case commits occurred on incoming branch)
|
|
112
|
+
const incomingBranchTjpAddr = incomingBranchIbGib.rel8ns?.tjp?.at(0) || getIbGibAddr({ ibGib: incomingBranchIbGib });
|
|
113
|
+
const latestIncomingBranchRes = await getLatestAddrs({ space: incomingSpace, addrs: [incomingBranchTjpAddr] });
|
|
114
|
+
const latestIncomingBranchAddr = latestIncomingBranchRes?.data?.latestAddrs?.[0] || getIbGibAddr({ ibGib: incomingBranchIbGib });
|
|
115
|
+
const latestIncomingBranchIbGib = (await getIbGibWithMetaspaceFallback({
|
|
116
|
+
addr: latestIncomingBranchAddr,
|
|
117
|
+
space: incomingSpace,
|
|
106
118
|
metaspace,
|
|
107
|
-
})) ||
|
|
108
|
-
const
|
|
109
|
-
if (!
|
|
110
|
-
throw new Error(`
|
|
111
|
-
}
|
|
112
|
-
const
|
|
113
|
-
addr:
|
|
114
|
-
space:
|
|
119
|
+
})) || incomingBranchIbGib;
|
|
120
|
+
const incomingRootAddr = latestIncomingBranchIbGib.rel8ns?.b2tfs_item?.at(-1);
|
|
121
|
+
if (!incomingRootAddr) {
|
|
122
|
+
throw new Error(`Incoming branch '${trimmedIncomingBranch}' has no valid root item address (E: 3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e)`);
|
|
123
|
+
}
|
|
124
|
+
const incomingRootItem = await getIbGibWithMetaspaceFallback({
|
|
125
|
+
addr: incomingRootAddr,
|
|
126
|
+
space: incomingSpace,
|
|
115
127
|
metaspace,
|
|
116
128
|
});
|
|
117
|
-
if (!
|
|
118
|
-
throw new Error(`
|
|
129
|
+
if (!incomingRootItem) {
|
|
130
|
+
throw new Error(`Incoming root item '${incomingRootAddr}' not found in incoming space (E: 4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f)`);
|
|
131
|
+
}
|
|
132
|
+
if (diagLog) {
|
|
133
|
+
diag('resolving branches & spaces');
|
|
134
|
+
await logBranchState({ label: 'baseBranch (main)', branchIbGib: baseBranchIbGib, space: baseSpace });
|
|
135
|
+
await logBranchState({ label: 'incomingBranch (feature-merge)', branchIbGib: incomingBranchIbGib, space: incomingSpace });
|
|
136
|
+
await logItemState({ label: 'incomingRootItem', itemIbGib: incomingRootItem, space: incomingSpace });
|
|
119
137
|
}
|
|
120
|
-
// 4. Setup SyncPeerInnerspace and SyncSagaCoordinator syncing
|
|
138
|
+
// 4. Setup SyncPeerInnerspace and SyncSagaCoordinator syncing incoming branch space into base branch space
|
|
121
139
|
const peer = new SyncPeerInnerspace_V1(clone(SYNC_PEER_INNERSPACE_DEFAULT_DATA_V1));
|
|
122
140
|
await peer.initialized;
|
|
123
141
|
await peer.initializeOpts({
|
|
124
142
|
localMetaspace: metaspace,
|
|
125
|
-
localSpace:
|
|
126
|
-
receiverSpace:
|
|
143
|
+
localSpace: incomingSpace,
|
|
144
|
+
receiverSpace: baseSpace,
|
|
127
145
|
receiverCoordinator: new SyncSagaCoordinator(),
|
|
128
146
|
receiverMetaspace: metaspace,
|
|
129
147
|
});
|
|
130
148
|
const senderCoordinator = new SyncSagaCoordinator();
|
|
131
149
|
const syncSaga = await senderCoordinator.sync({
|
|
132
150
|
peer,
|
|
133
|
-
localSpace:
|
|
151
|
+
localSpace: incomingSpace,
|
|
134
152
|
metaspace,
|
|
135
|
-
domainIbGibs: [
|
|
153
|
+
domainIbGibs: [incomingRootItem],
|
|
136
154
|
conflictStrategy: SyncConflictStrategy.optimisticWithLCS,
|
|
137
155
|
graftPreference: GraftPreference.receiver,
|
|
138
156
|
});
|
|
139
157
|
await syncSaga.done;
|
|
140
|
-
// 5.
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
|
|
158
|
+
// 5. Reify the base branch filesystem hierarchy.
|
|
159
|
+
// After sync, any child timelines (files or subfolders) that were merged/advanced
|
|
160
|
+
// in baseSpace will have newer tips. reifyB2tFSHierarchy bubbles all updated child tips
|
|
161
|
+
// up through the folder DAG, evolving parents in-place and returning the newly reified root item.
|
|
162
|
+
const currentBaseRootItemAddr = baseBranchIbGib.rel8ns?.b2tfs_item?.at(-1);
|
|
163
|
+
if (!currentBaseRootItemAddr) {
|
|
164
|
+
throw new Error(`Base branch '${baseBranchName}' has no root item address (E: 6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d)`);
|
|
165
|
+
}
|
|
166
|
+
const reifyRes = await reifyB2tFSHierarchy({
|
|
167
|
+
rootItemAddr: currentBaseRootItemAddr,
|
|
168
|
+
space: baseSpace,
|
|
147
169
|
metaspace,
|
|
148
|
-
})
|
|
149
|
-
const
|
|
170
|
+
});
|
|
171
|
+
const reifiedRootItem = reifyRes.reifiedRootItem;
|
|
172
|
+
const reifiedRootAddr = getIbGibAddr({ ibGib: reifiedRootItem });
|
|
173
|
+
if (diagLog) {
|
|
174
|
+
diag('after reification');
|
|
175
|
+
logAddr('currentBaseRootItemAddr', currentBaseRootItemAddr);
|
|
176
|
+
logAddr('reifiedRootAddr', reifiedRootAddr);
|
|
177
|
+
console.log(`[merge-cmd] reification hasChanges:`, reifyRes.hasChanges);
|
|
178
|
+
console.log(`[merge-cmd] reifiedAddrsMap:`, JSON.stringify(reifyRes.reifiedAddrsMap));
|
|
179
|
+
}
|
|
180
|
+
// 5b. Evolve the base branch ibgib to point at the reified root item tip.
|
|
181
|
+
// The sync engine does not update branch ibgibs — branches live in
|
|
182
|
+
// their own space and are never domain ibgibs in the sync. We advance
|
|
183
|
+
// the branch pointer to the reified root item.
|
|
184
|
+
let mergedBranchAddr = getIbGibAddr({ ibGib: baseBranchIbGib });
|
|
185
|
+
if (reifyRes.hasChanges && reifiedRootAddr !== currentBaseRootItemAddr) {
|
|
186
|
+
if (diagLog) {
|
|
187
|
+
console.log(`[merge-cmd] Evolving base branch: root item changing from ${currentBaseRootItemAddr} -> ${reifiedRootAddr}`);
|
|
188
|
+
}
|
|
189
|
+
const resRel8Branch = await rel8({
|
|
190
|
+
src: baseBranchIbGib,
|
|
191
|
+
rel8nsToReplaceByAddr: {
|
|
192
|
+
b2tfs_item: [{ oldAddr: currentBaseRootItemAddr, newAddr: reifiedRootAddr }],
|
|
193
|
+
},
|
|
194
|
+
dna: true,
|
|
195
|
+
nCounter: true,
|
|
196
|
+
});
|
|
197
|
+
const evolvedBranchIbGib = resRel8Branch.newIbGib;
|
|
198
|
+
await persistTransformResult({ resTransform: resRel8Branch, space: baseSpace });
|
|
199
|
+
await registerNewIbGib({ ibGib: evolvedBranchIbGib, space: baseSpace });
|
|
200
|
+
mergedBranchAddr = getIbGibAddr({ ibGib: evolvedBranchIbGib });
|
|
201
|
+
if (diagLog) {
|
|
202
|
+
console.log(`[merge-cmd] Base branch evolved to addr: ${mergedBranchAddr}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
if (diagLog) {
|
|
207
|
+
console.log(`[merge-cmd] Base branch root item unchanged (${currentBaseRootItemAddr})`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
150
210
|
// Update indexIbGib to reference new merged branch node
|
|
151
211
|
await updateB2tFSIndexIbGib({
|
|
152
|
-
space:
|
|
212
|
+
space: baseSpace,
|
|
153
213
|
metaspace,
|
|
154
214
|
indexIbGib,
|
|
155
215
|
rel8nsToUpdate: {
|
|
@@ -157,24 +217,32 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
|
|
|
157
217
|
},
|
|
158
218
|
vcsPath,
|
|
159
219
|
});
|
|
220
|
+
const mergedRootItemAddr = reifiedRootAddr;
|
|
221
|
+
if (diagLog) {
|
|
222
|
+
diag('projecting onto disk');
|
|
223
|
+
logAddr('mergedRootItemAddr', mergedRootItemAddr);
|
|
224
|
+
}
|
|
160
225
|
// 6. Project merged branch snapshot files onto physical worktree disk
|
|
161
|
-
const isDefaultBranch =
|
|
226
|
+
const isDefaultBranch = baseBranchName === 'main';
|
|
162
227
|
const worktreePath = isDefaultBranch
|
|
163
228
|
? repoRoot
|
|
164
|
-
: path.join(repoRoot, 'b',
|
|
229
|
+
: path.join(repoRoot, 'b', baseBranchName);
|
|
165
230
|
await fs.mkdir(worktreePath, { recursive: true });
|
|
166
231
|
if (mergedRootItemAddr) {
|
|
167
232
|
const mergedRootItem = await getIbGibWithMetaspaceFallback({
|
|
168
233
|
addr: mergedRootItemAddr,
|
|
169
|
-
space:
|
|
234
|
+
space: baseSpace,
|
|
170
235
|
metaspace,
|
|
171
236
|
});
|
|
237
|
+
if (diagLog) {
|
|
238
|
+
await logItemState({ label: 'mergedRootItem to write', itemIbGib: mergedRootItem, space: baseSpace });
|
|
239
|
+
}
|
|
172
240
|
if (mergedRootItem) {
|
|
173
241
|
if (mergedRootItem.data?.fsType === 'file') {
|
|
174
242
|
await writeB2tFSItemToFS({
|
|
175
243
|
item: mergedRootItem,
|
|
176
244
|
destPath: worktreePath,
|
|
177
|
-
space:
|
|
245
|
+
space: baseSpace,
|
|
178
246
|
metaspace,
|
|
179
247
|
});
|
|
180
248
|
}
|
|
@@ -183,14 +251,14 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
|
|
|
183
251
|
for (const childAddr of childAddrs) {
|
|
184
252
|
const childItem = await getIbGibWithMetaspaceFallback({
|
|
185
253
|
addr: childAddr,
|
|
186
|
-
space:
|
|
254
|
+
space: baseSpace,
|
|
187
255
|
metaspace,
|
|
188
256
|
});
|
|
189
257
|
if (childItem) {
|
|
190
258
|
await writeB2tFSItemToFS({
|
|
191
259
|
item: childItem,
|
|
192
260
|
destPath: worktreePath,
|
|
193
|
-
space:
|
|
261
|
+
space: baseSpace,
|
|
194
262
|
metaspace,
|
|
195
263
|
});
|
|
196
264
|
}
|
|
@@ -199,15 +267,15 @@ export async function executeMergeCmd({ targetBranchName, targetDir = process.cw
|
|
|
199
267
|
}
|
|
200
268
|
}
|
|
201
269
|
if (!quiet) {
|
|
202
|
-
console.log(`Successfully merged branch '${
|
|
270
|
+
console.log(`Successfully merged branch '${trimmedIncomingBranch}' into '${baseBranchName}' (I: 1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a)`);
|
|
203
271
|
console.log(` Worktree projection: ${worktreePath}`);
|
|
204
272
|
}
|
|
205
273
|
return {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
mergedBranchAddr
|
|
274
|
+
baseBranch: baseBranchName,
|
|
275
|
+
incomingBranch: trimmedIncomingBranch,
|
|
276
|
+
baseSpaceId: baseSpaceRes.spaceId,
|
|
277
|
+
incomingSpaceId: incomingSpaceRes.spaceId,
|
|
278
|
+
mergedBranchAddr,
|
|
211
279
|
worktreePath,
|
|
212
280
|
};
|
|
213
281
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/merge-cmd.mts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"merge-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/merge-cmd.mts"],"names":[],"mappings":"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"}
|
|
@@ -108,8 +108,8 @@ export async function main({ argv = process.argv.slice(2), } = {}) {
|
|
|
108
108
|
break;
|
|
109
109
|
}
|
|
110
110
|
case VCS_SUBCOMMANDS.MERGE: {
|
|
111
|
-
const
|
|
112
|
-
await executeMergeCmd({
|
|
111
|
+
const incomingBranchName = parsed.positionals[0] || parsed.flags.branchName;
|
|
112
|
+
await executeMergeCmd({ incomingBranchName });
|
|
113
113
|
break;
|
|
114
114
|
}
|
|
115
115
|
case VCS_SUBCOMMANDS.RESET: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcs-cli-main.mjs","sourceRoot":"","sources":["../../src/cli/vcs-cli-main.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vcs-cli-main.mjs","sourceRoot":"","sources":["../../src/cli/vcs-cli-main.mts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* and two-pass transform application.
|
|
6
6
|
*/
|
|
7
7
|
import { IbGib_V1 } from '@ibgib/ts-gib/dist/V1/types.mjs';
|
|
8
|
-
import { TransformResult } from '@ibgib/ts-gib/dist/types.mjs';
|
|
8
|
+
import { TransformResult, IbGibAddr } from '@ibgib/ts-gib/dist/types.mjs';
|
|
9
9
|
import { MetaspaceService } from '@ibgib/core-gib/dist/witness/space/metaspace/metaspace-types.mjs';
|
|
10
10
|
import { IbGibSpaceAny } from '@ibgib/core-gib/dist/witness/space/space-base-v1.mjs';
|
|
11
11
|
import { B2tFSItemIbGib_V1, B2tFSItemData_V1, B2tFSItemRel8ns_V1, B2tFSItemDiffInfo } from './item-types.mjs';
|
|
@@ -61,4 +61,34 @@ export declare function applyB2tFSItemDiff({ diff, space, metaspace, }: {
|
|
|
61
61
|
space: IbGibSpaceAny;
|
|
62
62
|
metaspace: MetaspaceService;
|
|
63
63
|
}): Promise<void>;
|
|
64
|
+
export interface ReifyB2tFSHierarchyOpts {
|
|
65
|
+
/** Root B2tFS item (folder or file). Either rootItem or rootItemAddr required. */
|
|
66
|
+
rootItem?: B2tFSItemIbGib_V1;
|
|
67
|
+
/** Address of root B2tFS item. Either rootItem or rootItemAddr required. */
|
|
68
|
+
rootItemAddr?: IbGibAddr;
|
|
69
|
+
/** Space containing the branch items and updated timeline tips. */
|
|
70
|
+
space: IbGibSpaceAny;
|
|
71
|
+
/** Metaspace service instance for lookups and registrations. */
|
|
72
|
+
metaspace: MetaspaceService;
|
|
73
|
+
}
|
|
74
|
+
export interface ReifyB2tFSHierarchyResult {
|
|
75
|
+
/** The reified root B2tFS item (evolved if any descendants changed, or unchanged if no descendants changed). */
|
|
76
|
+
reifiedRootItem: B2tFSItemIbGib_V1;
|
|
77
|
+
/** True if one or more folder/file nodes in the hierarchy evolved to new tips. */
|
|
78
|
+
hasChanges: boolean;
|
|
79
|
+
/** Map of old address -> new address for every node that evolved in this reification run. */
|
|
80
|
+
reifiedAddrsMap: {
|
|
81
|
+
[oldAddr: string]: string;
|
|
82
|
+
};
|
|
83
|
+
/** All newly evolved and persisted intermediate/root folder items created during reification. */
|
|
84
|
+
evolvedItems: B2tFSItemIbGib_V1[];
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Reifies a B2tFS filesystem item hierarchy (folders and files) bottom-up.
|
|
88
|
+
*
|
|
89
|
+
* Traverses `b2tfs_child` relationship edges. If any child timeline advanced
|
|
90
|
+
* in `space` (e.g. during a 3-way merge or parallel commit), the parent folders
|
|
91
|
+
* are evolved in-place using `rel8` with the updated child tip addresses.
|
|
92
|
+
*/
|
|
93
|
+
export declare function reifyB2tFSHierarchy({ rootItem, rootItemAddr, space, metaspace, }: ReifyB2tFSHierarchyOpts): Promise<ReifyB2tFSHierarchyResult>;
|
|
64
94
|
//# sourceMappingURL=item-helper.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item-helper.d.mts","sourceRoot":"","sources":["../../../src/engine/item/item-helper.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"item-helper.d.mts","sourceRoot":"","sources":["../../../src/engine/item/item-helper.mts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ import { mut8 } from '@ibgib/ts-gib/dist/V1/transforms/mut8.mjs';
|
|
|
13
13
|
import { rel8 } from '@ibgib/ts-gib/dist/V1/transforms/rel8.mjs';
|
|
14
14
|
import { isIbGib } from '@ibgib/core-gib/dist/common/other/ibgib-helper.mjs';
|
|
15
15
|
import { persistTransformResult, getFromSpace } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
16
|
+
import { reifyDependencyGraph } from '@ibgib/core-gib/dist/common/other/graph-helper.mjs';
|
|
16
17
|
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
17
18
|
import { parseSpaceQualifiedIbGibAddr } from '../index/index-helper.mjs';
|
|
18
19
|
import { B2TFS_ITEM_ATOM, getB2tFSItemIb } from './item-atom-helper.mjs';
|
|
@@ -379,4 +380,42 @@ export async function applyB2tFSItemDiff({ diff, space, metaspace, }) {
|
|
|
379
380
|
}
|
|
380
381
|
}
|
|
381
382
|
}
|
|
383
|
+
/**
|
|
384
|
+
* Reifies a B2tFS filesystem item hierarchy (folders and files) bottom-up.
|
|
385
|
+
*
|
|
386
|
+
* Traverses `b2tfs_child` relationship edges. If any child timeline advanced
|
|
387
|
+
* in `space` (e.g. during a 3-way merge or parallel commit), the parent folders
|
|
388
|
+
* are evolved in-place using `rel8` with the updated child tip addresses.
|
|
389
|
+
*/
|
|
390
|
+
export async function reifyB2tFSHierarchy({ rootItem, rootItemAddr, space, metaspace, }) {
|
|
391
|
+
const lc = `${lcFile}[${reifyB2tFSHierarchy.name}]`;
|
|
392
|
+
try {
|
|
393
|
+
if (logalot) {
|
|
394
|
+
console.log(`${lc} starting... (I: 3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a)`);
|
|
395
|
+
}
|
|
396
|
+
const res = await reifyDependencyGraph({
|
|
397
|
+
ibGib: rootItem,
|
|
398
|
+
ibGibAddr: rootItemAddr,
|
|
399
|
+
onlyRel8nNames: [B2TFS_CHILD_ITEM_REL8N_NAME],
|
|
400
|
+
space,
|
|
401
|
+
metaspace,
|
|
402
|
+
});
|
|
403
|
+
return {
|
|
404
|
+
reifiedRootItem: res.reifiedIbGib,
|
|
405
|
+
hasChanges: res.hasChanges,
|
|
406
|
+
reifiedAddrsMap: res.reifiedAddrsMap,
|
|
407
|
+
evolvedItems: res.evolvedIbGibs,
|
|
408
|
+
};
|
|
409
|
+
}
|
|
410
|
+
catch (error) {
|
|
411
|
+
console.error(`${lc} ${extractErrorMsg(error)} (E: 4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b)`);
|
|
412
|
+
throw error;
|
|
413
|
+
}
|
|
414
|
+
finally {
|
|
415
|
+
if (logalot) {
|
|
416
|
+
console.log(`${lc} complete. (I: 5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c)`);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
// #endregion reifyB2tFSHierarchy
|
|
382
421
|
//# sourceMappingURL=item-helper.mjs.map
|