@ibgib/vcs-gib 0.0.32 → 0.0.34
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 +14 -7
- package/dist/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/bootstrap/node-bootstrap.d.mts.map +1 -1
- package/dist/bootstrap/node-bootstrap.mjs +6 -20
- package/dist/bootstrap/node-bootstrap.mjs.map +1 -1
- package/dist/cli/commands/{add-cmd.d.mts → cli-add-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-add-cmd.d.mts.map +1 -0
- package/dist/cli/commands/cli-add-cmd.mjs +45 -0
- package/dist/cli/commands/cli-add-cmd.mjs.map +1 -0
- package/dist/cli/commands/{branch-cmd.d.mts → cli-branch-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-branch-cmd.d.mts.map +1 -0
- package/dist/cli/commands/cli-branch-cmd.mjs +59 -0
- package/dist/cli/commands/cli-branch-cmd.mjs.map +1 -0
- package/dist/cli/commands/{checkout-cmd.d.mts → cli-checkout-cmd.d.mts} +4 -3
- package/dist/cli/commands/cli-checkout-cmd.d.mts.map +1 -0
- package/dist/cli/commands/cli-checkout-cmd.mjs +50 -0
- package/dist/cli/commands/cli-checkout-cmd.mjs.map +1 -0
- package/dist/cli/commands/{commit-cmd.d.mts → cli-commit-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-commit-cmd.d.mts.map +1 -0
- package/dist/cli/commands/cli-commit-cmd.mjs +52 -0
- package/dist/cli/commands/cli-commit-cmd.mjs.map +1 -0
- package/dist/cli/commands/{generate-comment-cmd.d.mts → cli-generate-comment-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-generate-comment-cmd.d.mts.map +1 -0
- package/dist/cli/commands/{generate-comment-cmd.mjs → cli-generate-comment-cmd.mjs} +8 -6
- package/dist/cli/commands/cli-generate-comment-cmd.mjs.map +1 -0
- package/dist/cli/commands/{init-cmd.d.mts → cli-init-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-init-cmd.d.mts.map +1 -0
- package/dist/cli/commands/cli-init-cmd.mjs +47 -0
- package/dist/cli/commands/cli-init-cmd.mjs.map +1 -0
- package/dist/cli/commands/{log-cmd.d.mts → cli-log-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-log-cmd.d.mts.map +1 -0
- package/dist/cli/commands/{log-cmd.mjs → cli-log-cmd.mjs} +14 -44
- package/dist/cli/commands/cli-log-cmd.mjs.map +1 -0
- package/dist/cli/commands/{merge-cmd.d.mts → cli-merge-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-merge-cmd.d.mts.map +1 -0
- package/dist/cli/commands/cli-merge-cmd.mjs +66 -0
- package/dist/cli/commands/cli-merge-cmd.mjs.map +1 -0
- package/dist/cli/commands/{reset-cmd.d.mts → cli-reset-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-reset-cmd.d.mts.map +1 -0
- package/dist/cli/commands/cli-reset-cmd.mjs +63 -0
- package/dist/cli/commands/cli-reset-cmd.mjs.map +1 -0
- package/dist/cli/commands/{restore-cmd.d.mts → cli-restore-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-restore-cmd.d.mts.map +1 -0
- package/dist/cli/commands/cli-restore-cmd.mjs +55 -0
- package/dist/cli/commands/cli-restore-cmd.mjs.map +1 -0
- package/dist/cli/commands/{status-cmd.d.mts → cli-status-cmd.d.mts} +1 -1
- package/dist/cli/commands/cli-status-cmd.d.mts.map +1 -0
- package/dist/cli/commands/{status-cmd.mjs → cli-status-cmd.mjs} +4 -41
- package/dist/cli/commands/cli-status-cmd.mjs.map +1 -0
- package/dist/cli/vcs-cli-main.d.mts.map +1 -1
- package/dist/cli/vcs-cli-main.mjs +18 -15
- package/dist/cli/vcs-cli-main.mjs.map +1 -1
- package/dist/cli/vcs-projection-helper.mjs +7 -7
- package/dist/cli/vcs-projection-helper.mjs.map +1 -1
- package/dist/cli/vcs-repo-helper.d.mts +19 -0
- package/dist/cli/vcs-repo-helper.d.mts.map +1 -0
- package/dist/cli/vcs-repo-helper.mjs +84 -0
- package/dist/cli/vcs-repo-helper.mjs.map +1 -0
- package/dist/test/test-helpers.d.mts +9 -0
- package/dist/test/test-helpers.d.mts.map +1 -1
- package/dist/test/test-helpers.mjs +35 -0
- package/dist/test/test-helpers.mjs.map +1 -1
- package/package.json +6 -6
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/bootstrap/node-bootstrap.mts +6 -20
- package/src/bootstrap/node-bootstrap.respec.mts +2 -2
- package/src/cli/cli-arg-parser.respec.mts +2 -2
- package/src/cli/cli-e2e.respec.mts +15 -14
- package/src/cli/commands/branch-checkout-cmd.respec.mts +28 -14
- package/src/cli/commands/cli-add-cmd.mts +65 -0
- package/src/cli/commands/cli-branch-cmd.mts +87 -0
- package/src/cli/commands/cli-checkout-cmd.mts +72 -0
- package/src/cli/commands/cli-commit-cmd.mts +77 -0
- package/src/cli/commands/{generate-comment-cmd.mts → cli-generate-comment-cmd.mts} +8 -6
- package/src/cli/commands/cli-init-cmd.mts +78 -0
- package/src/cli/commands/{log-cmd.mts → cli-log-cmd.mts} +14 -47
- package/src/cli/commands/cli-merge-cmd.mts +99 -0
- package/src/cli/commands/cli-reset-cmd.mts +94 -0
- package/src/cli/commands/cli-restore-cmd.mts +87 -0
- package/src/cli/commands/{status-cmd.mts → cli-status-cmd.mts} +3 -45
- package/src/cli/commands/commit-log-cmd.respec.mts +84 -34
- package/src/cli/commands/init-cmd.respec.mts +3 -3
- package/src/cli/commands/reset-restore-cmd.respec.mts +9 -9
- package/src/cli/commands/status-add-cmd.respec.mts +13 -9
- package/src/cli/vcs-cli-main.mts +18 -15
- package/src/cli/vcs-projection-helper.mts +8 -8
- package/src/cli/vcs-repo-helper.mts +113 -0
- package/src/engine/branch/branch-space.respec.mts +22 -20
- package/src/engine/merge/b2tfs-sync-comments.respec.mts +10 -10
- package/src/test/test-helpers.mts +49 -1
- package/src/vcs-gib.respec.mts +21 -15
- package/tsconfig.test.tsbuildinfo +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/vcs-gib_test_output.md +77 -0
- package/dist/cli/commands/add-cmd.d.mts.map +0 -1
- package/dist/cli/commands/add-cmd.mjs +0 -93
- package/dist/cli/commands/add-cmd.mjs.map +0 -1
- package/dist/cli/commands/branch-cmd.d.mts.map +0 -1
- package/dist/cli/commands/branch-cmd.mjs +0 -107
- package/dist/cli/commands/branch-cmd.mjs.map +0 -1
- package/dist/cli/commands/checkout-cmd.d.mts.map +0 -1
- package/dist/cli/commands/checkout-cmd.mjs +0 -95
- package/dist/cli/commands/checkout-cmd.mjs.map +0 -1
- package/dist/cli/commands/commit-cmd.d.mts.map +0 -1
- package/dist/cli/commands/commit-cmd.mjs +0 -99
- package/dist/cli/commands/commit-cmd.mjs.map +0 -1
- package/dist/cli/commands/generate-comment-cmd.d.mts.map +0 -1
- package/dist/cli/commands/generate-comment-cmd.mjs.map +0 -1
- package/dist/cli/commands/init-cmd.d.mts.map +0 -1
- package/dist/cli/commands/init-cmd.mjs +0 -69
- package/dist/cli/commands/init-cmd.mjs.map +0 -1
- package/dist/cli/commands/log-cmd.d.mts.map +0 -1
- package/dist/cli/commands/log-cmd.mjs.map +0 -1
- package/dist/cli/commands/merge-cmd.d.mts.map +0 -1
- package/dist/cli/commands/merge-cmd.mjs +0 -106
- package/dist/cli/commands/merge-cmd.mjs.map +0 -1
- package/dist/cli/commands/reset-cmd.d.mts.map +0 -1
- package/dist/cli/commands/reset-cmd.mjs +0 -91
- package/dist/cli/commands/reset-cmd.mjs.map +0 -1
- package/dist/cli/commands/restore-cmd.d.mts.map +0 -1
- package/dist/cli/commands/restore-cmd.mjs +0 -97
- package/dist/cli/commands/restore-cmd.mjs.map +0 -1
- package/dist/cli/commands/status-cmd.d.mts.map +0 -1
- package/dist/cli/commands/status-cmd.mjs.map +0 -1
- package/src/cli/commands/add-cmd.mts +0 -120
- package/src/cli/commands/branch-cmd.mts +0 -142
- package/src/cli/commands/checkout-cmd.mts +0 -123
- package/src/cli/commands/commit-cmd.mts +0 -130
- package/src/cli/commands/init-cmd.mts +0 -99
- package/src/cli/commands/merge-cmd.mts +0 -143
- package/src/cli/commands/reset-cmd.mts +0 -126
- package/src/cli/commands/restore-cmd.mts +0 -135
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcs-repo-helper.d.mts","sourceRoot":"","sources":["../../src/cli/vcs-repo-helper.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,aAAa,EAAmC,MAAM,6CAA6C,CAAC;AAY7G,MAAM,WAAW,qBAAqB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACpC,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAsB,iBAAiB,CAAC,EACpC,SAAyB,EACzB,aAAyB,EACzB,UAAU,GACb,GAAE,qBAA0B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAyE/D"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module vcs-repo-helper
|
|
3
|
+
*
|
|
4
|
+
* Helper to bootstrap Node environment and open a VcsRepository session.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
8
|
+
import { VcsRepository } from '@ibgib/core-gib/dist/vcs/vcs-repository.mjs';
|
|
9
|
+
import { resolveContextualBranchName } from '@ibgib/core-gib/dist/vcs/branch/branch-helper.mjs';
|
|
10
|
+
import { getB2tFSIndexIbGib } from '@ibgib/core-gib/dist/vcs/index/index-helper.mjs';
|
|
11
|
+
import { getOrCreateBranchSpace } from '@ibgib/core-gib/dist/vcs/branch/branch-helper.mjs';
|
|
12
|
+
import { getOrCreateWorkspaceProjectionSpace } from '@ibgib/node-gib/dist/vcs/workspace-space-helper.mjs';
|
|
13
|
+
import { GLOBAL_LOG_A_LOT } from '../vcs-gib-constants.mjs';
|
|
14
|
+
import { bootstrapVcsMetaspace } from '../bootstrap/node-bootstrap.mjs';
|
|
15
|
+
import { B2TFS_BRANCH_DEFAULT_NAME } from '@ibgib/core-gib/dist/vcs/branch/branch-constants.mjs';
|
|
16
|
+
const logalot = GLOBAL_LOG_A_LOT;
|
|
17
|
+
export async function openVcsRepository({ targetDir = process.cwd(), vcsFolderName = '.vcsgib', branchName, } = {}) {
|
|
18
|
+
const lc = `[${openVcsRepository.name}]`;
|
|
19
|
+
try {
|
|
20
|
+
if (logalot) {
|
|
21
|
+
console.log(`${lc} starting... (I: 4a621eb5576a3064f85177c6de80a826)`);
|
|
22
|
+
}
|
|
23
|
+
const absTargetDir = path.resolve(targetDir);
|
|
24
|
+
// 1. Locate repository root and bootstrap Node localSpace
|
|
25
|
+
const { metaspace, localSpace, vcsPath, repoRoot } = await bootstrapVcsMetaspace({
|
|
26
|
+
repoPath: absTargetDir,
|
|
27
|
+
vcsFolderName,
|
|
28
|
+
});
|
|
29
|
+
// 2. Fetch authoritative in-band index from localSpace
|
|
30
|
+
const indexIbGib = await getB2tFSIndexIbGib({ space: localSpace, metaspace });
|
|
31
|
+
if (!indexIbGib) {
|
|
32
|
+
throw new Error(`Not an ibgib repository (index not found in ${vcsPath})`);
|
|
33
|
+
}
|
|
34
|
+
// 3. Determine active branch and worktree directory
|
|
35
|
+
const activeBranchName = branchName || resolveContextualBranchName({
|
|
36
|
+
targetDir: absTargetDir,
|
|
37
|
+
repoRoot,
|
|
38
|
+
indexIbGib,
|
|
39
|
+
});
|
|
40
|
+
const activeWorktreeDir = activeBranchName === B2TFS_BRANCH_DEFAULT_NAME
|
|
41
|
+
? repoRoot
|
|
42
|
+
: path.join(repoRoot, 'b', activeBranchName);
|
|
43
|
+
// 4. Resolve branch space & create Node workspace projection space
|
|
44
|
+
const { space: activeSpace } = await getOrCreateBranchSpace({
|
|
45
|
+
metaspace,
|
|
46
|
+
branchName: activeBranchName,
|
|
47
|
+
});
|
|
48
|
+
const { space: workspaceSpace } = await getOrCreateWorkspaceProjectionSpace({
|
|
49
|
+
metaspace,
|
|
50
|
+
workspaceRoot: activeWorktreeDir,
|
|
51
|
+
vcsFolderName,
|
|
52
|
+
backingSpace: activeSpace,
|
|
53
|
+
});
|
|
54
|
+
const fnGetWorkspaceProjectionSpace = async ({ worktreeDir, backingSpace, }) => {
|
|
55
|
+
const { space } = await getOrCreateWorkspaceProjectionSpace({
|
|
56
|
+
metaspace,
|
|
57
|
+
workspaceRoot: worktreeDir,
|
|
58
|
+
vcsFolderName,
|
|
59
|
+
backingSpace,
|
|
60
|
+
});
|
|
61
|
+
return space;
|
|
62
|
+
};
|
|
63
|
+
// 5. Construct domain facade
|
|
64
|
+
const repo = new VcsRepository({
|
|
65
|
+
metaspace,
|
|
66
|
+
localSpace,
|
|
67
|
+
workspaceSpace,
|
|
68
|
+
fnGetWorkspaceProjectionSpace,
|
|
69
|
+
repoRoot,
|
|
70
|
+
vcsFolderName,
|
|
71
|
+
});
|
|
72
|
+
return { repo, repoRoot, activeWorktreeDir, vcsPath };
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error(`${lc} ${extractErrorMsg(error)}`);
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
if (logalot) {
|
|
80
|
+
console.log(`${lc} complete.`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=vcs-repo-helper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vcs-repo-helper.mjs","sourceRoot":"","sources":["../../src/cli/vcs-repo-helper.mts"],"names":[],"mappings":"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"}
|
|
@@ -48,4 +48,13 @@ export declare function logAddr(label: string, addr: IbGibAddr | undefined): voi
|
|
|
48
48
|
* Logs a set of addrs with short formatting.
|
|
49
49
|
*/
|
|
50
50
|
export declare function logAddrs(label: string, addrs: IbGibAddr[] | undefined): void;
|
|
51
|
+
/**
|
|
52
|
+
* Recursively logs the b2tfs item hierarchy from a rootItemAddr within a space.
|
|
53
|
+
*/
|
|
54
|
+
export declare function logTreeHierarchy({ label, rootItemAddr, space, metaspace, }: {
|
|
55
|
+
label: string;
|
|
56
|
+
rootItemAddr?: string;
|
|
57
|
+
space: any;
|
|
58
|
+
metaspace?: any;
|
|
59
|
+
}): Promise<void>;
|
|
51
60
|
//# sourceMappingURL=test-helpers.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-helpers.d.mts","sourceRoot":"","sources":["../../src/test/test-helpers.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"test-helpers.d.mts","sourceRoot":"","sources":["../../src/test/test-helpers.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAA+B,MAAM,8CAA8C,CAAC;AAiC9G;;;GAGG;AACH,wBAAsB,cAAc,CAAC,EACjC,KAAK,EACL,WAAW,EACX,KAAK,GACR,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,mBAAmB,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxD,KAAK,CAAC,EAAE,aAAa,CAAC;CACzB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,EAC/B,KAAK,EACL,SAAS,EACT,KAAK,GACR,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,iBAAiB,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD,KAAK,CAAC,EAAE,aAAa,CAAC;CACzB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAGjD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAExE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,GAAG,IAAI,CAE5E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACnC,KAAK,EACL,YAAY,EACZ,KAAK,EACL,SAAS,GACZ,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,GAAG,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BhB"}
|
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
17
17
|
import { getLatestAddrs } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
18
|
+
import { B2TFS_CHILD_ITEM_REL8N_NAME } from '@ibgib/core-gib/dist/vcs/item/item-types.mjs';
|
|
19
|
+
import { getIbGibFromSpace } from '@ibgib/core-gib/dist/common/other/ibgib-helper.mjs';
|
|
18
20
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
19
21
|
// Internal helpers
|
|
20
22
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -132,4 +134,37 @@ export function logAddr(label, addr) {
|
|
|
132
134
|
export function logAddrs(label, addrs) {
|
|
133
135
|
console.log(`[ADDRS][${label}]: ${shortAddrs(addrs)}`);
|
|
134
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Recursively logs the b2tfs item hierarchy from a rootItemAddr within a space.
|
|
139
|
+
*/
|
|
140
|
+
export async function logTreeHierarchy({ label, rootItemAddr, space, metaspace, }) {
|
|
141
|
+
const lc = `[TRACE_B2TFS][${label}]`;
|
|
142
|
+
const spaceName = space?.data?.name || space?.data?.spaceSubPath || space?.ib || 'unknown';
|
|
143
|
+
console.log(`${lc} === Hierarchy for root: ${shortAddr(rootItemAddr)} in space: ${spaceName} ===`);
|
|
144
|
+
if (!rootItemAddr) {
|
|
145
|
+
console.log(`${lc} rootItemAddr is falsy`);
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
async function walk(addr, depth, currentPath) {
|
|
149
|
+
const indent = ' '.repeat(depth);
|
|
150
|
+
const item = await getIbGibFromSpace({ addr, space, metaspace });
|
|
151
|
+
if (!item) {
|
|
152
|
+
console.log(`${lc}${indent} ❌ MISSING item at ${shortAddr(addr)} (path: ${currentPath})`);
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const name = item.data?.name || '(root)';
|
|
156
|
+
const fsType = item.data?.fsType || 'unknown';
|
|
157
|
+
const comments = item.rel8ns?.comment || [];
|
|
158
|
+
const children = item.rel8ns?.[B2TFS_CHILD_ITEM_REL8N_NAME] || [];
|
|
159
|
+
console.log(`${lc}${indent} 📁 ${name} (${fsType}) addr: ${shortAddr(addr)} comments: ${comments.length} children: ${children.length}`);
|
|
160
|
+
for (const cAddr of comments) {
|
|
161
|
+
const comment = await getIbGibFromSpace({ addr: cAddr, space, metaspace });
|
|
162
|
+
console.log(`${lc}${indent} 💬 comment: "${comment?.data?.text?.slice(0, 50)}"`);
|
|
163
|
+
}
|
|
164
|
+
for (const childAddr of children) {
|
|
165
|
+
await walk(childAddr, depth + 1, currentPath ? `${currentPath}/${name}` : name);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
await walk(rootItemAddr, 1, '');
|
|
169
|
+
}
|
|
135
170
|
//# sourceMappingURL=test-helpers.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-helpers.mjs","sourceRoot":"","sources":["../../src/test/test-helpers.mts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,qDAAqD,CAAC;
|
|
1
|
+
{"version":3,"file":"test-helpers.mjs","sourceRoot":"","sources":["../../src/test/test-helpers.mts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ibgib/vcs-gib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.34",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"prepare:publish": "npm version patch && node ../../build/dist/concrete-build/build-vcs-gib.mjs --prod && npm run pack"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@ibgib/helper-gib": "^0.0.
|
|
23
|
-
"@ibgib/ts-gib": "^0.5.
|
|
24
|
-
"@ibgib/encrypt-gib": "^0.3.
|
|
25
|
-
"@ibgib/core-gib": "^0.1.
|
|
26
|
-
"@ibgib/node-gib": "^0.0.
|
|
22
|
+
"@ibgib/helper-gib": "^0.0.39",
|
|
23
|
+
"@ibgib/ts-gib": "^0.5.36",
|
|
24
|
+
"@ibgib/encrypt-gib": "^0.3.3",
|
|
25
|
+
"@ibgib/core-gib": "^0.1.80",
|
|
26
|
+
"@ibgib/node-gib": "^0.0.25"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -56,7 +56,7 @@ export async function bootstrapVcsMetaspace(
|
|
|
56
56
|
): Promise<BootstrapVcsMetaspaceResult> {
|
|
57
57
|
const lc = `${lcFile}[${bootstrapVcsMetaspace.name}]`;
|
|
58
58
|
try {
|
|
59
|
-
if (logalot) { console.log(`${lc} starting... (I:
|
|
59
|
+
if (logalot) { console.log(`${lc} starting... (I: genuuid)`); }
|
|
60
60
|
|
|
61
61
|
GraftStrategyService.instance.registerStrategy(new B2tFS3WayGraftStrategy());
|
|
62
62
|
|
|
@@ -102,20 +102,7 @@ export async function bootstrapVcsMetaspace(
|
|
|
102
102
|
const safeRepoDir = path.basename(repoRoot).replace(/[^a-zA-Z0-9_\-]/g, '_');
|
|
103
103
|
const defaultSpaceName = opts.defaultSpaceName || `vcs_${safeRepoDir}`;
|
|
104
104
|
|
|
105
|
-
if (logalot) { console.log(`${lc} initializing vcsMetaspace at vcsPath: ${vcsPath}, repoRoot: ${repoRoot} (I:
|
|
106
|
-
|
|
107
|
-
// Read localSpaceId from index projection if repository has been initialized
|
|
108
|
-
let localSpaceId: string | undefined;
|
|
109
|
-
try {
|
|
110
|
-
const projFile = path.join(vcsPath, 'vcs_index_projection.json');
|
|
111
|
-
const projRaw = await fs.readFile(projFile, 'utf8');
|
|
112
|
-
const projData = JSON.parse(projRaw);
|
|
113
|
-
if (projData && projData.spaceId) {
|
|
114
|
-
localSpaceId = projData.spaceId;
|
|
115
|
-
}
|
|
116
|
-
} catch {
|
|
117
|
-
// Projection file missing before init
|
|
118
|
-
}
|
|
105
|
+
if (logalot) { console.log(`${lc} initializing vcsMetaspace at vcsPath: ${vcsPath}, repoRoot: ${repoRoot} (I: genuuid)`); }
|
|
119
106
|
|
|
120
107
|
// Instantiate Metaspace_Nodespace
|
|
121
108
|
const metaspace = new Metaspace_Nodespace(undefined);
|
|
@@ -157,7 +144,7 @@ export async function bootstrapVcsMetaspace(
|
|
|
157
144
|
if (logalot) { console.log(`${lc} [Alert] ${title}: ${msg} (I: 7e6f5d4c3b2a1f0e9d8c7b6a5f4e3d2c)`); }
|
|
158
145
|
},
|
|
159
146
|
getFnPrompt: () => async ({ title, msg }) => {
|
|
160
|
-
if (logalot) { console.log(`${lc} [Prompt] ${title}: ${msg} (I:
|
|
147
|
+
if (logalot) { console.log(`${lc} [Prompt] ${title}: ${msg} (I: genuuid)`); }
|
|
161
148
|
return defaultSpaceName;
|
|
162
149
|
},
|
|
163
150
|
getFnPromptPassword: () => async (title, msg) => {
|
|
@@ -171,7 +158,6 @@ export async function bootstrapVcsMetaspace(
|
|
|
171
158
|
}
|
|
172
159
|
|
|
173
160
|
const localSpace = await metaspace.getLocalUserSpace({
|
|
174
|
-
localSpaceId,
|
|
175
161
|
lock: false,
|
|
176
162
|
});
|
|
177
163
|
|
|
@@ -187,7 +173,7 @@ export async function bootstrapVcsMetaspace(
|
|
|
187
173
|
|
|
188
174
|
if (logalot) {
|
|
189
175
|
const spaceName = localSpace.data?.name || localSpace.ib;
|
|
190
|
-
console.log(`${lc} Metaspace ready. LocalSpace name/ib: ${spaceName} (I:
|
|
176
|
+
console.log(`${lc} Metaspace ready. LocalSpace name/ib: ${spaceName} (I: genuuid)`);
|
|
191
177
|
}
|
|
192
178
|
|
|
193
179
|
return {
|
|
@@ -197,9 +183,9 @@ export async function bootstrapVcsMetaspace(
|
|
|
197
183
|
repoRoot,
|
|
198
184
|
};
|
|
199
185
|
} catch (error: any) {
|
|
200
|
-
console.error(`${lc} ${error?.message || error} (E:
|
|
186
|
+
console.error(`${lc} ${error?.message || error} (E: genuuid)`);
|
|
201
187
|
throw error;
|
|
202
188
|
} finally {
|
|
203
|
-
if (logalot) { console.log(`${lc} complete. (I:
|
|
189
|
+
if (logalot) { console.log(`${lc} complete. (I: genuuid)`); }
|
|
204
190
|
}
|
|
205
191
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module node-bootstrap.respec
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Unit tests for rapid Node Metaspace bootstrap helper.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
|
|
14
14
|
import { bootstrapVcsMetaspace } from './node-bootstrap.mjs';
|
|
15
15
|
|
|
16
|
-
const lc = `[apps/vcs-gib/src/bootstrap/node-bootstrap.respec.
|
|
16
|
+
const lc = `[apps/vcs-gib/src/bootstrap/node-bootstrap.respec.mts]`;
|
|
17
17
|
|
|
18
18
|
await respecfully(lc, `Node Metaspace Bootstrap`, async () => {
|
|
19
19
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @module cli-arg-parser.respec
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
4
|
* Unit tests for zero-dependency vcs CLI argument parser.
|
|
5
5
|
*/
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
|
|
11
11
|
import { parseVcsArgs } from './cli-arg-parser.mjs';
|
|
12
12
|
|
|
13
|
-
const lc = `[apps/vcs-gib/src/cli/cli-arg-parser.respec.
|
|
13
|
+
const lc = `[apps/vcs-gib/src/cli/cli-arg-parser.respec.mts]`;
|
|
14
14
|
|
|
15
15
|
await respecfully(lc, `Zero-Dependency CLI Argument Parser`, async () => {
|
|
16
16
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @module cli-e2e.respec
|
|
3
3
|
*
|
|
4
4
|
* End-to-End CLI Integration Spec for @ibgib/vcs-gib.
|
|
5
|
+
*
|
|
5
6
|
* Executes full lifecycle: vcs init -> vcs status -> vcs add -> vcs commit -> vcs log -> vcs branch -> vcs checkout.
|
|
6
7
|
*/
|
|
7
8
|
|
|
@@ -9,21 +10,21 @@ import path from 'node:path';
|
|
|
9
10
|
import fs from 'node:fs/promises';
|
|
10
11
|
|
|
11
12
|
import {
|
|
12
|
-
respecfully, ifWe, ifWeMight, iReckon
|
|
13
|
+
respecfully, ifWe, ifWeMight, iReckon, // don't remove ifWe/ifWeMight even if unused
|
|
13
14
|
} from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
14
15
|
|
|
15
16
|
import { main } from './vcs-cli-main.mjs';
|
|
16
|
-
import { executeInitCmd } from './commands/init-cmd.mjs';
|
|
17
|
-
import { executeStatusCmd } from './commands/status-cmd.mjs';
|
|
18
|
-
import { executeAddCmd } from './commands/add-cmd.mjs';
|
|
19
|
-
import { executeCommitCmd } from './commands/commit-cmd.mjs';
|
|
20
|
-
import { executeLogCmd } from './commands/log-cmd.mjs';
|
|
21
|
-
import { executeBranchCmd } from './commands/branch-cmd.mjs';
|
|
22
|
-
import { executeCheckoutCmd } from './commands/checkout-cmd.mjs';
|
|
17
|
+
import { executeInitCmd } from './commands/cli-init-cmd.mjs';
|
|
18
|
+
import { executeStatusCmd } from './commands/cli-status-cmd.mjs';
|
|
19
|
+
import { executeAddCmd } from './commands/cli-add-cmd.mjs';
|
|
20
|
+
import { executeCommitCmd } from './commands/cli-commit-cmd.mjs';
|
|
21
|
+
import { executeLogCmd } from './commands/cli-log-cmd.mjs';
|
|
22
|
+
import { executeBranchCmd } from './commands/cli-branch-cmd.mjs';
|
|
23
|
+
import { executeCheckoutCmd } from './commands/cli-checkout-cmd.mjs';
|
|
23
24
|
import { bootstrapVcsMetaspace } from '../bootstrap/node-bootstrap.mjs';
|
|
24
|
-
import {
|
|
25
|
+
import { getB2tFSIndexIbGib } from '@ibgib/core-gib/dist/vcs/index/index-helper.mjs';
|
|
25
26
|
|
|
26
|
-
const lc = `[apps/vcs-gib/src/cli/cli-e2e.respec.
|
|
27
|
+
const lc = `[apps/vcs-gib/src/cli/cli-e2e.respec.mts]`;
|
|
27
28
|
|
|
28
29
|
await respecfully(lc, `Full E2E CLI Integration Spec`, async () => {
|
|
29
30
|
|
|
@@ -107,11 +108,11 @@ await respecfully(lc, `Full E2E CLI Integration Spec`, async () => {
|
|
|
107
108
|
|
|
108
109
|
iReckon(lc, addRes.stagedCount >= 2).isGonnaBeTrue();
|
|
109
110
|
|
|
110
|
-
const { localSpace: e2eSpaceAdd,
|
|
111
|
+
const { localSpace: e2eSpaceAdd, metaspace: e2eMetaspaceAdd } = await bootstrapVcsMetaspace({
|
|
111
112
|
repoPath: testDir,
|
|
112
113
|
vcsFolderName,
|
|
113
114
|
});
|
|
114
|
-
const e2eIndexAdd = await
|
|
115
|
+
const e2eIndexAdd = await getB2tFSIndexIbGib({ space: e2eSpaceAdd, metaspace: e2eMetaspaceAdd });
|
|
115
116
|
iReckon(lc, Boolean(e2eIndexAdd?.data?.staged_item && e2eIndexAdd.data.staged_item.length >= 2)).isGonnaBeTrue();
|
|
116
117
|
iReckon(lc, e2eIndexAdd?.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
117
118
|
|
|
@@ -130,11 +131,11 @@ await respecfully(lc, `Full E2E CLI Integration Spec`, async () => {
|
|
|
130
131
|
quiet: true,
|
|
131
132
|
});
|
|
132
133
|
|
|
133
|
-
const { localSpace: e2eSpaceCommit,
|
|
134
|
+
const { localSpace: e2eSpaceCommit, metaspace: e2eMetaspaceCommit } = await bootstrapVcsMetaspace({
|
|
134
135
|
repoPath: testDir,
|
|
135
136
|
vcsFolderName,
|
|
136
137
|
});
|
|
137
|
-
const e2eIndexCommit = await
|
|
138
|
+
const e2eIndexCommit = await getB2tFSIndexIbGib({ space: e2eSpaceCommit, metaspace: e2eMetaspaceCommit });
|
|
138
139
|
iReckon(lc, e2eIndexCommit?.data?.staged_item).willEqual([]);
|
|
139
140
|
iReckon(lc, e2eIndexCommit?.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
140
141
|
|
|
@@ -8,21 +8,22 @@ import path from 'node:path';
|
|
|
8
8
|
import fs from 'node:fs/promises';
|
|
9
9
|
|
|
10
10
|
import {
|
|
11
|
-
respecfully, ifWe, iReckon,
|
|
12
|
-
ifWeMight
|
|
11
|
+
respecfully, ifWe, iReckon, ifWeMight, // don't remove ifWe/ifWeMight even if unused
|
|
13
12
|
} from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
14
13
|
|
|
15
|
-
import {
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
14
|
+
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
15
|
+
|
|
16
|
+
import { executeInitCmd } from './cli-init-cmd.mjs';
|
|
17
|
+
import { executeAddCmd } from './cli-add-cmd.mjs';
|
|
18
|
+
import { executeCommitCmd } from './cli-commit-cmd.mjs';
|
|
19
|
+
import { executeBranchCmd } from './cli-branch-cmd.mjs';
|
|
20
|
+
import { executeCheckoutCmd } from './cli-checkout-cmd.mjs';
|
|
21
|
+
import { executeMergeCmd } from './cli-merge-cmd.mjs';
|
|
22
|
+
import { executeStatusCmd } from './cli-status-cmd.mjs';
|
|
23
|
+
import { executeLogCmd } from './cli-log-cmd.mjs';
|
|
23
24
|
import { logCheckpoint } from '../../test/test-helpers.mjs';
|
|
24
25
|
|
|
25
|
-
const lc = `[apps/vcs-gib/src/cli/commands/branch-checkout-cmd.respec.
|
|
26
|
+
const lc = `[apps/vcs-gib/src/cli/commands/branch-checkout-cmd.respec.mts]`;
|
|
26
27
|
|
|
27
28
|
await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async () => {
|
|
28
29
|
|
|
@@ -61,6 +62,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
61
62
|
});
|
|
62
63
|
|
|
63
64
|
// Create feature branch
|
|
65
|
+
debugger; // walk through branch exec
|
|
64
66
|
const createRes = await executeBranchCmd({
|
|
65
67
|
branchName: 'feature-auth',
|
|
66
68
|
targetDir: testDir,
|
|
@@ -77,6 +79,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
77
79
|
vcsFolderName,
|
|
78
80
|
quiet: true,
|
|
79
81
|
});
|
|
82
|
+
console.dir(listRes)
|
|
80
83
|
|
|
81
84
|
iReckon(lc, listRes.branches.length).willEqual(2);
|
|
82
85
|
const featureBranch = listRes.branches.find(b => b.name === 'feature-auth');
|
|
@@ -147,6 +150,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
147
150
|
quiet: true,
|
|
148
151
|
});
|
|
149
152
|
|
|
153
|
+
debugger; // 3
|
|
150
154
|
// Checkout feature-ui
|
|
151
155
|
const checkoutRes = await executeCheckoutCmd({
|
|
152
156
|
branchName: 'feature-ui',
|
|
@@ -166,6 +170,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
166
170
|
const fileContent = await fs.readFile(projectedFile, 'utf8');
|
|
167
171
|
iReckon(lc, fileContent).willEqual('console.log("Main");');
|
|
168
172
|
|
|
173
|
+
debugger; // 4
|
|
169
174
|
// Verify active branch in status
|
|
170
175
|
const statusRes = await executeStatusCmd({
|
|
171
176
|
targetDir: testDir,
|
|
@@ -174,6 +179,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
174
179
|
});
|
|
175
180
|
iReckon(lc, statusRes.branchName).willEqual('feature-ui');
|
|
176
181
|
|
|
182
|
+
debugger; // 5
|
|
177
183
|
// Verify branch list displays ALL branches while on feature-ui
|
|
178
184
|
const branchListOnFeature = await executeBranchCmd({
|
|
179
185
|
targetDir: testDir,
|
|
@@ -184,6 +190,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
184
190
|
iReckon(lc, branchListOnFeature.branches.map(b => b.name)).includes('main');
|
|
185
191
|
iReckon(lc, branchListOnFeature.branches.map(b => b.name)).includes('feature-ui');
|
|
186
192
|
|
|
193
|
+
debugger; // 6
|
|
187
194
|
// Make a commit on feature-ui branch
|
|
188
195
|
await fs.writeFile(path.join(expectedWorktree, 'ui.ts'), 'export const ui = 1;', 'utf8');
|
|
189
196
|
await executeAddCmd({
|
|
@@ -192,6 +199,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
192
199
|
vcsFolderName,
|
|
193
200
|
quiet: true,
|
|
194
201
|
});
|
|
202
|
+
debugger; // 7
|
|
195
203
|
await executeCommitCmd({
|
|
196
204
|
message: 'Add ui.ts on feature-ui',
|
|
197
205
|
targetDir: expectedWorktree,
|
|
@@ -199,6 +207,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
199
207
|
quiet: true,
|
|
200
208
|
});
|
|
201
209
|
|
|
210
|
+
debugger; // 8
|
|
202
211
|
// Verify branch list after commit on feature-ui still displays ALL branches
|
|
203
212
|
const branchListAfterCommit = await executeBranchCmd({
|
|
204
213
|
targetDir: expectedWorktree,
|
|
@@ -207,6 +216,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
207
216
|
});
|
|
208
217
|
iReckon(lc, branchListAfterCommit.branches.length).willEqual(2);
|
|
209
218
|
|
|
219
|
+
debugger; // 9
|
|
210
220
|
// Switch back to main
|
|
211
221
|
const switchBackRes = await executeCheckoutCmd({
|
|
212
222
|
branchName: 'main',
|
|
@@ -217,6 +227,8 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
217
227
|
iReckon(lc, switchBackRes.currentBranch).willEqual('main');
|
|
218
228
|
iReckon(lc, switchBackRes.worktreePath).willEqual(testDir);
|
|
219
229
|
|
|
230
|
+
debugger; // 10
|
|
231
|
+
|
|
220
232
|
// Verify branch list displays ALL branches while on main after feature-ui commit
|
|
221
233
|
const branchListOnMain = await executeBranchCmd({
|
|
222
234
|
targetDir: testDir,
|
|
@@ -235,6 +247,8 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
235
247
|
quiet: true,
|
|
236
248
|
});
|
|
237
249
|
iReckon(lc, switchAgainRes.currentBranch).willEqual('feature-ui');
|
|
250
|
+
} catch (error) {
|
|
251
|
+
iReckon(lc, true).asTo(extractErrorMsg(error)).isGonnaBeFalse();
|
|
238
252
|
} finally {
|
|
239
253
|
await fs.rm(testDir, { recursive: true, force: true });
|
|
240
254
|
}
|
|
@@ -274,7 +288,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
274
288
|
});
|
|
275
289
|
} catch (err: any) {
|
|
276
290
|
err2 = true;
|
|
277
|
-
iReckon(lc, err.message).includes("
|
|
291
|
+
iReckon(lc, err.message).includes("not found");
|
|
278
292
|
}
|
|
279
293
|
iReckon(lc, err2).isGonnaBeTrue();
|
|
280
294
|
} finally {
|
|
@@ -376,7 +390,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
376
390
|
});
|
|
377
391
|
} catch (err: any) {
|
|
378
392
|
uncommittedErr = true;
|
|
379
|
-
iReckon(lc, err.message).includes("not found in active branch
|
|
393
|
+
iReckon(lc, err.message).includes("not found in active branch");
|
|
380
394
|
}
|
|
381
395
|
iReckon(lc, uncommittedErr).isGonnaBeTrue();
|
|
382
396
|
|
|
@@ -541,7 +555,7 @@ await respecfully(lc, `vcs branch, checkout, and merge Command Handlers`, async
|
|
|
541
555
|
const featureLogRes = await executeLogCmd({ targetDir: featureWorktree!, vcsFolderName, quiet: true });
|
|
542
556
|
iReckon(lc, featureLogRes.branchName).willEqual('feature-calc');
|
|
543
557
|
const featureMessages = featureLogRes.commits.map(c => c.message);
|
|
544
|
-
iReckon(lc, featureMessages.some(m => m.includes('Add calc on feature-calc'))).isGonnaBeTrue();
|
|
558
|
+
iReckon(lc, featureMessages.some(m => m.includes('Add calc on feature-calc'))).asTo('featureMessages has Add calc on feature-calc').isGonnaBeTrue();
|
|
545
559
|
|
|
546
560
|
// Query status from inside featureWorktree
|
|
547
561
|
const featureStatusRes = await executeStatusCmd({ targetDir: featureWorktree!, vcsFolderName, quiet: true });
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module add-cmd
|
|
3
|
+
*
|
|
4
|
+
* CLI command handler for `vcs add <path...>`.
|
|
5
|
+
* Bootstraps workspace projection space and delegates to executeVcsAdd.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
|
|
10
|
+
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
11
|
+
import { openVcsRepository } from '../vcs-repo-helper.mjs';
|
|
12
|
+
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
13
|
+
|
|
14
|
+
const lcFile = `[add-cmd]`;
|
|
15
|
+
const logalot = GLOBAL_LOG_A_LOT;
|
|
16
|
+
|
|
17
|
+
export interface AddCmdOpts {
|
|
18
|
+
paths?: string[];
|
|
19
|
+
targetDir?: string;
|
|
20
|
+
vcsFolderName?: string;
|
|
21
|
+
all?: boolean;
|
|
22
|
+
quiet?: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface AddCmdResult {
|
|
26
|
+
stagedPaths: string[];
|
|
27
|
+
stagedCount: number;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export async function executeAddCmd({
|
|
31
|
+
paths = [],
|
|
32
|
+
targetDir = process.cwd(),
|
|
33
|
+
vcsFolderName = '.vcsgib',
|
|
34
|
+
all = false,
|
|
35
|
+
quiet = false,
|
|
36
|
+
}: AddCmdOpts = {}): Promise<AddCmdResult> {
|
|
37
|
+
const lc = `${lcFile}[${executeAddCmd.name}]`;
|
|
38
|
+
try {
|
|
39
|
+
if (logalot) { console.log(`${lc} starting... (I: genuuid)`); }
|
|
40
|
+
|
|
41
|
+
const absTargetDir = path.resolve(targetDir);
|
|
42
|
+
const { repo } = await openVcsRepository({ targetDir: absTargetDir, vcsFolderName });
|
|
43
|
+
|
|
44
|
+
const addRes = await repo.add(paths, {
|
|
45
|
+
all,
|
|
46
|
+
targetDir: absTargetDir,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
if (!quiet) {
|
|
50
|
+
for (const stagedPath of addRes.stagedPaths) {
|
|
51
|
+
console.log(`staged: ${stagedPath}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
stagedPaths: addRes.stagedPaths,
|
|
57
|
+
stagedCount: addRes.stagedCount,
|
|
58
|
+
};
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error(`${lc} ${extractErrorMsg(error)} (E: genuuid)`);
|
|
61
|
+
throw error;
|
|
62
|
+
} finally {
|
|
63
|
+
if (logalot) { console.log(`${lc} complete. (I: genuuid)`); }
|
|
64
|
+
}
|
|
65
|
+
}
|