@ibgib/vcs-gib 0.0.6 → 0.0.18
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/README.md +24 -2
- package/VCS_CLI_USER_GUIDE.md +2 -2
- package/dist/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.d.mts.map +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/AUTO-GENERATED-version.mjs.map +1 -1
- package/dist/bootstrap/node-bootstrap.d.mts.map +1 -1
- package/dist/bootstrap/node-bootstrap.mjs +9 -0
- package/dist/bootstrap/node-bootstrap.mjs.map +1 -1
- package/dist/bootstrap/{node-bootstrap.respec.node.d.mts → node-bootstrap.respec.d.mts} +1 -1
- package/dist/bootstrap/node-bootstrap.respec.d.mts.map +1 -0
- package/dist/bootstrap/{node-bootstrap.respec.node.mjs → node-bootstrap.respec.mjs} +1 -1
- package/dist/bootstrap/node-bootstrap.respec.mjs.map +1 -0
- package/dist/cli/cli-arg-parser.d.mts +3 -0
- package/dist/cli/cli-arg-parser.d.mts.map +1 -1
- package/dist/cli/cli-arg-parser.mjs +13 -1
- package/dist/cli/cli-arg-parser.mjs.map +1 -1
- package/dist/cli/{cli-arg-parser.respec.node.d.mts → cli-arg-parser.respec.d.mts} +1 -1
- package/dist/cli/cli-arg-parser.respec.d.mts.map +1 -0
- package/dist/cli/{cli-arg-parser.respec.node.mjs → cli-arg-parser.respec.mjs} +1 -1
- package/dist/cli/cli-arg-parser.respec.mjs.map +1 -0
- package/dist/cli/cli-constants.d.mts +6 -0
- package/dist/cli/cli-constants.d.mts.map +1 -1
- package/dist/cli/cli-constants.mjs +24 -0
- package/dist/cli/cli-constants.mjs.map +1 -1
- package/dist/cli/{cli-e2e.respec.node.d.mts → cli-e2e.respec.d.mts} +1 -1
- package/dist/cli/cli-e2e.respec.d.mts.map +1 -0
- package/dist/cli/{cli-e2e.respec.node.mjs → cli-e2e.respec.mjs} +2 -2
- package/dist/cli/cli-e2e.respec.mjs.map +1 -0
- package/dist/cli/commands/add-cmd.d.mts.map +1 -1
- package/dist/cli/commands/add-cmd.mjs +35 -30
- package/dist/cli/commands/add-cmd.mjs.map +1 -1
- package/dist/cli/commands/{branch-checkout-cmd.respec.node.d.mts → branch-checkout-cmd.respec.d.mts} +1 -1
- package/dist/cli/commands/branch-checkout-cmd.respec.d.mts.map +1 -0
- package/dist/cli/commands/{branch-checkout-cmd.respec.node.mjs → branch-checkout-cmd.respec.mjs} +172 -8
- package/dist/cli/commands/branch-checkout-cmd.respec.mjs.map +1 -0
- package/dist/cli/commands/branch-cmd.d.mts +2 -1
- package/dist/cli/commands/branch-cmd.d.mts.map +1 -1
- package/dist/cli/commands/branch-cmd.mjs +59 -8
- package/dist/cli/commands/branch-cmd.mjs.map +1 -1
- package/dist/cli/commands/checkout-cmd.d.mts.map +1 -1
- package/dist/cli/commands/checkout-cmd.mjs +38 -18
- package/dist/cli/commands/checkout-cmd.mjs.map +1 -1
- package/dist/cli/commands/commit-cmd.d.mts.map +1 -1
- package/dist/cli/commands/commit-cmd.mjs +26 -23
- package/dist/cli/commands/commit-cmd.mjs.map +1 -1
- package/dist/cli/commands/{commit-log-cmd.respec.node.d.mts → commit-log-cmd.respec.d.mts} +1 -1
- package/dist/cli/commands/commit-log-cmd.respec.d.mts.map +1 -0
- package/dist/cli/commands/{commit-log-cmd.respec.node.mjs → commit-log-cmd.respec.mjs} +1 -1
- package/dist/cli/commands/commit-log-cmd.respec.mjs.map +1 -0
- package/dist/cli/commands/{init-cmd.respec.node.d.mts → init-cmd.respec.d.mts} +1 -1
- package/dist/cli/commands/init-cmd.respec.d.mts.map +1 -0
- package/dist/cli/commands/{init-cmd.respec.node.mjs → init-cmd.respec.mjs} +1 -1
- package/dist/cli/commands/init-cmd.respec.mjs.map +1 -0
- package/dist/cli/commands/merge-cmd.d.mts +23 -0
- package/dist/cli/commands/merge-cmd.d.mts.map +1 -0
- package/dist/cli/commands/merge-cmd.mjs +224 -0
- package/dist/cli/commands/merge-cmd.mjs.map +1 -0
- package/dist/cli/commands/reset-cmd.d.mts +21 -0
- package/dist/cli/commands/reset-cmd.d.mts.map +1 -0
- package/dist/cli/commands/reset-cmd.mjs +93 -0
- package/dist/cli/commands/reset-cmd.mjs.map +1 -0
- package/dist/cli/commands/reset-restore-cmd.respec.d.mts +7 -0
- package/dist/cli/commands/reset-restore-cmd.respec.d.mts.map +1 -0
- package/dist/cli/commands/reset-restore-cmd.respec.mjs +185 -0
- package/dist/cli/commands/reset-restore-cmd.respec.mjs.map +1 -0
- package/dist/cli/commands/restore-cmd.d.mts +22 -0
- package/dist/cli/commands/restore-cmd.d.mts.map +1 -0
- package/dist/cli/commands/restore-cmd.mjs +115 -0
- package/dist/cli/commands/restore-cmd.mjs.map +1 -0
- package/dist/cli/commands/{status-add-cmd.respec.node.d.mts → status-add-cmd.respec.d.mts} +1 -1
- package/dist/cli/commands/status-add-cmd.respec.d.mts.map +1 -0
- package/dist/cli/commands/{status-add-cmd.respec.node.mjs → status-add-cmd.respec.mjs} +25 -1
- package/dist/cli/commands/status-add-cmd.respec.mjs.map +1 -0
- package/dist/cli/vcs-cli-main.d.mts.map +1 -1
- package/dist/cli/vcs-cli-main.mjs +36 -3
- package/dist/cli/vcs-cli-main.mjs.map +1 -1
- package/dist/engine/branch/branch-graph-helper.d.mts +12 -3
- package/dist/engine/branch/branch-graph-helper.d.mts.map +1 -1
- package/dist/engine/branch/branch-graph-helper.mjs +50 -18
- package/dist/engine/branch/branch-graph-helper.mjs.map +1 -1
- package/dist/engine/branch/branch-space-helper.d.mts +1 -0
- package/dist/engine/branch/branch-space-helper.d.mts.map +1 -1
- package/dist/engine/branch/branch-space-helper.mjs +1 -0
- package/dist/engine/branch/branch-space-helper.mjs.map +1 -1
- package/dist/engine/branch/{branch-space.respec.node.d.mts → branch-space.respec.d.mts} +1 -1
- package/dist/engine/branch/branch-space.respec.d.mts.map +1 -0
- package/dist/engine/branch/{branch-space.respec.node.mjs → branch-space.respec.mjs} +12 -7
- package/dist/engine/branch/branch-space.respec.mjs.map +1 -0
- package/dist/engine/diff/{line-diff-helper.respec.node.d.mts → line-diff-helper.respec.d.mts} +1 -1
- package/dist/engine/diff/line-diff-helper.respec.d.mts.map +1 -0
- package/dist/engine/diff/{line-diff-helper.respec.node.mjs → line-diff-helper.respec.mjs} +1 -1
- package/dist/engine/diff/line-diff-helper.respec.mjs.map +1 -0
- package/dist/engine/filter/{glob-helper.respec.node.d.mts → glob-helper.respec.d.mts} +1 -1
- package/dist/engine/filter/glob-helper.respec.d.mts.map +1 -0
- package/dist/engine/filter/{glob-helper.respec.node.mjs → glob-helper.respec.mjs} +1 -1
- package/dist/engine/filter/glob-helper.respec.mjs.map +1 -0
- package/dist/engine/index/index-helper.d.mts +35 -0
- package/dist/engine/index/index-helper.d.mts.map +1 -1
- package/dist/engine/index/index-helper.mjs +241 -0
- package/dist/engine/index/index-helper.mjs.map +1 -1
- package/dist/engine/item/item-helper.d.mts +29 -3
- package/dist/engine/item/item-helper.d.mts.map +1 -1
- package/dist/engine/item/item-helper.mjs +234 -56
- package/dist/engine/item/item-helper.mjs.map +1 -1
- package/dist/engine/item/item.respec.d.mts +7 -0
- package/dist/engine/item/item.respec.d.mts.map +1 -0
- package/dist/engine/item/item.respec.mjs +75 -0
- package/dist/engine/item/item.respec.mjs.map +1 -0
- package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts +38 -0
- package/dist/engine/merge/b2tfs-3way-merge-strategy.d.mts.map +1 -0
- package/dist/engine/merge/b2tfs-3way-merge-strategy.mjs +593 -0
- package/dist/engine/merge/b2tfs-3way-merge-strategy.mjs.map +1 -0
- package/dist/engine/merge/b2tfs-merge-strategy.respec.d.mts +7 -0
- package/dist/engine/merge/b2tfs-merge-strategy.respec.d.mts.map +1 -0
- package/dist/engine/merge/b2tfs-merge-strategy.respec.mjs +335 -0
- package/dist/engine/merge/b2tfs-merge-strategy.respec.mjs.map +1 -0
- package/dist/respec-gib.node.mjs +1 -1
- package/dist/respec-gib.node.mjs.map +1 -1
- package/dist/{vcs-gib.respec.node.d.mts → vcs-gib.respec.d.mts} +1 -1
- package/dist/vcs-gib.respec.d.mts.map +1 -0
- package/dist/{vcs-gib.respec.node.mjs → vcs-gib.respec.mjs} +1 -1
- package/dist/vcs-gib.respec.mjs.map +1 -0
- package/package.json +3 -3
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/bootstrap/node-bootstrap.mts +6 -0
- package/src/cli/cli-arg-parser.mts +15 -0
- package/src/cli/cli-constants.mts +27 -0
- package/src/cli/{cli-e2e.respec.node.mts → cli-e2e.respec.mts} +2 -2
- package/src/cli/commands/add-cmd.mts +41 -29
- package/src/cli/commands/{branch-checkout-cmd.respec.node.mts → branch-checkout-cmd.respec.mts} +190 -8
- package/src/cli/commands/branch-cmd.mts +78 -8
- package/src/cli/commands/checkout-cmd.mts +48 -23
- package/src/cli/commands/commit-cmd.mts +35 -26
- package/src/cli/commands/merge-cmd.mts +289 -0
- package/src/cli/commands/reset-cmd.mts +128 -0
- package/src/cli/commands/reset-restore-cmd.respec.mts +222 -0
- package/src/cli/commands/restore-cmd.mts +155 -0
- package/src/cli/commands/{status-add-cmd.respec.node.mts → status-add-cmd.respec.mts} +27 -0
- package/src/cli/vcs-cli-main.mts +36 -3
- package/src/engine/branch/branch-graph-helper.mts +66 -18
- package/src/engine/branch/branch-space-helper.mts +6 -0
- package/src/engine/branch/{branch-space.respec.node.mts → branch-space.respec.mts} +12 -6
- package/src/engine/index/index-helper.mts +324 -0
- package/src/engine/item/item-helper.mts +284 -58
- package/src/engine/item/item.respec.mts +92 -0
- package/src/engine/merge/b2tfs-3way-merge-strategy.mts +725 -0
- package/src/engine/merge/b2tfs-merge-strategy.respec.mts +438 -0
- package/src/respec-gib.node.mts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/bootstrap/node-bootstrap.respec.node.d.mts.map +0 -1
- package/dist/bootstrap/node-bootstrap.respec.node.mjs.map +0 -1
- package/dist/cli/cli-arg-parser.respec.node.d.mts.map +0 -1
- package/dist/cli/cli-arg-parser.respec.node.mjs.map +0 -1
- package/dist/cli/cli-e2e.respec.node.d.mts.map +0 -1
- package/dist/cli/cli-e2e.respec.node.mjs.map +0 -1
- package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs.map +0 -1
- package/dist/cli/commands/commit-log-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/commit-log-cmd.respec.node.mjs.map +0 -1
- package/dist/cli/commands/init-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/init-cmd.respec.node.mjs.map +0 -1
- package/dist/cli/commands/status-add-cmd.respec.node.d.mts.map +0 -1
- package/dist/cli/commands/status-add-cmd.respec.node.mjs.map +0 -1
- package/dist/engine/branch/branch-space.respec.node.d.mts.map +0 -1
- package/dist/engine/branch/branch-space.respec.node.mjs.map +0 -1
- package/dist/engine/diff/line-diff-helper.respec.node.d.mts.map +0 -1
- package/dist/engine/diff/line-diff-helper.respec.node.mjs.map +0 -1
- package/dist/engine/filter/glob-helper.respec.node.d.mts.map +0 -1
- package/dist/engine/filter/glob-helper.respec.node.mjs.map +0 -1
- package/dist/vcs-gib.respec.node.d.mts.map +0 -1
- package/dist/vcs-gib.respec.node.mjs.map +0 -1
- package/test_runs/001-hello-node/20260728_090100_0001-flow-core-main.md +0 -39
- package/test_runs/001-hello-node/20260728_090200_0003-flow-branching-worktree.md +0 -54
- package/test_runs/001-hello-node/20260728_090300_0002-flow-selective-add.md +0 -45
- package/test_runs/001-hello-node/20260728_142100_0007-flow-edge-cases.md +0 -44
- package/test_runs/001-hello-node/20260728_142400_0005-flow-hardcoded-ignores.md +0 -36
- package/tools/pack-for-test.mjs +0 -73
- /package/src/bootstrap/{node-bootstrap.respec.node.mts → node-bootstrap.respec.mts} +0 -0
- /package/src/cli/{cli-arg-parser.respec.node.mts → cli-arg-parser.respec.mts} +0 -0
- /package/src/cli/commands/{commit-log-cmd.respec.node.mts → commit-log-cmd.respec.mts} +0 -0
- /package/src/cli/commands/{init-cmd.respec.node.mts → init-cmd.respec.mts} +0 -0
- /package/src/engine/diff/{line-diff-helper.respec.node.mts → line-diff-helper.respec.mts} +0 -0
- /package/src/engine/filter/{glob-helper.respec.node.mts → glob-helper.respec.mts} +0 -0
- /package/src/{vcs-gib.respec.node.mts → vcs-gib.respec.mts} +0 -0
package/dist/cli/commands/{branch-checkout-cmd.respec.node.mjs → branch-checkout-cmd.respec.mjs}
RENAMED
|
@@ -5,16 +5,17 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import fs from 'node:fs/promises';
|
|
8
|
-
import { respecfully,
|
|
8
|
+
import { respecfully, iReckon, ifWeMight } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
9
9
|
import { executeInitCmd } from './init-cmd.mjs';
|
|
10
10
|
import { executeAddCmd } from './add-cmd.mjs';
|
|
11
11
|
import { executeCommitCmd } from './commit-cmd.mjs';
|
|
12
12
|
import { executeBranchCmd } from './branch-cmd.mjs';
|
|
13
13
|
import { executeCheckoutCmd } from './checkout-cmd.mjs';
|
|
14
|
+
import { executeMergeCmd } from './merge-cmd.mjs';
|
|
14
15
|
import { executeStatusCmd } from './status-cmd.mjs';
|
|
15
16
|
const lc = `[apps/vcs-gib/src/cli/commands/branch-checkout-cmd.respec.node.mts]`;
|
|
16
|
-
await respecfully(lc, `vcs branch and
|
|
17
|
-
await
|
|
17
|
+
await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async () => {
|
|
18
|
+
await ifWeMight(lc, `lists default branch main for new repository`, async () => {
|
|
18
19
|
const testDir = path.join(process.cwd(), '.test_branch_checkout_1');
|
|
19
20
|
const vcsFolderName = '.vcsgib_test_bc_1';
|
|
20
21
|
try {
|
|
@@ -36,7 +37,7 @@ await respecfully(lc, `vcs branch and vcs checkout Command Handlers`, async () =
|
|
|
36
37
|
await fs.rm(testDir, { recursive: true, force: true });
|
|
37
38
|
}
|
|
38
39
|
});
|
|
39
|
-
await
|
|
40
|
+
await ifWeMight(lc, `creates new branch from active branch root item and rejects duplicates`, async () => {
|
|
40
41
|
const testDir = path.join(process.cwd(), '.test_branch_checkout_2');
|
|
41
42
|
const vcsFolderName = '.vcsgib_test_bc_2';
|
|
42
43
|
try {
|
|
@@ -91,7 +92,7 @@ await respecfully(lc, `vcs branch and vcs checkout Command Handlers`, async () =
|
|
|
91
92
|
await fs.rm(testDir, { recursive: true, force: true });
|
|
92
93
|
}
|
|
93
94
|
});
|
|
94
|
-
await
|
|
95
|
+
await ifWeMight(lc, `switches active branch with checkout and projects branch snapshot onto worktree subfolder`, async () => {
|
|
95
96
|
const testDir = path.join(process.cwd(), '.test_branch_checkout_3');
|
|
96
97
|
const vcsFolderName = '.vcsgib_test_bc_3';
|
|
97
98
|
try {
|
|
@@ -204,7 +205,7 @@ await respecfully(lc, `vcs branch and vcs checkout Command Handlers`, async () =
|
|
|
204
205
|
await fs.rm(testDir, { recursive: true, force: true });
|
|
205
206
|
}
|
|
206
207
|
});
|
|
207
|
-
await
|
|
208
|
+
await ifWeMight(lc, `rejects checkout when branch does not exist or branchName missing`, async () => {
|
|
208
209
|
const testDir = path.join(process.cwd(), '.test_branch_checkout_4');
|
|
209
210
|
const vcsFolderName = '.vcsgib_test_bc_4';
|
|
210
211
|
try {
|
|
@@ -246,7 +247,7 @@ await respecfully(lc, `vcs branch and vcs checkout Command Handlers`, async () =
|
|
|
246
247
|
await fs.rm(testDir, { recursive: true, force: true });
|
|
247
248
|
}
|
|
248
249
|
});
|
|
249
|
-
await
|
|
250
|
+
await ifWeMight(lc, `lists branches silently on secondary branch without error noise`, async () => {
|
|
250
251
|
const testDir = path.join(process.cwd(), '.test_branch_checkout_secondary');
|
|
251
252
|
const vcsFolderName = '.vcsgib_test_bc_sec';
|
|
252
253
|
try {
|
|
@@ -284,5 +285,168 @@ await respecfully(lc, `vcs branch and vcs checkout Command Handlers`, async () =
|
|
|
284
285
|
await fs.rm(testDir, { recursive: true, force: true });
|
|
285
286
|
}
|
|
286
287
|
});
|
|
288
|
+
await ifWeMight(lc, `branches single file-root item and projects into file-branch worktree on checkout`, async () => {
|
|
289
|
+
const testDir = path.join(process.cwd(), '.test_branch_checkout_file_root');
|
|
290
|
+
const vcsFolderName = '.vcsgib_test_bc_file';
|
|
291
|
+
try {
|
|
292
|
+
await executeInitCmd({
|
|
293
|
+
targetDir: testDir,
|
|
294
|
+
vcsFolderName,
|
|
295
|
+
quiet: true,
|
|
296
|
+
});
|
|
297
|
+
// Create nested file structure src/utils/math.js and commit on main
|
|
298
|
+
const mathRelPath = 'src/utils/math.js';
|
|
299
|
+
await fs.mkdir(path.join(testDir, 'src', 'utils'), { recursive: true });
|
|
300
|
+
await fs.writeFile(path.join(testDir, mathRelPath), 'export function add(a, b) { return a + b; }', 'utf8');
|
|
301
|
+
await executeAddCmd({
|
|
302
|
+
paths: [mathRelPath],
|
|
303
|
+
targetDir: testDir,
|
|
304
|
+
vcsFolderName,
|
|
305
|
+
quiet: true,
|
|
306
|
+
});
|
|
307
|
+
await executeCommitCmd({
|
|
308
|
+
message: 'Add math.js',
|
|
309
|
+
targetDir: testDir,
|
|
310
|
+
vcsFolderName,
|
|
311
|
+
quiet: true,
|
|
312
|
+
});
|
|
313
|
+
// Execute branch command for single file math-opt targeting src/utils/math.js
|
|
314
|
+
const branchRes = await executeBranchCmd({
|
|
315
|
+
branchName: 'math-opt',
|
|
316
|
+
itemPath: mathRelPath,
|
|
317
|
+
targetDir: testDir,
|
|
318
|
+
vcsFolderName,
|
|
319
|
+
quiet: true,
|
|
320
|
+
});
|
|
321
|
+
iReckon(lc, branchRes.createdBranchName).willEqual('math-opt');
|
|
322
|
+
// Attempt branching uncommitted/non-existent item
|
|
323
|
+
let uncommittedErr = false;
|
|
324
|
+
try {
|
|
325
|
+
await executeBranchCmd({
|
|
326
|
+
branchName: 'invalid-file-branch',
|
|
327
|
+
itemPath: 'src/utils/non-existent.js',
|
|
328
|
+
targetDir: testDir,
|
|
329
|
+
vcsFolderName,
|
|
330
|
+
quiet: true,
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
catch (err) {
|
|
334
|
+
uncommittedErr = true;
|
|
335
|
+
iReckon(lc, err.message).includes("not found in active branch snapshot");
|
|
336
|
+
}
|
|
337
|
+
iReckon(lc, uncommittedErr).isGonnaBeTrue();
|
|
338
|
+
// Execute checkout command for math-opt
|
|
339
|
+
const checkoutRes = await executeCheckoutCmd({
|
|
340
|
+
branchName: 'math-opt',
|
|
341
|
+
targetDir: testDir,
|
|
342
|
+
vcsFolderName,
|
|
343
|
+
quiet: true,
|
|
344
|
+
});
|
|
345
|
+
const expectedWorktree = path.join(testDir, 'b', 'math-opt');
|
|
346
|
+
iReckon(lc, checkoutRes.worktreePath).willEqual(expectedWorktree);
|
|
347
|
+
// Verify single file projected at expectedWorktree/math.js (my-repo/b/math-opt/math.js)
|
|
348
|
+
const projectedFilePath = path.join(expectedWorktree, 'math.js');
|
|
349
|
+
const fileExists = await fs.stat(projectedFilePath).then(s => s.isFile()).catch(() => false);
|
|
350
|
+
iReckon(lc, fileExists).isGonnaBeTrue();
|
|
351
|
+
const fileContent = await fs.readFile(projectedFilePath, 'utf8');
|
|
352
|
+
iReckon(lc, fileContent).willEqual('export function add(a, b) { return a + b; }');
|
|
353
|
+
}
|
|
354
|
+
finally {
|
|
355
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
await ifWeMight(lc, `performs vcs merge end-to-end between main and secondary branch`, async () => {
|
|
359
|
+
const testDir = path.join(process.cwd(), '.test_vcs_merge_e2e');
|
|
360
|
+
const vcsFolderName = '.vcsgib_test_merge_e2e';
|
|
361
|
+
try {
|
|
362
|
+
await executeInitCmd({
|
|
363
|
+
targetDir: testDir,
|
|
364
|
+
vcsFolderName,
|
|
365
|
+
quiet: true,
|
|
366
|
+
});
|
|
367
|
+
// 1. Initial commit on main
|
|
368
|
+
const initialContent = "line 1\nline 2\nline 3";
|
|
369
|
+
await fs.writeFile(path.join(testDir, 'app.ts'), initialContent, 'utf8');
|
|
370
|
+
await executeAddCmd({
|
|
371
|
+
paths: [path.join(testDir, 'app.ts')],
|
|
372
|
+
targetDir: testDir,
|
|
373
|
+
vcsFolderName,
|
|
374
|
+
quiet: true,
|
|
375
|
+
});
|
|
376
|
+
await executeCommitCmd({
|
|
377
|
+
message: 'Initial commit on main',
|
|
378
|
+
targetDir: testDir,
|
|
379
|
+
vcsFolderName,
|
|
380
|
+
quiet: true,
|
|
381
|
+
});
|
|
382
|
+
// 2. Create secondary branch feature-merge
|
|
383
|
+
await executeBranchCmd({
|
|
384
|
+
branchName: 'feature-merge',
|
|
385
|
+
targetDir: testDir,
|
|
386
|
+
vcsFolderName,
|
|
387
|
+
quiet: true,
|
|
388
|
+
});
|
|
389
|
+
// 3. Checkout feature-merge branch and make a commit (modify line 3)
|
|
390
|
+
await executeCheckoutCmd({
|
|
391
|
+
branchName: 'feature-merge',
|
|
392
|
+
targetDir: testDir,
|
|
393
|
+
vcsFolderName,
|
|
394
|
+
quiet: true,
|
|
395
|
+
});
|
|
396
|
+
const featureWorktree = path.join(testDir, 'b', 'feature-merge');
|
|
397
|
+
const featureContent = "line 1\nline 2\nline 3 modified by secondary";
|
|
398
|
+
await fs.writeFile(path.join(featureWorktree, 'app.ts'), featureContent, 'utf8');
|
|
399
|
+
await executeAddCmd({
|
|
400
|
+
paths: [path.join(featureWorktree, 'app.ts')],
|
|
401
|
+
targetDir: testDir,
|
|
402
|
+
vcsFolderName,
|
|
403
|
+
quiet: true,
|
|
404
|
+
});
|
|
405
|
+
await executeCommitCmd({
|
|
406
|
+
message: 'Update app.ts on feature-merge',
|
|
407
|
+
targetDir: testDir,
|
|
408
|
+
vcsFolderName,
|
|
409
|
+
quiet: true,
|
|
410
|
+
});
|
|
411
|
+
// 4. Checkout main branch and make a commit (modify line 1)
|
|
412
|
+
await executeCheckoutCmd({
|
|
413
|
+
branchName: 'main',
|
|
414
|
+
targetDir: testDir,
|
|
415
|
+
vcsFolderName,
|
|
416
|
+
quiet: true,
|
|
417
|
+
});
|
|
418
|
+
const mainContent = "line 1 modified by main\nline 2\nline 3";
|
|
419
|
+
await fs.writeFile(path.join(testDir, 'app.ts'), mainContent, 'utf8');
|
|
420
|
+
await executeAddCmd({
|
|
421
|
+
paths: [path.join(testDir, 'app.ts')],
|
|
422
|
+
targetDir: testDir,
|
|
423
|
+
vcsFolderName,
|
|
424
|
+
quiet: true,
|
|
425
|
+
});
|
|
426
|
+
await executeCommitCmd({
|
|
427
|
+
message: 'Update app.ts on main',
|
|
428
|
+
targetDir: testDir,
|
|
429
|
+
vcsFolderName,
|
|
430
|
+
quiet: true,
|
|
431
|
+
});
|
|
432
|
+
// 5. Execute vcs merge feature-merge into main
|
|
433
|
+
const mergeRes = await executeMergeCmd({
|
|
434
|
+
targetBranchName: 'feature-merge',
|
|
435
|
+
targetDir: testDir,
|
|
436
|
+
vcsFolderName,
|
|
437
|
+
quiet: true,
|
|
438
|
+
});
|
|
439
|
+
iReckon(lc, mergeRes.activeBranch).willEqual('main');
|
|
440
|
+
iReckon(lc, mergeRes.targetBranch).willEqual('feature-merge');
|
|
441
|
+
// 6. Verify projected file on physical worktree disk contains merged lines
|
|
442
|
+
const mergedAppTs = await fs.readFile(path.join(testDir, 'app.ts'), 'utf8');
|
|
443
|
+
iReckon(lc, mergedAppTs).includes('line 1 modified by main');
|
|
444
|
+
iReckon(lc, mergedAppTs).includes('line 2');
|
|
445
|
+
iReckon(lc, mergedAppTs).includes('line 3 modified by secondary');
|
|
446
|
+
}
|
|
447
|
+
finally {
|
|
448
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
449
|
+
}
|
|
450
|
+
});
|
|
287
451
|
});
|
|
288
|
-
//# sourceMappingURL=branch-checkout-cmd.respec.
|
|
452
|
+
//# sourceMappingURL=branch-checkout-cmd.respec.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branch-checkout-cmd.respec.mjs","sourceRoot":"","sources":["../../../src/cli/commands/branch-checkout-cmd.respec.mts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export interface BranchCmdOpts {
|
|
8
8
|
branchName?: string;
|
|
9
|
+
itemPath?: string;
|
|
9
10
|
targetDir?: string;
|
|
10
11
|
vcsFolderName?: string;
|
|
11
12
|
quiet?: boolean;
|
|
@@ -21,5 +22,5 @@ export interface BranchCmdResult {
|
|
|
21
22
|
createdBranchName?: string;
|
|
22
23
|
createdBranchAddr?: string;
|
|
23
24
|
}
|
|
24
|
-
export declare function executeBranchCmd({ branchName, targetDir, vcsFolderName, quiet, }?: BranchCmdOpts): Promise<BranchCmdResult>;
|
|
25
|
+
export declare function executeBranchCmd({ branchName, itemPath, targetDir, vcsFolderName, quiet, }?: BranchCmdOpts): Promise<BranchCmdResult>;
|
|
25
26
|
//# sourceMappingURL=branch-cmd.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/branch-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,MAAM,WAAW,aAAa;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,gBAAgB,CAAC,EACnC,UAAU,EACV,SAAyB,EACzB,aAAyB,EACzB,KAAa,GAChB,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"branch-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/branch-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,MAAM,WAAW,aAAa;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAsB,gBAAgB,CAAC,EACnC,UAAU,EACV,QAAQ,EACR,SAAyB,EACzB,aAAyB,EACzB,KAAa,GAChB,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAiN/C"}
|
|
@@ -13,12 +13,13 @@ import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
|
13
13
|
import { createB2tFSBranchIbGib } from '../../engine/branch/branch-helper.mjs';
|
|
14
14
|
import { getOrCreateBranchSpace } from '../../engine/branch/branch-space-helper.mjs';
|
|
15
15
|
import { populateBranchSpaceFromGraph } from '../../engine/branch/branch-graph-helper.mjs';
|
|
16
|
+
import { B2TFS_CHILD_ITEM_REL8N_NAME } from '../../engine/item/item-types.mjs';
|
|
16
17
|
import { getIbGibWithMetaspaceFallback } from '../../engine/item/item-helper.mjs';
|
|
17
18
|
import { getB2tFSIndexIbGib, updateB2tFSIndexIbGib, getSpaceQualifiedIbGibAddr } from '../../engine/index/index-helper.mjs';
|
|
18
19
|
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
19
20
|
const lcFile = `[branch-cmd]`;
|
|
20
21
|
const logalot = GLOBAL_LOG_A_LOT;
|
|
21
|
-
export async function executeBranchCmd({ branchName, targetDir = process.cwd(), vcsFolderName = '.vcsgib', quiet = false, } = {}) {
|
|
22
|
+
export async function executeBranchCmd({ branchName, itemPath, targetDir = process.cwd(), vcsFolderName = '.vcsgib', quiet = false, } = {}) {
|
|
22
23
|
const lc = `${lcFile}[${executeBranchCmd.name}]`;
|
|
23
24
|
try {
|
|
24
25
|
if (logalot) {
|
|
@@ -79,7 +80,7 @@ export async function executeBranchCmd({ branchName, targetDir = process.cwd(),
|
|
|
79
80
|
const branches = [];
|
|
80
81
|
for (const [name, bNode] of branchMap.entries()) {
|
|
81
82
|
const addr = getIbGibAddr({ ibGib: bNode });
|
|
82
|
-
const rootItemAddr = bNode.rel8ns?.b2tfs_item?.at(
|
|
83
|
+
const rootItemAddr = bNode.rel8ns?.b2tfs_item?.at(-1);
|
|
83
84
|
const isActive = name === activeBranchName;
|
|
84
85
|
branches.push({
|
|
85
86
|
name,
|
|
@@ -102,9 +103,9 @@ export async function executeBranchCmd({ branchName, targetDir = process.cwd(),
|
|
|
102
103
|
}
|
|
103
104
|
// Find active branch root item to fork from
|
|
104
105
|
const activeBranchIbGib = branchMap.get(activeBranchName) || branchIbGibs.at(0);
|
|
105
|
-
const rootItemAddr = activeBranchIbGib?.rel8ns?.b2tfs_item?.at(
|
|
106
|
+
const rootItemAddr = activeBranchIbGib?.rel8ns?.b2tfs_item?.at(-1);
|
|
106
107
|
if (!rootItemAddr) {
|
|
107
|
-
throw new Error(`Cannot find active branch root item to fork branch from (E:
|
|
108
|
+
throw new Error(`Cannot find active branch root item to fork branch from (E: 8f7e6d5c4b3a2f1e0d9c8b7a6f5e4d3c)`);
|
|
108
109
|
}
|
|
109
110
|
const rootItem = await getIbGibWithMetaspaceFallback({
|
|
110
111
|
addr: rootItemAddr,
|
|
@@ -114,23 +115,40 @@ export async function executeBranchCmd({ branchName, targetDir = process.cwd(),
|
|
|
114
115
|
if (!rootItem) {
|
|
115
116
|
throw new Error(`Root item node for address '${rootItemAddr}' not found in localSpace (E: 9b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e)`);
|
|
116
117
|
}
|
|
118
|
+
let targetRootItem = rootItem;
|
|
119
|
+
if (itemPath && itemPath.trim().length > 0) {
|
|
120
|
+
const normalizedItemPath = itemPath.trim().replace(/\\/g, '/').replace(/^\.\//, '');
|
|
121
|
+
const committedBranchItemsMap = new Map();
|
|
122
|
+
await executeBranchCmd_walkBranchGraphForItems({
|
|
123
|
+
item: rootItem,
|
|
124
|
+
space: activeBranchSpace,
|
|
125
|
+
metaspace,
|
|
126
|
+
currentRelPath: '',
|
|
127
|
+
outMap: committedBranchItemsMap,
|
|
128
|
+
});
|
|
129
|
+
const targetItemNode = committedBranchItemsMap.get(normalizedItemPath);
|
|
130
|
+
if (!targetItemNode) {
|
|
131
|
+
throw new Error(`Item '${itemPath}' not found in active branch snapshot (E: 8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c)`);
|
|
132
|
+
}
|
|
133
|
+
targetRootItem = targetItemNode;
|
|
134
|
+
}
|
|
117
135
|
// Instantiate new branch space b2s_<newBranch>
|
|
118
136
|
const { space: newBranchSpace, spaceId: newBranchSpaceId } = await getOrCreateBranchSpace({
|
|
119
137
|
metaspace,
|
|
120
138
|
vcsPath,
|
|
121
139
|
branchName: trimmedBranchName,
|
|
122
140
|
});
|
|
123
|
-
// Populate new branch space from live dependency graph of
|
|
141
|
+
// Populate new branch space from live dependency graph of targetRootItem
|
|
124
142
|
await populateBranchSpaceFromGraph({
|
|
125
143
|
sourceSpace: activeBranchSpace,
|
|
126
144
|
targetBranchSpace: newBranchSpace,
|
|
127
|
-
rootItemIbGib:
|
|
145
|
+
rootItemIbGib: targetRootItem,
|
|
128
146
|
metaspace,
|
|
129
147
|
});
|
|
130
148
|
// Create new B2tFSBranchIbGib_V1 branch node inside newBranchSpace
|
|
131
149
|
const newBranchIbGib = await createB2tFSBranchIbGib({
|
|
132
150
|
branchName: trimmedBranchName,
|
|
133
|
-
rootItem,
|
|
151
|
+
rootItem: targetRootItem,
|
|
134
152
|
space: newBranchSpace,
|
|
135
153
|
metaspace,
|
|
136
154
|
});
|
|
@@ -153,7 +171,7 @@ export async function executeBranchCmd({ branchName, targetDir = process.cwd(),
|
|
|
153
171
|
vcsPath,
|
|
154
172
|
});
|
|
155
173
|
if (!quiet) {
|
|
156
|
-
console.log(`Created branch '${trimmedBranchName}' (I:
|
|
174
|
+
console.log(`Created branch '${trimmedBranchName}' (I: 0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5e)`);
|
|
157
175
|
}
|
|
158
176
|
// Return updated branch list
|
|
159
177
|
branchMap.set(trimmedBranchName, newBranchIbGib);
|
|
@@ -184,4 +202,37 @@ export async function executeBranchCmd({ branchName, targetDir = process.cwd(),
|
|
|
184
202
|
}
|
|
185
203
|
}
|
|
186
204
|
}
|
|
205
|
+
// #region executeBranchCmd_walkBranchGraphForItems
|
|
206
|
+
async function executeBranchCmd_walkBranchGraphForItems({ item, space, metaspace, currentRelPath, outMap, }) {
|
|
207
|
+
if (!item || !item.data) {
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
const { fsType } = item.data;
|
|
211
|
+
if (currentRelPath) {
|
|
212
|
+
outMap.set(currentRelPath, item);
|
|
213
|
+
}
|
|
214
|
+
if (fsType === 'folder') {
|
|
215
|
+
const childAddrs = item.rel8ns?.[B2TFS_CHILD_ITEM_REL8N_NAME] || [];
|
|
216
|
+
for (const childAddr of childAddrs) {
|
|
217
|
+
const childItem = await getIbGibWithMetaspaceFallback({
|
|
218
|
+
addr: childAddr,
|
|
219
|
+
space,
|
|
220
|
+
metaspace,
|
|
221
|
+
});
|
|
222
|
+
if (childItem && childItem.data) {
|
|
223
|
+
const childRelPath = currentRelPath
|
|
224
|
+
? `${currentRelPath}/${childItem.data.name}`
|
|
225
|
+
: childItem.data.name;
|
|
226
|
+
await executeBranchCmd_walkBranchGraphForItems({
|
|
227
|
+
item: childItem,
|
|
228
|
+
space,
|
|
229
|
+
metaspace,
|
|
230
|
+
currentRelPath: childRelPath,
|
|
231
|
+
outMap,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
// #endregion executeBranchCmd_walkBranchGraphForItems
|
|
187
238
|
//# sourceMappingURL=branch-cmd.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"branch-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/branch-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,eAAe,EAAW,MAAM,iDAAiD,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAC;AAEjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"branch-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/branch-cmd.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/checkout-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"checkout-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/checkout-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,MAAM,WAAW,eAAe;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,kBAAkB,CAAC,EACrC,UAAU,EACV,SAAyB,EACzB,aAAyB,EACzB,KAAa,GAChB,GAAE,eAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAkLnD"}
|
|
@@ -8,7 +8,7 @@ import path from 'node:path';
|
|
|
8
8
|
import fs from 'node:fs/promises';
|
|
9
9
|
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
10
10
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
11
|
-
import { putInSpace } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
11
|
+
import { putInSpace, getLatestAddrs } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
12
12
|
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
13
13
|
import { getB2tFSBranchSpaceName } from '../../engine/branch/branch-helper.mjs';
|
|
14
14
|
import { getOrCreateBranchSpace } from '../../engine/branch/branch-space-helper.mjs';
|
|
@@ -22,7 +22,7 @@ export async function executeCheckoutCmd({ branchName, targetDir = process.cwd()
|
|
|
22
22
|
const lc = `${lcFile}[${executeCheckoutCmd.name}]`;
|
|
23
23
|
try {
|
|
24
24
|
if (logalot) {
|
|
25
|
-
console.log(`${lc} starting... (I:
|
|
25
|
+
console.log(`${lc} starting... (I: 3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8e)`);
|
|
26
26
|
}
|
|
27
27
|
const trimmedBranchName = branchName?.trim();
|
|
28
28
|
if (!trimmedBranchName) {
|
|
@@ -38,7 +38,7 @@ export async function executeCheckoutCmd({ branchName, targetDir = process.cwd()
|
|
|
38
38
|
await fs.access(vcsPath);
|
|
39
39
|
}
|
|
40
40
|
catch {
|
|
41
|
-
throw new Error(`Not an ibgib repository (directory ${vcsPath} does not exist) (E:
|
|
41
|
+
throw new Error(`Not an ibgib repository (directory ${vcsPath} does not exist) (E: 5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0e)`);
|
|
42
42
|
}
|
|
43
43
|
// 1. Fetch authoritative repository index from localSpace
|
|
44
44
|
const indexIbGib = await getB2tFSIndexIbGib({ space: localSpace, vcsPath });
|
|
@@ -65,15 +65,10 @@ export async function executeCheckoutCmd({ branchName, targetDir = process.cwd()
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
// Find target branch node
|
|
68
|
-
const targetBranchIbGib = branchIbGibs.
|
|
68
|
+
const targetBranchIbGib = branchIbGibs.findLast((b) => b?.data?.name === trimmedBranchName);
|
|
69
69
|
if (!targetBranchIbGib) {
|
|
70
70
|
throw new Error(`Branch '${trimmedBranchName}' does not exist (E: 7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a)`);
|
|
71
71
|
}
|
|
72
|
-
const targetBranchAddr = getIbGibAddr({ ibGib: targetBranchIbGib });
|
|
73
|
-
const rootItemAddr = targetBranchIbGib.rel8ns?.b2tfs_item?.at(0);
|
|
74
|
-
if (!rootItemAddr) {
|
|
75
|
-
throw new Error(`Branch '${trimmedBranchName}' does not have a valid root item address (E: 8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b)`);
|
|
76
|
-
}
|
|
77
72
|
// 3. Resolve target branch space b2s_<branchName>
|
|
78
73
|
const targetBranchSpaceRes = await getOrCreateBranchSpace({
|
|
79
74
|
metaspace,
|
|
@@ -81,6 +76,19 @@ export async function executeCheckoutCmd({ branchName, targetDir = process.cwd()
|
|
|
81
76
|
branchName: trimmedBranchName,
|
|
82
77
|
});
|
|
83
78
|
const targetBranchSpace = targetBranchSpaceRes.space;
|
|
79
|
+
const targetBranchAddr = getIbGibAddr({ ibGib: targetBranchIbGib });
|
|
80
|
+
const targetBranchTjpAddr = targetBranchIbGib.rel8ns?.tjp?.at(0) || targetBranchAddr;
|
|
81
|
+
const latestTargetBranchRes = await getLatestAddrs({ space: targetBranchSpace, addrs: [targetBranchTjpAddr] });
|
|
82
|
+
const latestTargetBranchAddr = latestTargetBranchRes?.data?.latestAddrs?.[0] || targetBranchAddr;
|
|
83
|
+
const latestTargetBranchIbGib = (await getIbGibWithMetaspaceFallback({
|
|
84
|
+
addr: latestTargetBranchAddr,
|
|
85
|
+
space: targetBranchSpace,
|
|
86
|
+
metaspace,
|
|
87
|
+
})) || targetBranchIbGib;
|
|
88
|
+
const rootItemAddr = latestTargetBranchIbGib.rel8ns?.b2tfs_item?.at(-1);
|
|
89
|
+
if (!rootItemAddr) {
|
|
90
|
+
throw new Error(`Branch '${trimmedBranchName}' does not have a valid root item address (E: 8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b)`);
|
|
91
|
+
}
|
|
84
92
|
await putInSpace({ space: targetBranchSpace, ibGib: targetBranchIbGib });
|
|
85
93
|
// Update activeBranch in B2tFSIndexIbGib_V1 in targetBranchSpace and localSpace
|
|
86
94
|
const updatedIndex = await updateB2tFSIndexIbGib({
|
|
@@ -105,27 +113,39 @@ export async function executeCheckoutCmd({ branchName, targetDir = process.cwd()
|
|
|
105
113
|
? repoRoot
|
|
106
114
|
: path.join(repoRoot, 'b', trimmedBranchName);
|
|
107
115
|
await fs.mkdir(worktreePath, { recursive: true });
|
|
108
|
-
// Retrieve root item and project
|
|
116
|
+
// Retrieve root item and project branch snapshot onto worktree subfolder:
|
|
117
|
+
// If rootItem is a single file, write it directly to worktreePath (my-repo/b/<branchName>/<fileName>).
|
|
118
|
+
// If rootItem is a folder, write child items into worktreePath.
|
|
109
119
|
const rootItem = await getIbGibWithMetaspaceFallback({
|
|
110
120
|
addr: rootItemAddr,
|
|
111
121
|
space: targetBranchSpace,
|
|
112
122
|
metaspace,
|
|
113
123
|
});
|
|
114
124
|
if (rootItem) {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
125
|
+
if (rootItem.data?.fsType === 'file') {
|
|
126
|
+
await writeB2tFSItemToFS({
|
|
127
|
+
item: rootItem,
|
|
128
|
+
destPath: worktreePath,
|
|
119
129
|
space: targetBranchSpace,
|
|
120
130
|
metaspace,
|
|
121
131
|
});
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
const childAddrs = rootItem.rel8ns?.[B2TFS_CHILD_ITEM_REL8N_NAME] || [];
|
|
135
|
+
for (const childAddr of childAddrs) {
|
|
136
|
+
const childItem = await getIbGibWithMetaspaceFallback({
|
|
137
|
+
addr: childAddr,
|
|
126
138
|
space: targetBranchSpace,
|
|
127
139
|
metaspace,
|
|
128
140
|
});
|
|
141
|
+
if (childItem) {
|
|
142
|
+
await writeB2tFSItemToFS({
|
|
143
|
+
item: childItem,
|
|
144
|
+
destPath: worktreePath,
|
|
145
|
+
space: targetBranchSpace,
|
|
146
|
+
metaspace,
|
|
147
|
+
});
|
|
148
|
+
}
|
|
129
149
|
}
|
|
130
150
|
}
|
|
131
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/checkout-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/checkout-cmd.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/commit-cmd.mts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"commit-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/commit-cmd.mts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+BH,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,gBAAgB,CAAC,EACnC,OAAY,EACZ,SAAyB,EACzB,aAAyB,EACzB,KAAa,GAChB,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgL/C"}
|