@ibgib/vcs-gib 0.0.6
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 +94 -0
- package/VCS_CLI_USER_GUIDE.md +198 -0
- package/dist/AUTO-GENERATED-version.d.mts +6 -0
- package/dist/AUTO-GENERATED-version.d.mts.map +1 -0
- package/dist/AUTO-GENERATED-version.mjs +6 -0
- package/dist/AUTO-GENERATED-version.mjs.map +1 -0
- package/dist/assumptions.respec.d.mts +2 -0
- package/dist/assumptions.respec.d.mts.map +1 -0
- package/dist/assumptions.respec.mjs +41 -0
- package/dist/assumptions.respec.mjs.map +1 -0
- package/dist/bootstrap/node-bootstrap.d.mts +35 -0
- package/dist/bootstrap/node-bootstrap.d.mts.map +1 -0
- package/dist/bootstrap/node-bootstrap.mjs +165 -0
- package/dist/bootstrap/node-bootstrap.mjs.map +1 -0
- package/dist/bootstrap/node-bootstrap.respec.node.d.mts +7 -0
- package/dist/bootstrap/node-bootstrap.respec.node.d.mts.map +1 -0
- package/dist/bootstrap/node-bootstrap.respec.node.mjs +28 -0
- package/dist/bootstrap/node-bootstrap.respec.node.mjs.map +1 -0
- package/dist/cli/cli-arg-parser.d.mts +27 -0
- package/dist/cli/cli-arg-parser.d.mts.map +1 -0
- package/dist/cli/cli-arg-parser.mjs +96 -0
- package/dist/cli/cli-arg-parser.mjs.map +1 -0
- package/dist/cli/cli-arg-parser.respec.node.d.mts +7 -0
- package/dist/cli/cli-arg-parser.respec.node.d.mts.map +1 -0
- package/dist/cli/cli-arg-parser.respec.node.mjs +35 -0
- package/dist/cli/cli-arg-parser.respec.node.mjs.map +1 -0
- package/dist/cli/cli-constants.d.mts +26 -0
- package/dist/cli/cli-constants.d.mts.map +1 -0
- package/dist/cli/cli-constants.mjs +67 -0
- package/dist/cli/cli-constants.mjs.map +1 -0
- package/dist/cli/cli-e2e.respec.node.d.mts +8 -0
- package/dist/cli/cli-e2e.respec.node.d.mts.map +1 -0
- package/dist/cli/cli-e2e.respec.node.mjs +263 -0
- package/dist/cli/cli-e2e.respec.node.mjs.map +1 -0
- package/dist/cli/commands/add-cmd.d.mts +20 -0
- package/dist/cli/commands/add-cmd.d.mts.map +1 -0
- package/dist/cli/commands/add-cmd.mjs +333 -0
- package/dist/cli/commands/add-cmd.mjs.map +1 -0
- package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts +7 -0
- package/dist/cli/commands/branch-checkout-cmd.respec.node.d.mts.map +1 -0
- package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs +288 -0
- package/dist/cli/commands/branch-checkout-cmd.respec.node.mjs.map +1 -0
- package/dist/cli/commands/branch-cmd.d.mts +25 -0
- package/dist/cli/commands/branch-cmd.d.mts.map +1 -0
- package/dist/cli/commands/branch-cmd.mjs +187 -0
- package/dist/cli/commands/branch-cmd.mjs.map +1 -0
- package/dist/cli/commands/checkout-cmd.d.mts +21 -0
- package/dist/cli/commands/checkout-cmd.d.mts.map +1 -0
- package/dist/cli/commands/checkout-cmd.mjs +154 -0
- package/dist/cli/commands/checkout-cmd.mjs.map +1 -0
- package/dist/cli/commands/commit-cmd.d.mts +23 -0
- package/dist/cli/commands/commit-cmd.d.mts.map +1 -0
- package/dist/cli/commands/commit-cmd.mjs +326 -0
- package/dist/cli/commands/commit-cmd.mjs.map +1 -0
- package/dist/cli/commands/commit-log-cmd.respec.node.d.mts +7 -0
- package/dist/cli/commands/commit-log-cmd.respec.node.d.mts.map +1 -0
- package/dist/cli/commands/commit-log-cmd.respec.node.mjs +251 -0
- package/dist/cli/commands/commit-log-cmd.respec.node.mjs.map +1 -0
- package/dist/cli/commands/init-cmd.d.mts +20 -0
- package/dist/cli/commands/init-cmd.d.mts.map +1 -0
- package/dist/cli/commands/init-cmd.mjs +119 -0
- package/dist/cli/commands/init-cmd.mjs.map +1 -0
- package/dist/cli/commands/init-cmd.respec.node.d.mts +7 -0
- package/dist/cli/commands/init-cmd.respec.node.d.mts.map +1 -0
- package/dist/cli/commands/init-cmd.respec.node.mjs +40 -0
- package/dist/cli/commands/init-cmd.respec.node.mjs.map +1 -0
- package/dist/cli/commands/log-cmd.d.mts +27 -0
- package/dist/cli/commands/log-cmd.d.mts.map +1 -0
- package/dist/cli/commands/log-cmd.mjs +146 -0
- package/dist/cli/commands/log-cmd.mjs.map +1 -0
- package/dist/cli/commands/status-add-cmd.respec.node.d.mts +7 -0
- package/dist/cli/commands/status-add-cmd.respec.node.d.mts.map +1 -0
- package/dist/cli/commands/status-add-cmd.respec.node.mjs +215 -0
- package/dist/cli/commands/status-add-cmd.respec.node.mjs.map +1 -0
- package/dist/cli/commands/status-cmd.d.mts +25 -0
- package/dist/cli/commands/status-cmd.d.mts.map +1 -0
- package/dist/cli/commands/status-cmd.mjs +286 -0
- package/dist/cli/commands/status-cmd.mjs.map +1 -0
- package/dist/cli/vcs-cli-main.d.mts +14 -0
- package/dist/cli/vcs-cli-main.d.mts.map +1 -0
- package/dist/cli/vcs-cli-main.mjs +136 -0
- package/dist/cli/vcs-cli-main.mjs.map +1 -0
- package/dist/engine/branch/branch-graph-helper.d.mts +19 -0
- package/dist/engine/branch/branch-graph-helper.d.mts.map +1 -0
- package/dist/engine/branch/branch-graph-helper.mjs +49 -0
- package/dist/engine/branch/branch-graph-helper.mjs.map +1 -0
- package/dist/engine/branch/branch-helper.d.mts +26 -0
- package/dist/engine/branch/branch-helper.d.mts.map +1 -0
- package/dist/engine/branch/branch-helper.mjs +57 -0
- package/dist/engine/branch/branch-helper.mjs.map +1 -0
- package/dist/engine/branch/branch-space-helper.d.mts +22 -0
- package/dist/engine/branch/branch-space-helper.d.mts.map +1 -0
- package/dist/engine/branch/branch-space-helper.mjs +77 -0
- package/dist/engine/branch/branch-space-helper.mjs.map +1 -0
- package/dist/engine/branch/branch-space.respec.node.d.mts +8 -0
- package/dist/engine/branch/branch-space.respec.node.d.mts.map +1 -0
- package/dist/engine/branch/branch-space.respec.node.mjs +138 -0
- package/dist/engine/branch/branch-space.respec.node.mjs.map +1 -0
- package/dist/engine/branch/branch-types.d.mts +26 -0
- package/dist/engine/branch/branch-types.d.mts.map +1 -0
- package/dist/engine/branch/branch-types.mjs +7 -0
- package/dist/engine/branch/branch-types.mjs.map +1 -0
- package/dist/engine/diff/line-diff-helper.d.mts +76 -0
- package/dist/engine/diff/line-diff-helper.d.mts.map +1 -0
- package/dist/engine/diff/line-diff-helper.mjs +144 -0
- package/dist/engine/diff/line-diff-helper.mjs.map +1 -0
- package/dist/engine/diff/line-diff-helper.respec.node.d.mts +7 -0
- package/dist/engine/diff/line-diff-helper.respec.node.d.mts.map +1 -0
- package/dist/engine/diff/line-diff-helper.respec.node.mjs +66 -0
- package/dist/engine/diff/line-diff-helper.respec.node.mjs.map +1 -0
- package/dist/engine/filter/glob-helper.d.mts +51 -0
- package/dist/engine/filter/glob-helper.d.mts.map +1 -0
- package/dist/engine/filter/glob-helper.mjs +132 -0
- package/dist/engine/filter/glob-helper.mjs.map +1 -0
- package/dist/engine/filter/glob-helper.respec.node.d.mts +7 -0
- package/dist/engine/filter/glob-helper.respec.node.d.mts.map +1 -0
- package/dist/engine/filter/glob-helper.respec.node.mjs +78 -0
- package/dist/engine/filter/glob-helper.respec.node.mjs.map +1 -0
- package/dist/engine/index/index-helper.d.mts +78 -0
- package/dist/engine/index/index-helper.d.mts.map +1 -0
- package/dist/engine/index/index-helper.mjs +289 -0
- package/dist/engine/index/index-helper.mjs.map +1 -0
- package/dist/engine/index/index-types.d.mts +63 -0
- package/dist/engine/index/index-types.d.mts.map +1 -0
- package/dist/engine/index/index-types.mjs +7 -0
- package/dist/engine/index/index-types.mjs.map +1 -0
- package/dist/engine/item/item-atom-helper.d.mts +20 -0
- package/dist/engine/item/item-atom-helper.d.mts.map +1 -0
- package/dist/engine/item/item-atom-helper.mjs +30 -0
- package/dist/engine/item/item-atom-helper.mjs.map +1 -0
- package/dist/engine/item/item-helper.d.mts +37 -0
- package/dist/engine/item/item-helper.d.mts.map +1 -0
- package/dist/engine/item/item-helper.mjs +194 -0
- package/dist/engine/item/item-helper.mjs.map +1 -0
- package/dist/engine/item/item-types.d.mts +127 -0
- package/dist/engine/item/item-types.d.mts.map +1 -0
- package/dist/engine/item/item-types.mjs +16 -0
- package/dist/engine/item/item-types.mjs.map +1 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -0
- package/dist/respec-gib.node.d.mts +7 -0
- package/dist/respec-gib.node.d.mts.map +1 -0
- package/dist/respec-gib.node.mjs +11 -0
- package/dist/respec-gib.node.mjs.map +1 -0
- package/dist/vcs-gib-constants.d.mts +7 -0
- package/dist/vcs-gib-constants.d.mts.map +1 -0
- package/dist/vcs-gib-constants.mjs +7 -0
- package/dist/vcs-gib-constants.mjs.map +1 -0
- package/dist/vcs-gib.respec.node.d.mts +8 -0
- package/dist/vcs-gib.respec.node.d.mts.map +1 -0
- package/dist/vcs-gib.respec.node.mjs +82 -0
- package/dist/vcs-gib.respec.node.mjs.map +1 -0
- package/generate-version-file.js +20 -0
- package/package.json +28 -0
- package/src/AUTO-GENERATED-version.mts +5 -0
- package/src/assumptions.respec.mts +50 -0
- package/src/bootstrap/node-bootstrap.mts +198 -0
- package/src/bootstrap/node-bootstrap.respec.node.mts +35 -0
- package/src/cli/cli-arg-parser.mts +119 -0
- package/src/cli/cli-arg-parser.respec.node.mts +45 -0
- package/src/cli/cli-constants.mts +77 -0
- package/src/cli/cli-e2e.respec.node.mts +318 -0
- package/src/cli/commands/add-cmd.mts +415 -0
- package/src/cli/commands/branch-checkout-cmd.respec.node.mts +322 -0
- package/src/cli/commands/branch-cmd.mts +243 -0
- package/src/cli/commands/checkout-cmd.mts +202 -0
- package/src/cli/commands/commit-cmd.mts +421 -0
- package/src/cli/commands/commit-log-cmd.respec.node.mts +276 -0
- package/src/cli/commands/init-cmd.mts +152 -0
- package/src/cli/commands/init-cmd.respec.node.mts +49 -0
- package/src/cli/commands/log-cmd.mts +197 -0
- package/src/cli/commands/status-add-cmd.respec.node.mts +246 -0
- package/src/cli/commands/status-cmd.mts +366 -0
- package/src/cli/vcs-cli-main.mts +153 -0
- package/src/engine/branch/branch-graph-helper.mts +69 -0
- package/src/engine/branch/branch-helper.mts +79 -0
- package/src/engine/branch/branch-space-helper.mts +104 -0
- package/src/engine/branch/branch-space.respec.node.mts +158 -0
- package/src/engine/branch/branch-types.mts +29 -0
- package/src/engine/diff/line-diff-helper.mts +210 -0
- package/src/engine/diff/line-diff-helper.respec.node.mts +84 -0
- package/src/engine/filter/glob-helper.mts +165 -0
- package/src/engine/filter/glob-helper.respec.node.mts +94 -0
- package/src/engine/index/index-helper.mts +378 -0
- package/src/engine/index/index-types.mts +66 -0
- package/src/engine/item/item-atom-helper.mts +30 -0
- package/src/engine/item/item-helper.mts +239 -0
- package/src/engine/item/item-types.mts +136 -0
- package/src/index.mts +7 -0
- package/src/respec-gib.node.mts +12 -0
- package/src/vcs-gib-constants.mts +7 -0
- package/src/vcs-gib.respec.node.mts +96 -0
- package/test_runs/001-hello-node/20260728_090100_0001-flow-core-main.md +39 -0
- package/test_runs/001-hello-node/20260728_090200_0003-flow-branching-worktree.md +54 -0
- package/test_runs/001-hello-node/20260728_090300_0002-flow-selective-add.md +45 -0
- package/test_runs/001-hello-node/20260728_142100_0007-flow-edge-cases.md +44 -0
- package/test_runs/001-hello-node/20260728_142400_0005-flow-hardcoded-ignores.md +36 -0
- package/tools/pack-for-test.mjs +73 -0
- package/tsconfig.json +18 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module init-cmd
|
|
3
|
+
*
|
|
4
|
+
* Command handler for `vcs init [targetDir]`.
|
|
5
|
+
* Initializes local repository space, root B2tFS folder item, default branch, and in-band space index.
|
|
6
|
+
*/
|
|
7
|
+
import path from 'node:path';
|
|
8
|
+
import fs from 'node:fs/promises';
|
|
9
|
+
import { extractErrorMsg, getUUID } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
10
|
+
import { Factory_V1 } from '@ibgib/ts-gib/dist/V1/factory.mjs';
|
|
11
|
+
import { ROOT } from '@ibgib/ts-gib/dist/V1/constants.mjs';
|
|
12
|
+
import { getIbGibAddr } from '@ibgib/ts-gib/dist/helper.mjs';
|
|
13
|
+
import { persistTransformResult } from '@ibgib/core-gib/dist/witness/space/space-helper.mjs';
|
|
14
|
+
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
15
|
+
import { getB2tFSItemIb } from '../../engine/item/item-atom-helper.mjs';
|
|
16
|
+
import { createB2tFSBranchIbGib, getB2tFSBranchSpaceName } from '../../engine/branch/branch-helper.mjs';
|
|
17
|
+
import { getOrCreateBranchSpace } from '../../engine/branch/branch-space-helper.mjs';
|
|
18
|
+
import { createB2tFSIndexIbGib, writeVcsIndexProjection } from '../../engine/index/index-helper.mjs';
|
|
19
|
+
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
20
|
+
const lcFile = `[init-cmd]`;
|
|
21
|
+
const logalot = GLOBAL_LOG_A_LOT;
|
|
22
|
+
export async function executeInitCmd({ targetDir = process.cwd(), vcsFolderName = '.vcsgib', defaultBranchName = 'main', quiet = false, } = {}) {
|
|
23
|
+
const lc = `${lcFile}[${executeInitCmd.name}]`;
|
|
24
|
+
try {
|
|
25
|
+
if (logalot) {
|
|
26
|
+
console.log(`${lc} starting... (I: 8a9b10c11d12e13f14a15b16c17d18e1)`);
|
|
27
|
+
}
|
|
28
|
+
const absTargetDir = path.resolve(targetDir);
|
|
29
|
+
const vcsPath = path.join(absTargetDir, vcsFolderName);
|
|
30
|
+
// Create target repository folder if it doesn't exist
|
|
31
|
+
await fs.mkdir(absTargetDir, { recursive: true });
|
|
32
|
+
// Bootstrap Metaspace
|
|
33
|
+
const { metaspace } = await bootstrapVcsMetaspace({
|
|
34
|
+
repoPath: absTargetDir,
|
|
35
|
+
vcsFolderName,
|
|
36
|
+
defaultSpaceName: `vcs_${path.basename(absTargetDir).replace(/[^a-zA-Z0-9_\-]/g, '_')}`,
|
|
37
|
+
});
|
|
38
|
+
// Initialize b2s_main branch space
|
|
39
|
+
const { space: branchSpace, spaceId } = await getOrCreateBranchSpace({
|
|
40
|
+
metaspace,
|
|
41
|
+
vcsPath,
|
|
42
|
+
branchName: defaultBranchName,
|
|
43
|
+
});
|
|
44
|
+
const folderName = path.basename(absTargetDir) || 'root';
|
|
45
|
+
const rootNameHash = await getUUID();
|
|
46
|
+
// 1. Create root folder B2tFS item inside b2s_main space
|
|
47
|
+
const rootItemRes = await Factory_V1.firstGen({
|
|
48
|
+
parentIbGib: ROOT,
|
|
49
|
+
ib: getB2tFSItemIb('folder', folderName, rootNameHash),
|
|
50
|
+
data: {
|
|
51
|
+
name: folderName,
|
|
52
|
+
nameHash: rootNameHash,
|
|
53
|
+
fsType: 'folder',
|
|
54
|
+
diffTransactionId: await getUUID(),
|
|
55
|
+
uuid: await getUUID(),
|
|
56
|
+
classname: 'B2tFSItemIbGib_V1',
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
const rootItem = rootItemRes.newIbGib;
|
|
60
|
+
await persistTransformResult({ resTransform: rootItemRes, space: branchSpace });
|
|
61
|
+
await metaspace.registerNewIbGib({ ibGib: rootItem, space: branchSpace });
|
|
62
|
+
// 2. Create default branch pointing to root folder inside b2s_main space
|
|
63
|
+
const branchIbGib = await createB2tFSBranchIbGib({
|
|
64
|
+
branchName: defaultBranchName,
|
|
65
|
+
rootItem,
|
|
66
|
+
space: branchSpace,
|
|
67
|
+
metaspace,
|
|
68
|
+
});
|
|
69
|
+
const branchAddr = getIbGibAddr({ ibGib: branchIbGib });
|
|
70
|
+
// 3. Create space index meta object stored inside b2s_main space
|
|
71
|
+
const indexIbGib = await createB2tFSIndexIbGib({
|
|
72
|
+
spaceId,
|
|
73
|
+
activeSpaceId: getB2tFSBranchSpaceName(defaultBranchName),
|
|
74
|
+
activeBranch: defaultBranchName,
|
|
75
|
+
space: branchSpace,
|
|
76
|
+
metaspace,
|
|
77
|
+
branchAddr,
|
|
78
|
+
});
|
|
79
|
+
// 4. Write read-only projection file in .vcsgib/
|
|
80
|
+
await writeVcsIndexProjection({
|
|
81
|
+
vcsPath,
|
|
82
|
+
indexIbGib,
|
|
83
|
+
});
|
|
84
|
+
// Clean up legacy out-of-band state files if present
|
|
85
|
+
try {
|
|
86
|
+
await fs.rm(path.join(vcsPath, 'vcs_state.json'), { force: true });
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// Ignore if missing
|
|
90
|
+
}
|
|
91
|
+
try {
|
|
92
|
+
await fs.rm(path.join(vcsPath, 'staging.json'), { force: true });
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
// Ignore if missing
|
|
96
|
+
}
|
|
97
|
+
if (!quiet) {
|
|
98
|
+
console.log(`Initialized empty ibgib repository in ${vcsPath} (I: 6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f)`);
|
|
99
|
+
console.log(` Branch: ${defaultBranchName}`);
|
|
100
|
+
console.log(` Root Item: ${rootItem.ib}`);
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
vcsPath,
|
|
104
|
+
spaceId,
|
|
105
|
+
branchName: defaultBranchName,
|
|
106
|
+
rootItemIb: rootItem.ib,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
console.error(`${lc} ${extractErrorMsg(error)} (E: 9b10c11d12e13f14a15b16c17d18e19f)`);
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
if (logalot) {
|
|
115
|
+
console.log(`${lc} complete. (I: 0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d)`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=init-cmd.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/init-cmd.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-cmd.respec.node.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/init-cmd.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module init-cmd.respec
|
|
3
|
+
*
|
|
4
|
+
* Unit tests for `vcs init` command handler.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import fs from 'node:fs/promises';
|
|
8
|
+
import { existsSync } from 'node:fs';
|
|
9
|
+
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
10
|
+
import { executeInitCmd } from './init-cmd.mjs';
|
|
11
|
+
const lc = `[apps/vcs-gib/src/cli/commands/init-cmd.respec.node.mts]`;
|
|
12
|
+
await respecfully(lc, `vcs init Command Handler`, async () => {
|
|
13
|
+
await ifWe(lc, `initializes repository space, branch, and index in target folder`, async () => {
|
|
14
|
+
const testDir = path.join(process.cwd(), '.test_init_repo');
|
|
15
|
+
const vcsFolderName = '.vcsgib_init_test';
|
|
16
|
+
try {
|
|
17
|
+
const res = await executeInitCmd({
|
|
18
|
+
targetDir: testDir,
|
|
19
|
+
vcsFolderName,
|
|
20
|
+
quiet: true,
|
|
21
|
+
});
|
|
22
|
+
iReckon(lc, res.branchName).willEqual('main');
|
|
23
|
+
iReckon(lc, res.rootItemIb).includes('b2tfs_item folder');
|
|
24
|
+
iReckon(lc, res.vcsPath).includes(vcsFolderName);
|
|
25
|
+
// Strict Repository Location Isolation Assertions:
|
|
26
|
+
// 1. Storage MUST be inside vcsPath (.vcsgib_init_test)
|
|
27
|
+
const ibgibInsideVcsFolder = existsSync(path.join(res.vcsPath, 'ibgib')) || existsSync(path.join(res.vcsPath, 'space'));
|
|
28
|
+
iReckon(lc, ibgibInsideVcsFolder).isGonnaBeTrue();
|
|
29
|
+
// 2. Storage MUST NOT spill into testDir root or process.cwd() as stray 'ibgib' folder
|
|
30
|
+
const strayInTestDir = existsSync(path.join(testDir, 'ibgib'));
|
|
31
|
+
const strayInCwd = existsSync(path.join(process.cwd(), 'ibgib'));
|
|
32
|
+
iReckon(lc, strayInTestDir).isGonnaBeFalse();
|
|
33
|
+
iReckon(lc, strayInCwd).isGonnaBeFalse();
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=init-cmd.respec.node.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-cmd.respec.node.mjs","sourceRoot":"","sources":["../../../src/cli/commands/init-cmd.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EACH,WAAW,EAAE,IAAI,EAAE,OAAO,EAC7B,MAAM,kDAAkD,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,EAAE,GAAG,0DAA0D,CAAC;AAEtE,MAAM,WAAW,CAAC,EAAE,EAAE,0BAA0B,EAAE,KAAK,IAAI,EAAE;IAEzD,MAAM,IAAI,CAAC,EAAE,EAAE,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,mBAAmB,CAAC;QAC1C,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC;gBAC7B,SAAS,EAAE,OAAO;gBAClB,aAAa;gBACb,KAAK,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAC1D,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAEjD,mDAAmD;YACnD,wDAAwD;YACxD,MAAM,oBAAoB,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YACxH,OAAO,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC,aAAa,EAAE,CAAC;YAElD,uFAAuF;YACvF,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,cAAc,EAAE,CAAC;YAC7C,OAAO,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,cAAc,EAAE,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACP,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module log-cmd
|
|
3
|
+
*
|
|
4
|
+
* Command handler for `vcs log`.
|
|
5
|
+
* Reads active branch timeline from B2tFSIndexIbGib_V1 in localSpace,
|
|
6
|
+
* walks branch timeline history backward, and displays formatted commit history.
|
|
7
|
+
*/
|
|
8
|
+
export interface VcsLogItem {
|
|
9
|
+
branchAddr: string;
|
|
10
|
+
commitAddr: string;
|
|
11
|
+
commentAddr?: string;
|
|
12
|
+
message: string;
|
|
13
|
+
timestamp: string;
|
|
14
|
+
author: string;
|
|
15
|
+
rootItemAddr?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface LogCmdOpts {
|
|
18
|
+
targetDir?: string;
|
|
19
|
+
vcsFolderName?: string;
|
|
20
|
+
quiet?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface LogCmdResult {
|
|
23
|
+
branchName: string;
|
|
24
|
+
commits: VcsLogItem[];
|
|
25
|
+
}
|
|
26
|
+
export declare function executeLogCmd({ targetDir, vcsFolderName, quiet, }?: LogCmdOpts): Promise<LogCmdResult>;
|
|
27
|
+
//# sourceMappingURL=log-cmd.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/log-cmd.mts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoBH,MAAM,WAAW,UAAU;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,EAAE,CAAC;CACzB;AAED,wBAAsB,aAAa,CAAC,EAChC,SAAyB,EACzB,aAAyB,EACzB,KAAa,GAChB,GAAE,UAAe,GAAG,OAAO,CAAC,YAAY,CAAC,CAiJzC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module log-cmd
|
|
3
|
+
*
|
|
4
|
+
* Command handler for `vcs log`.
|
|
5
|
+
* Reads active branch timeline from B2tFSIndexIbGib_V1 in localSpace,
|
|
6
|
+
* walks branch timeline history backward, and displays formatted commit history.
|
|
7
|
+
*/
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import fs from 'node:fs/promises';
|
|
10
|
+
import { extractErrorMsg } from '@ibgib/helper-gib/dist/helpers/utils-helper.mjs';
|
|
11
|
+
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
12
|
+
import { getOrCreateBranchSpace } from '../../engine/branch/branch-space-helper.mjs';
|
|
13
|
+
import { getIbGibWithMetaspaceFallback } from '../../engine/item/item-helper.mjs';
|
|
14
|
+
import { getB2tFSIndexIbGib, extractBranchNameFromAddr } from '../../engine/index/index-helper.mjs';
|
|
15
|
+
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
16
|
+
const lcFile = `[log-cmd]`;
|
|
17
|
+
const logalot = GLOBAL_LOG_A_LOT;
|
|
18
|
+
export async function executeLogCmd({ targetDir = process.cwd(), vcsFolderName = '.vcsgib', quiet = false, } = {}) {
|
|
19
|
+
const lc = `${lcFile}[${executeLogCmd.name}]`;
|
|
20
|
+
try {
|
|
21
|
+
if (logalot) {
|
|
22
|
+
console.log(`${lc} starting executeLogCmd (I: 1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e)`);
|
|
23
|
+
}
|
|
24
|
+
const absTargetDir = path.resolve(targetDir);
|
|
25
|
+
const { metaspace, localSpace, vcsPath, repoRoot } = await bootstrapVcsMetaspace({
|
|
26
|
+
repoPath: absTargetDir,
|
|
27
|
+
vcsFolderName,
|
|
28
|
+
});
|
|
29
|
+
// Verify repo exists
|
|
30
|
+
try {
|
|
31
|
+
await fs.access(vcsPath);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
throw new Error(`Not an ibgib repository (directory ${vcsPath} does not exist) (E: 2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f)`);
|
|
35
|
+
}
|
|
36
|
+
// 1. Fetch authoritative B2tFSIndexIbGib_V1 directly from localSpace
|
|
37
|
+
const indexIbGib = await getB2tFSIndexIbGib({ space: localSpace, vcsPath });
|
|
38
|
+
if (!indexIbGib) {
|
|
39
|
+
throw new Error(`Repository index B2tFSIndexIbGib_V1 not found in localSpace (E: 3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a)`);
|
|
40
|
+
}
|
|
41
|
+
const branchName = indexIbGib.data?.activeBranch || 'main';
|
|
42
|
+
// Target active branch space b2s_<activeBranch>
|
|
43
|
+
const { space: activeSpace } = await getOrCreateBranchSpace({
|
|
44
|
+
metaspace,
|
|
45
|
+
vcsPath,
|
|
46
|
+
branchName,
|
|
47
|
+
});
|
|
48
|
+
// 2. Fetch active branch node address matching active branchName
|
|
49
|
+
const branchAddrs = [
|
|
50
|
+
...(indexIbGib.rel8ns?.branch || []),
|
|
51
|
+
...(indexIbGib.rel8ns?.branch_tjp || []),
|
|
52
|
+
];
|
|
53
|
+
let currBranchAddr;
|
|
54
|
+
// Match branchName against branchAddrs by space-qualified address or raw atom ib string
|
|
55
|
+
for (const addr of branchAddrs) {
|
|
56
|
+
const parsedName = extractBranchNameFromAddr(addr);
|
|
57
|
+
if (parsedName === branchName) {
|
|
58
|
+
currBranchAddr = addr;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Fallback: fetch branch nodes via getIbGibWithMetaspaceFallback to match b.data?.name === branchName
|
|
63
|
+
if (!currBranchAddr) {
|
|
64
|
+
for (const addr of branchAddrs) {
|
|
65
|
+
const bIbGib = await getIbGibWithMetaspaceFallback({
|
|
66
|
+
addr,
|
|
67
|
+
space: activeSpace,
|
|
68
|
+
metaspace,
|
|
69
|
+
});
|
|
70
|
+
if (bIbGib?.data?.name === branchName) {
|
|
71
|
+
currBranchAddr = addr;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Ultimate fallback if no match found
|
|
77
|
+
if (!currBranchAddr) {
|
|
78
|
+
currBranchAddr = branchAddrs.at(0);
|
|
79
|
+
}
|
|
80
|
+
const visitedAddrs = new Set();
|
|
81
|
+
const commits = [];
|
|
82
|
+
// 3. Walk timeline history backward
|
|
83
|
+
while (currBranchAddr && !visitedAddrs.has(currBranchAddr)) {
|
|
84
|
+
visitedAddrs.add(currBranchAddr);
|
|
85
|
+
const branchIbGib = await getIbGibWithMetaspaceFallback({
|
|
86
|
+
addr: currBranchAddr,
|
|
87
|
+
space: activeSpace,
|
|
88
|
+
metaspace,
|
|
89
|
+
});
|
|
90
|
+
if (!branchIbGib) {
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
const commentAddr = branchIbGib.rel8ns?.comment?.at(0);
|
|
94
|
+
const rootItemAddr = branchIbGib.rel8ns?.b2tfs_item?.at(0);
|
|
95
|
+
if (commentAddr) {
|
|
96
|
+
const commentIbGib = await getIbGibWithMetaspaceFallback({
|
|
97
|
+
addr: commentAddr,
|
|
98
|
+
space: activeSpace,
|
|
99
|
+
metaspace,
|
|
100
|
+
});
|
|
101
|
+
const message = commentIbGib?.data?.text || '';
|
|
102
|
+
const timestamp = commentIbGib?.data?.textTimestamp || commentIbGib?.data?.timestamp || branchIbGib.data?.committedAt || '';
|
|
103
|
+
const author = 'vcs-user';
|
|
104
|
+
commits.push({
|
|
105
|
+
branchAddr: currBranchAddr,
|
|
106
|
+
commitAddr: commentAddr,
|
|
107
|
+
commentAddr,
|
|
108
|
+
message,
|
|
109
|
+
timestamp,
|
|
110
|
+
author,
|
|
111
|
+
rootItemAddr,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
// Move to previous branch node in timeline
|
|
115
|
+
currBranchAddr = branchIbGib.rel8ns?.past?.at(0) || branchIbGib.rel8ns?.ancestor?.at(0);
|
|
116
|
+
}
|
|
117
|
+
if (!quiet) {
|
|
118
|
+
console.log(`Branch: ${branchName} (I: 4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b)`);
|
|
119
|
+
if (commits.length === 0) {
|
|
120
|
+
console.log('No commits yet.');
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
for (const commit of commits) {
|
|
124
|
+
console.log(`\ncommit ${commit.commitAddr}`);
|
|
125
|
+
console.log(`Author: ${commit.author}`);
|
|
126
|
+
console.log(`Date: ${commit.timestamp}`);
|
|
127
|
+
console.log(`\n ${commit.message}\n`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
branchName,
|
|
133
|
+
commits,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
console.error(`${lc} ${extractErrorMsg(error)} (E: 5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c)`);
|
|
138
|
+
throw error;
|
|
139
|
+
}
|
|
140
|
+
finally {
|
|
141
|
+
if (logalot) {
|
|
142
|
+
console.log(`${lc} complete. (I: 6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d)`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=log-cmd.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/log-cmd.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-add-cmd.respec.node.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/status-add-cmd.respec.node.mts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module status-add-cmd.respec
|
|
3
|
+
*
|
|
4
|
+
* Unit tests for `vcs status` and `vcs add` command handlers.
|
|
5
|
+
*/
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import fs from 'node:fs/promises';
|
|
8
|
+
import { respecfully, ifWe, iReckon } from '@ibgib/helper-gib/dist/respec-gib/respec-gib.mjs';
|
|
9
|
+
import { executeInitCmd } from './init-cmd.mjs';
|
|
10
|
+
import { executeStatusCmd } from './status-cmd.mjs';
|
|
11
|
+
import { executeAddCmd } from './add-cmd.mjs';
|
|
12
|
+
import { executeCommitCmd } from './commit-cmd.mjs';
|
|
13
|
+
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
14
|
+
import { getB2tFSIndexIbGib } from '../../engine/index/index-helper.mjs';
|
|
15
|
+
const lc = `[apps/vcs-gib/src/cli/commands/status-add-cmd.respec.node.mts]`;
|
|
16
|
+
await respecfully(lc, `vcs status and vcs add Command Handlers`, async () => {
|
|
17
|
+
await ifWe(lc, `detects untracked files in fresh repository`, async () => {
|
|
18
|
+
const testDir = path.join(process.cwd(), '.test_status_add_1');
|
|
19
|
+
const vcsFolderName = '.vcsgib_test_1';
|
|
20
|
+
try {
|
|
21
|
+
await executeInitCmd({
|
|
22
|
+
targetDir: testDir,
|
|
23
|
+
vcsFolderName,
|
|
24
|
+
quiet: true,
|
|
25
|
+
});
|
|
26
|
+
await fs.writeFile(path.join(testDir, 'hello.txt'), 'Hello ibgib!', 'utf8');
|
|
27
|
+
const statusRes = await executeStatusCmd({
|
|
28
|
+
targetDir: testDir,
|
|
29
|
+
vcsFolderName,
|
|
30
|
+
quiet: true,
|
|
31
|
+
});
|
|
32
|
+
iReckon(lc, statusRes.branchName).willEqual('main');
|
|
33
|
+
iReckon(lc, statusRes.untracked.map(x => x.path)).includes('hello.txt');
|
|
34
|
+
iReckon(lc, statusRes.staged.length).willEqual(0);
|
|
35
|
+
}
|
|
36
|
+
finally {
|
|
37
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
await ifWe(lc, `discovers .vcsgib via upward discovery when executed from a subfolder`, async () => {
|
|
41
|
+
const testDir = path.join(process.cwd(), '.test_status_add_subfolder');
|
|
42
|
+
const vcsFolderName = '.vcsgib_test_subfolder';
|
|
43
|
+
try {
|
|
44
|
+
await executeInitCmd({
|
|
45
|
+
targetDir: testDir,
|
|
46
|
+
vcsFolderName,
|
|
47
|
+
quiet: true,
|
|
48
|
+
});
|
|
49
|
+
const subDir = path.join(testDir, 'src', 'components');
|
|
50
|
+
await fs.mkdir(subDir, { recursive: true });
|
|
51
|
+
await fs.writeFile(path.join(subDir, 'Button.tsx'), 'export const Button = () => null;', 'utf8');
|
|
52
|
+
const statusRes = await executeStatusCmd({
|
|
53
|
+
targetDir: subDir,
|
|
54
|
+
vcsFolderName,
|
|
55
|
+
quiet: true,
|
|
56
|
+
});
|
|
57
|
+
iReckon(lc, statusRes.branchName).willEqual('main');
|
|
58
|
+
iReckon(lc, statusRes.untracked.map(x => x.path)).includes('src/components/Button.tsx');
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
await ifWe(lc, `skips re-staging unmodified committed files during executeAddCmd with all flag`, async () => {
|
|
65
|
+
const testDir = path.join(process.cwd(), '.test_status_add_unmodified');
|
|
66
|
+
const vcsFolderName = '.vcsgib_test_unmodified';
|
|
67
|
+
try {
|
|
68
|
+
await executeInitCmd({
|
|
69
|
+
targetDir: testDir,
|
|
70
|
+
vcsFolderName,
|
|
71
|
+
quiet: true,
|
|
72
|
+
});
|
|
73
|
+
await fs.writeFile(path.join(testDir, 'file.txt'), 'Initial Content', 'utf8');
|
|
74
|
+
await executeAddCmd({
|
|
75
|
+
paths: ['file.txt'],
|
|
76
|
+
targetDir: testDir,
|
|
77
|
+
vcsFolderName,
|
|
78
|
+
quiet: true,
|
|
79
|
+
});
|
|
80
|
+
await executeCommitCmd({
|
|
81
|
+
message: 'Initial commit',
|
|
82
|
+
targetDir: testDir,
|
|
83
|
+
vcsFolderName,
|
|
84
|
+
quiet: true,
|
|
85
|
+
});
|
|
86
|
+
// Run add -a again when file is unmodified
|
|
87
|
+
const addRes = await executeAddCmd({
|
|
88
|
+
all: true,
|
|
89
|
+
targetDir: testDir,
|
|
90
|
+
vcsFolderName,
|
|
91
|
+
quiet: true,
|
|
92
|
+
});
|
|
93
|
+
iReckon(lc, addRes.stagedCount).willEqual(0);
|
|
94
|
+
iReckon(lc, addRes.stagedPaths.length).willEqual(0);
|
|
95
|
+
}
|
|
96
|
+
finally {
|
|
97
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
await ifWe(lc, `stages untracked file via executeAddCmd`, async () => {
|
|
101
|
+
const testDir = path.join(process.cwd(), '.test_status_add_2');
|
|
102
|
+
const vcsFolderName = '.vcsgib_test_2';
|
|
103
|
+
try {
|
|
104
|
+
await executeInitCmd({
|
|
105
|
+
targetDir: testDir,
|
|
106
|
+
vcsFolderName,
|
|
107
|
+
quiet: true,
|
|
108
|
+
});
|
|
109
|
+
await fs.writeFile(path.join(testDir, 'file1.txt'), 'Content 1', 'utf8');
|
|
110
|
+
await fs.writeFile(path.join(testDir, 'file2.txt'), 'Content 2', 'utf8');
|
|
111
|
+
const addRes = await executeAddCmd({
|
|
112
|
+
paths: ['file1.txt'],
|
|
113
|
+
targetDir: testDir,
|
|
114
|
+
vcsFolderName,
|
|
115
|
+
quiet: true,
|
|
116
|
+
});
|
|
117
|
+
iReckon(lc, addRes.stagedPaths).includes('file1.txt');
|
|
118
|
+
const { localSpace, vcsPath } = await bootstrapVcsMetaspace({
|
|
119
|
+
repoPath: testDir,
|
|
120
|
+
vcsFolderName,
|
|
121
|
+
});
|
|
122
|
+
const indexIbGib = await getB2tFSIndexIbGib({ space: localSpace, vcsPath });
|
|
123
|
+
iReckon(lc, Boolean(indexIbGib?.data?.staged_item && indexIbGib.data.staged_item.length > 0)).isGonnaBeTrue();
|
|
124
|
+
iReckon(lc, indexIbGib?.rel8ns?.staged_item).isGonnaBeFalsy();
|
|
125
|
+
const statusRes = await executeStatusCmd({
|
|
126
|
+
targetDir: testDir,
|
|
127
|
+
vcsFolderName,
|
|
128
|
+
quiet: true,
|
|
129
|
+
});
|
|
130
|
+
iReckon(lc, statusRes.staged.map(x => x.path)).includes('file1.txt');
|
|
131
|
+
iReckon(lc, statusRes.untracked.map(x => x.path)).includes('file2.txt');
|
|
132
|
+
iReckon(lc, statusRes.untracked.map(x => x.path)).not.includes('file1.txt');
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
await ifWe(lc, `respects .ibgibignore patterns during status and add`, async () => {
|
|
139
|
+
const testDir = path.join(process.cwd(), '.test_status_add_3');
|
|
140
|
+
const vcsFolderName = '.vcsgib_test_3';
|
|
141
|
+
try {
|
|
142
|
+
await executeInitCmd({
|
|
143
|
+
targetDir: testDir,
|
|
144
|
+
vcsFolderName,
|
|
145
|
+
quiet: true,
|
|
146
|
+
});
|
|
147
|
+
await fs.writeFile(path.join(testDir, '.ibgibignore'), 'ignored.txt\ntemp/\n', 'utf8');
|
|
148
|
+
await fs.writeFile(path.join(testDir, 'ignored.txt'), 'Secrets', 'utf8');
|
|
149
|
+
await fs.writeFile(path.join(testDir, 'tracked.txt'), 'Public', 'utf8');
|
|
150
|
+
await fs.mkdir(path.join(testDir, 'temp'), { recursive: true });
|
|
151
|
+
await fs.writeFile(path.join(testDir, 'temp/cache.dat'), 'Cache', 'utf8');
|
|
152
|
+
const statusRes = await executeStatusCmd({
|
|
153
|
+
targetDir: testDir,
|
|
154
|
+
vcsFolderName,
|
|
155
|
+
quiet: true,
|
|
156
|
+
});
|
|
157
|
+
iReckon(lc, statusRes.untracked.map(x => x.path)).includes('tracked.txt');
|
|
158
|
+
iReckon(lc, statusRes.untracked.map(x => x.path)).not.includes('ignored.txt');
|
|
159
|
+
iReckon(lc, statusRes.untracked.map(x => x.path)).not.includes('temp/cache.dat');
|
|
160
|
+
const addRes = await executeAddCmd({
|
|
161
|
+
all: true,
|
|
162
|
+
targetDir: testDir,
|
|
163
|
+
vcsFolderName,
|
|
164
|
+
quiet: true,
|
|
165
|
+
});
|
|
166
|
+
iReckon(lc, addRes.stagedPaths).includes('tracked.txt');
|
|
167
|
+
iReckon(lc, addRes.stagedPaths).not.includes('ignored.txt');
|
|
168
|
+
iReckon(lc, addRes.stagedPaths).not.includes('temp/cache.dat');
|
|
169
|
+
}
|
|
170
|
+
finally {
|
|
171
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
await ifWe(lc, `stages files matching glob pattern with executeAddCmd`, async () => {
|
|
175
|
+
const testDir = path.join(process.cwd(), '.test_status_add_glob');
|
|
176
|
+
const vcsFolderName = '.vcsgib_test_glob';
|
|
177
|
+
try {
|
|
178
|
+
await executeInitCmd({
|
|
179
|
+
targetDir: testDir,
|
|
180
|
+
vcsFolderName,
|
|
181
|
+
quiet: true,
|
|
182
|
+
});
|
|
183
|
+
await fs.writeFile(path.join(testDir, 'app.js'), 'console.log("app");', 'utf8');
|
|
184
|
+
await fs.writeFile(path.join(testDir, 'utils.js'), 'console.log("utils");', 'utf8');
|
|
185
|
+
await fs.writeFile(path.join(testDir, 'index.html'), '<html></html>', 'utf8');
|
|
186
|
+
const addRes = await executeAddCmd({
|
|
187
|
+
paths: ['*.js'],
|
|
188
|
+
targetDir: testDir,
|
|
189
|
+
vcsFolderName,
|
|
190
|
+
quiet: true,
|
|
191
|
+
});
|
|
192
|
+
iReckon(lc, addRes.stagedPaths).includes('app.js');
|
|
193
|
+
iReckon(lc, addRes.stagedPaths).includes('utils.js');
|
|
194
|
+
iReckon(lc, addRes.stagedPaths).not.includes('index.html');
|
|
195
|
+
let errorThrown = false;
|
|
196
|
+
try {
|
|
197
|
+
await executeAddCmd({
|
|
198
|
+
paths: ['*.xyz'],
|
|
199
|
+
targetDir: testDir,
|
|
200
|
+
vcsFolderName,
|
|
201
|
+
quiet: true,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
catch (err) {
|
|
205
|
+
errorThrown = true;
|
|
206
|
+
iReckon(lc, err.message).includes('No files matched glob pattern: *.xyz');
|
|
207
|
+
}
|
|
208
|
+
iReckon(lc, errorThrown).isGonnaBeTrue();
|
|
209
|
+
}
|
|
210
|
+
finally {
|
|
211
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
//# sourceMappingURL=status-add-cmd.respec.node.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-add-cmd.respec.node.mjs","sourceRoot":"","sources":["../../../src/cli/commands/status-add-cmd.respec.node.mts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module status-cmd
|
|
3
|
+
*
|
|
4
|
+
* Command handler for `vcs status`.
|
|
5
|
+
* Compares physical workspace state against active branch snapshot tip and in-band index staging area.
|
|
6
|
+
*/
|
|
7
|
+
export interface VcsStatusItem {
|
|
8
|
+
path: string;
|
|
9
|
+
fsType: 'file' | 'folder';
|
|
10
|
+
status: 'untracked' | 'modified' | 'deleted' | 'staged';
|
|
11
|
+
}
|
|
12
|
+
export interface StatusCmdResult {
|
|
13
|
+
branchName: string;
|
|
14
|
+
staged: VcsStatusItem[];
|
|
15
|
+
modified: VcsStatusItem[];
|
|
16
|
+
deleted: VcsStatusItem[];
|
|
17
|
+
untracked: VcsStatusItem[];
|
|
18
|
+
}
|
|
19
|
+
export interface StatusCmdOpts {
|
|
20
|
+
targetDir?: string;
|
|
21
|
+
vcsFolderName?: string;
|
|
22
|
+
quiet?: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function executeStatusCmd({ targetDir, vcsFolderName, quiet, }?: StatusCmdOpts): Promise<StatusCmdResult>;
|
|
25
|
+
//# sourceMappingURL=status-cmd.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/status-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuBH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,MAAM,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC3D;AAED,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,gBAAgB,CAAC,EACnC,SAAyB,EACzB,aAAyB,EACzB,KAAa,GAChB,GAAE,aAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CA8M/C"}
|