@ibgib/vcs-gib 0.0.34 → 0.0.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AUTO-GENERATED-version.d.mts +1 -1
- package/dist/AUTO-GENERATED-version.mjs +1 -1
- package/dist/bootstrap/node-bootstrap.d.mts +5 -0
- package/dist/bootstrap/node-bootstrap.d.mts.map +1 -1
- package/dist/bootstrap/node-bootstrap.mjs +4 -0
- package/dist/bootstrap/node-bootstrap.mjs.map +1 -1
- package/dist/cli/commands/cli-init-cmd.d.mts.map +1 -1
- package/dist/cli/commands/cli-init-cmd.mjs +16 -1
- package/dist/cli/commands/cli-init-cmd.mjs.map +1 -1
- package/dist/cli/vcs-cli-main.d.mts.map +1 -1
- package/dist/cli/vcs-cli-main.mjs +22 -1
- package/dist/cli/vcs-cli-main.mjs.map +1 -1
- package/dist/cli/vcs-repo-helper.d.mts.map +1 -1
- package/dist/cli/vcs-repo-helper.mjs +6 -2
- package/dist/cli/vcs-repo-helper.mjs.map +1 -1
- package/package.json +3 -3
- package/src/AUTO-GENERATED-version.mts +1 -1
- package/src/bootstrap/node-bootstrap.mts +10 -0
- package/src/cli/cli-e2e.respec.mts +120 -0
- package/src/cli/commands/cli-init-cmd.mts +17 -1
- package/src/cli/vcs-cli-main.mts +19 -1
- package/src/cli/vcs-repo-helper.mts +7 -2
- package/tsconfig.test.tsbuildinfo +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -19,12 +19,17 @@ export interface BootstrapVcsMetaspaceOpts {
|
|
|
19
19
|
* Default space name for non-interactive headless testing. Defaults to 'vcs_space'
|
|
20
20
|
*/
|
|
21
21
|
defaultSpaceName?: string;
|
|
22
|
+
/**
|
|
23
|
+
* If true, throws if .vcsgib is not found during upward discovery without initializing spaces.
|
|
24
|
+
*/
|
|
25
|
+
mustExist?: boolean;
|
|
22
26
|
}
|
|
23
27
|
export interface BootstrapVcsMetaspaceResult {
|
|
24
28
|
metaspace: Metaspace_Nodespace;
|
|
25
29
|
localSpace: IbGibSpaceAny;
|
|
26
30
|
vcsPath: string;
|
|
27
31
|
repoRoot: string;
|
|
32
|
+
foundVcsPath?: string;
|
|
28
33
|
}
|
|
29
34
|
/**
|
|
30
35
|
* Bootstraps Metaspace_Nodespace and initializes the local repository space.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-bootstrap.d.mts","sourceRoot":"","sources":["../../src/bootstrap/node-bootstrap.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAGrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0FAA0F,CAAC;AAW/H,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"node-bootstrap.d.mts","sourceRoot":"","sources":["../../src/bootstrap/node-bootstrap.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAGrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0FAA0F,CAAC;AAW/H,MAAM,WAAW,yBAAyB;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IACxC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACvC,IAAI,GAAE,yBAA8B,GACrC,OAAO,CAAC,2BAA2B,CAAC,CA4ItC"}
|
|
@@ -57,6 +57,9 @@ export async function bootstrapVcsMetaspace(opts = {}) {
|
|
|
57
57
|
}
|
|
58
58
|
currentDir = parentDir;
|
|
59
59
|
}
|
|
60
|
+
if (opts.mustExist && !foundVcsPath) {
|
|
61
|
+
throw new Error(`fatal: not an ibgib repository (or any of the parent directories): ${vcsFolderName}`);
|
|
62
|
+
}
|
|
60
63
|
const vcsPath = foundVcsPath || path.resolve(repoPath, vcsFolderName);
|
|
61
64
|
if (!foundVcsPath) {
|
|
62
65
|
repoRoot = path.resolve(repoPath);
|
|
@@ -145,6 +148,7 @@ export async function bootstrapVcsMetaspace(opts = {}) {
|
|
|
145
148
|
localSpace,
|
|
146
149
|
vcsPath,
|
|
147
150
|
repoRoot,
|
|
151
|
+
foundVcsPath,
|
|
148
152
|
};
|
|
149
153
|
}
|
|
150
154
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-bootstrap.mjs","sourceRoot":"","sources":["../../src/bootstrap/node-bootstrap.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,uDAAuD,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0FAA0F,CAAC;AAC/H,OAAO,EAAE,sBAAsB,EAAE,MAAM,uFAAuF,CAAC;AAC/H,OAAO,EAAE,qCAAqC,EAAE,MAAM,0FAA0F,CAAC;AACjJ,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,iGAAiG,CAAC;AAErK,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAEtG,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"node-bootstrap.mjs","sourceRoot":"","sources":["../../src/bootstrap/node-bootstrap.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,uDAAuD,CAAC;AAE/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,MAAM,0FAA0F,CAAC;AAC/H,OAAO,EAAE,sBAAsB,EAAE,MAAM,uFAAuF,CAAC;AAC/H,OAAO,EAAE,qCAAqC,EAAE,MAAM,0FAA0F,CAAC;AACjJ,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,iGAAiG,CAAC;AAErK,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAEtG,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAClC,MAAM,OAAO,GAAG,gBAAgB,CAAC;AA6BjC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,IAAI,GAA8B,EAAE;IAEpC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC;IACtD,IAAI,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,2BAA2B,CAAC,CAAC;QAAC,CAAC;QAE/D,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,sBAAsB,EAAE,CAAC,CAAC;QAE7E,MAAM,EACF,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,EACxB,aAAa,GAAG,SAAS,GAC5B,GAAG,IAAI,CAAC;QAET,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,YAAgC,CAAC;QACrC,IAAI,QAAQ,GAAG,UAAU,CAAC;QAE1B,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YAC9D,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC7C,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACrB,MAAM,GAAG,IAAI,CAAC;gBAClB,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,MAAM,GAAG,KAAK,CAAC;YACnB,CAAC;YAED,IAAI,MAAM,EAAE,CAAC;gBACT,YAAY,GAAG,gBAAgB,CAAC;gBAChC,QAAQ,GAAG,UAAU,CAAC;gBACtB,MAAM;YACV,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3B,MAAM;YACV,CAAC;YACD,UAAU,GAAG,SAAS,CAAC;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,sEAAsE,aAAa,EAAE,CAAC,CAAC;QAC3G,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,OAAO,WAAW,EAAE,CAAC;QAEvE,IAAI,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,0CAA0C,OAAO,eAAe,QAAQ,eAAe,CAAC,CAAC;QAAC,CAAC;QAE3H,kCAAkC;QAClC,MAAM,SAAS,GAAG,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;QACrD,SAAS,CAAC,iBAAiB,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC7C,MAAM,oBAAoB,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpF,CAAC,CAAC;QAEF,MAAM,SAAS,CAAC,UAAU,CAAC;YACvB,SAAS,EAAE,gBAAgB;YAC3B,gBAAgB,EAAE;gBACd,kBAAkB,EAAE,GAAG,EAAE;oBACrB,MAAM,aAAa,GAAG;wBAClB,GAAG,KAAK,CAAC,qCAAqC,CAAC;wBAC/C,OAAO,EAAE,OAAO;qBACnB,CAAC;oBACF,MAAM,SAAS,GAAG,IAAI,sBAAsB,CAAC,aAAa,CAAC,CAAC;oBAC5D,SAAS,CAAC,GAAG,GAAG,KAAK,CAAC;oBACtB,OAAO,SAAS,CAAC;gBACrB,CAAC;gBACD,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;oBAC5C,IAAI,SAAS,EAAE,CAAC;wBAAE,SAAiB,CAAC,OAAO,GAAG,OAAO,CAAC;oBAAC,CAAC;oBACxD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;oBACrD,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACtB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;wBAC7B,KAAK,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7D,CAAC;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;oBAC7B,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBAAC,CAAC;oBACnE,MAAM,KAAK,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,CAAC;oBAC1D,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACtB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;oBACjC,CAAC;oBACD,OAAO,KAAK,CAAC;gBACjB,CAAC;aACJ;YACD,UAAU,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;gBACvC,IAAI,OAAO,EAAE,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,KAAK,GAAG,wCAAwC,CAAC,CAAC;gBAAC,CAAC;YACzG,CAAC;YACD,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE;gBACxC,IAAI,OAAO,EAAE,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,KAAK,KAAK,GAAG,eAAe,CAAC,CAAC;gBAAC,CAAC;gBAC7E,OAAO,gBAAgB,CAAC;YAC5B,CAAC;YACD,mBAAmB,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC5C,IAAI,OAAO,EAAE,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,gBAAgB,KAAK,KAAK,GAAG,wCAAwC,CAAC,CAAC;gBAAC,CAAC;gBACzG,OAAO,IAAI,CAAC;YAChB,CAAC;SACJ,CAAC,CAAC;QAEH,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC;YACjD,IAAI,EAAE,KAAK;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YACzD,UAAU,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACtC,CAAC;QAED,MAAM,UAAU,CAAC,WAAW,CAAC;QAE7B,IAAI,OAAO,EAAE,CAAC;YACV,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,IAAI,UAAU,CAAC,EAAE,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,yCAAyC,SAAS,eAAe,CAAC,CAAC;QACxF,CAAC;QAED,OAAO;YACH,SAAS;YACT,UAAU;YACV,OAAO;YACP,QAAQ;YACR,YAAY;SACf,CAAC;IACN,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,OAAO,IAAI,KAAK,eAAe,CAAC,CAAC;QAC/D,MAAM,KAAK,CAAC;IAChB,CAAC;YAAS,CAAC;QACP,IAAI,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,yBAAyB,CAAC,CAAC;QAAC,CAAC;IACjE,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-init-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/cli-init-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"cli-init-cmd.d.mts","sourceRoot":"","sources":["../../../src/cli/commands/cli-init-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,MAAM,WAAW,WAAW;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,EACjC,SAAyB,EACzB,aAAyB,EACzB,iBAA6C,EAC7C,KAAa,GAChB,GAAE,WAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAoD3C"}
|
|
@@ -10,6 +10,7 @@ import { VcsRepository } from '@ibgib/core-gib/dist/vcs/vcs-repository.mjs';
|
|
|
10
10
|
import { B2TFS_BRANCH_DEFAULT_NAME } from '@ibgib/core-gib/dist/vcs/branch/branch-constants.mjs';
|
|
11
11
|
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
12
12
|
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
13
|
+
import { getB2tFSIndexIbGib } from '@ibgib/core-gib/dist/vcs/index/index-helper.mjs';
|
|
13
14
|
const lcFile = `[init-cmd]`;
|
|
14
15
|
const logalot = GLOBAL_LOG_A_LOT;
|
|
15
16
|
export async function executeInitCmd({ targetDir = process.cwd(), vcsFolderName = '.vcsgib', defaultBranchName = B2TFS_BRANCH_DEFAULT_NAME, quiet = false, } = {}) {
|
|
@@ -18,11 +19,25 @@ export async function executeInitCmd({ targetDir = process.cwd(), vcsFolderName
|
|
|
18
19
|
// 1. Ensure target directory exists
|
|
19
20
|
await fs.mkdir(absTargetDir, { recursive: true });
|
|
20
21
|
// 2. Bootstrap Metaspace and localSpace (creates .vcsgib on disk)
|
|
21
|
-
const { metaspace, localSpace } = await bootstrapVcsMetaspace({
|
|
22
|
+
const { metaspace, localSpace, foundVcsPath } = await bootstrapVcsMetaspace({
|
|
22
23
|
repoPath: absTargetDir,
|
|
23
24
|
vcsFolderName,
|
|
24
25
|
defaultSpaceName: `vcs_${path.basename(absTargetDir).replace(/[^a-zA-Z0-9_\-]/g, '_')}`,
|
|
25
26
|
});
|
|
27
|
+
if (foundVcsPath) {
|
|
28
|
+
const existingIndex = await getB2tFSIndexIbGib({ space: localSpace, metaspace });
|
|
29
|
+
if (existingIndex) {
|
|
30
|
+
if (!quiet) {
|
|
31
|
+
console.log(`Reinitialized existing ibgib repository in ${vcsPath}`);
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
vcsPath,
|
|
35
|
+
spaceId: existingIndex.data.activeSpaceId,
|
|
36
|
+
branchName: existingIndex.data.activeBranchName || defaultBranchName,
|
|
37
|
+
rootItemIb: '',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
26
41
|
// 3. Facade instantiation and domain init
|
|
27
42
|
const repo = new VcsRepository({
|
|
28
43
|
metaspace,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-init-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/cli-init-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGlC,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-init-cmd.mjs","sourceRoot":"","sources":["../../../src/cli/commands/cli-init-cmd.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGlC,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AAEjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAGrF,MAAM,MAAM,GAAG,YAAY,CAAC;AAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAgBjC,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACjC,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,EACzB,aAAa,GAAG,SAAS,EACzB,iBAAiB,GAAG,yBAAyB,EAC7C,KAAK,GAAG,KAAK,GAChB,GAAgB,EAAE;IACf,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAEvD,oCAAoC;IACpC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,kEAAkE;IAClE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,MAAM,qBAAqB,CAAC;QACxE,QAAQ,EAAE,YAAY;QACtB,aAAa;QACb,gBAAgB,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE;KAC1F,CAAC,CAAC;IAEH,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,aAAa,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QACjF,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,8CAA8C,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;YACD,OAAO;gBACH,OAAO;gBACP,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa;gBACzC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,gBAAgB,IAAI,iBAAiB;gBACpE,UAAU,EAAE,EAAE;aACjB,CAAC;QACN,CAAC;IACL,CAAC;IAED,0CAA0C;IAC1C,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC;QAC3B,SAAS;QACT,UAAU;QACV,QAAQ,EAAE,YAAY;QACtB,aAAa;KAChB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;QAC5B,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,MAAM;QACrD,UAAU,EAAE,iBAAiB;KAChC,CAAC,CAAC;IAEH,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,yCAAyC,OAAO,aAAa,iBAAiB,GAAG,CAAC,CAAC;IACnG,CAAC;IAED,OAAO;QACH,OAAO;QACP,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;KAClC,CAAC;AACN,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcs-cli-main.d.mts","sourceRoot":"","sources":["../../src/cli/vcs-cli-main.mts"],"names":[],"mappings":";AACA;;;;;GAKG;AAuBH,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAiC/B;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAsB,IAAI,CAAC,EACvB,IAA4B,GAC/B,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"vcs-cli-main.d.mts","sourceRoot":"","sources":["../../src/cli/vcs-cli-main.mts"],"names":[],"mappings":";AACA;;;;;GAKG;AAuBH,MAAM,WAAW,WAAW;IACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAiC/B;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,wBAAsB,IAAI,CAAC,EACvB,IAA4B,GAC/B,GAAE,WAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwIpC"}
|
|
@@ -168,7 +168,28 @@ export async function main({ argv = process.argv.slice(2), } = {}) {
|
|
|
168
168
|
return 0;
|
|
169
169
|
}
|
|
170
170
|
catch (error) {
|
|
171
|
-
|
|
171
|
+
let rawMsg = extractErrorMsg(error);
|
|
172
|
+
// Strip trailing internal UUID / error markers like (E: ...)
|
|
173
|
+
const cleanMsg = rawMsg.replace(/\s*\(E:\s*[a-f0-9-]+\)\s*$/i, '').trim();
|
|
174
|
+
if (cleanMsg.startsWith('fatal:') || cleanMsg.startsWith('error:')) {
|
|
175
|
+
console.error(cleanMsg);
|
|
176
|
+
}
|
|
177
|
+
else if (cleanMsg.toLowerCase().includes('nothing to commit')) {
|
|
178
|
+
console.error('nothing to commit, working tree clean');
|
|
179
|
+
}
|
|
180
|
+
else if (cleanMsg.toLowerCase().includes('already exists')) {
|
|
181
|
+
const branchMatch = cleanMsg.match(/["']([^"']+)["']/);
|
|
182
|
+
const name = branchMatch ? branchMatch[1] : '';
|
|
183
|
+
console.error(name ? `fatal: a branch named '${name}' already exists.` : `fatal: ${cleanMsg}`);
|
|
184
|
+
}
|
|
185
|
+
else if (cleanMsg.toLowerCase().includes('not found in indexibgib') || cleanMsg.toLowerCase().includes('not found on branch')) {
|
|
186
|
+
const branchMatch = cleanMsg.match(/\(([^)]+)\)/) || cleanMsg.match(/['"]([^'"]+)['"]/);
|
|
187
|
+
const name = branchMatch ? branchMatch[1] : '';
|
|
188
|
+
console.error(name ? `error: pathspec '${name}' did not match any file(s) known to ibgib` : `error: ${cleanMsg}`);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
console.error(`fatal: ${cleanMsg}`);
|
|
192
|
+
}
|
|
172
193
|
return 1;
|
|
173
194
|
}
|
|
174
195
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcs-cli-main.mjs","sourceRoot":"","sources":["../../src/cli/vcs-cli-main.mts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vcs-cli-main.mjs","sourceRoot":"","sources":["../../src/cli/vcs-cli-main.mts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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,
|
|
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,CA8E/D"}
|
|
@@ -22,14 +22,18 @@ export async function openVcsRepository({ targetDir = process.cwd(), vcsFolderNa
|
|
|
22
22
|
}
|
|
23
23
|
const absTargetDir = path.resolve(targetDir);
|
|
24
24
|
// 1. Locate repository root and bootstrap Node localSpace
|
|
25
|
-
const { metaspace, localSpace, vcsPath, repoRoot } = await bootstrapVcsMetaspace({
|
|
25
|
+
const { metaspace, localSpace, vcsPath, repoRoot, foundVcsPath } = await bootstrapVcsMetaspace({
|
|
26
26
|
repoPath: absTargetDir,
|
|
27
27
|
vcsFolderName,
|
|
28
|
+
mustExist: true,
|
|
28
29
|
});
|
|
30
|
+
if (!foundVcsPath) {
|
|
31
|
+
throw new Error(`fatal: not an ibgib repository (or any of the parent directories): ${vcsFolderName}`);
|
|
32
|
+
}
|
|
29
33
|
// 2. Fetch authoritative in-band index from localSpace
|
|
30
34
|
const indexIbGib = await getB2tFSIndexIbGib({ space: localSpace, metaspace });
|
|
31
35
|
if (!indexIbGib) {
|
|
32
|
-
throw new Error(`
|
|
36
|
+
throw new Error(`fatal: not an ibgib repository (index not found in ${vcsPath})`);
|
|
33
37
|
}
|
|
34
38
|
// 3. Determine active branch and worktree directory
|
|
35
39
|
const activeBranchName = branchName || resolveContextualBranchName({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcs-repo-helper.mjs","sourceRoot":"","sources":["../../src/cli/vcs-repo-helper.mts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,iDAAiD,CAAC;AAClF,OAAO,EAAE,aAAa,EAAmC,MAAM,6CAA6C,CAAC;AAC7G,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAE,mCAAmC,EAAE,MAAM,qDAAqD,CAAC;AAE1G,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AAEjG,MAAM,OAAO,GAAG,gBAAgB,CAAC;AAejC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACpC,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,EACzB,aAAa,GAAG,SAAS,EACzB,UAAU,GACb,GAA0B,EAAE;IACzB,MAAM,EAAE,GAAG,IAAI,iBAAiB,CAAC,IAAI,GAAG,CAAC;IACzC,IAAI,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,oDAAoD,CAAC,CAAC;QAAC,CAAC;QAExF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE7C,0DAA0D;QAC1D,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"vcs-repo-helper.mjs","sourceRoot":"","sources":["../../src/cli/vcs-repo-helper.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.36",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@ibgib/helper-gib": "^0.0.39",
|
|
23
23
|
"@ibgib/ts-gib": "^0.5.36",
|
|
24
24
|
"@ibgib/encrypt-gib": "^0.3.3",
|
|
25
|
-
"@ibgib/core-gib": "^0.1.
|
|
26
|
-
"@ibgib/node-gib": "^0.0.
|
|
25
|
+
"@ibgib/core-gib": "^0.1.81",
|
|
26
|
+
"@ibgib/node-gib": "^0.0.26"
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -37,6 +37,10 @@ export interface BootstrapVcsMetaspaceOpts {
|
|
|
37
37
|
* Default space name for non-interactive headless testing. Defaults to 'vcs_space'
|
|
38
38
|
*/
|
|
39
39
|
defaultSpaceName?: string;
|
|
40
|
+
/**
|
|
41
|
+
* If true, throws if .vcsgib is not found during upward discovery without initializing spaces.
|
|
42
|
+
*/
|
|
43
|
+
mustExist?: boolean;
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
export interface BootstrapVcsMetaspaceResult {
|
|
@@ -44,6 +48,7 @@ export interface BootstrapVcsMetaspaceResult {
|
|
|
44
48
|
localSpace: IbGibSpaceAny;
|
|
45
49
|
vcsPath: string;
|
|
46
50
|
repoRoot: string;
|
|
51
|
+
foundVcsPath?: string;
|
|
47
52
|
}
|
|
48
53
|
|
|
49
54
|
/**
|
|
@@ -94,6 +99,10 @@ export async function bootstrapVcsMetaspace(
|
|
|
94
99
|
currentDir = parentDir;
|
|
95
100
|
}
|
|
96
101
|
|
|
102
|
+
if (opts.mustExist && !foundVcsPath) {
|
|
103
|
+
throw new Error(`fatal: not an ibgib repository (or any of the parent directories): ${vcsFolderName}`);
|
|
104
|
+
}
|
|
105
|
+
|
|
97
106
|
const vcsPath = foundVcsPath || path.resolve(repoPath, vcsFolderName);
|
|
98
107
|
if (!foundVcsPath) {
|
|
99
108
|
repoRoot = path.resolve(repoPath);
|
|
@@ -181,6 +190,7 @@ export async function bootstrapVcsMetaspace(
|
|
|
181
190
|
localSpace,
|
|
182
191
|
vcsPath,
|
|
183
192
|
repoRoot,
|
|
193
|
+
foundVcsPath,
|
|
184
194
|
};
|
|
185
195
|
} catch (error: any) {
|
|
186
196
|
console.error(`${lc} ${error?.message || error} (E: genuuid)`);
|
|
@@ -316,4 +316,124 @@ await respecfully(lc, `Full E2E CLI Integration Spec`, async () => {
|
|
|
316
316
|
}
|
|
317
317
|
});
|
|
318
318
|
|
|
319
|
+
await ifWe(lc, `fails gracefully with fatal error message on uninitialized repository`, async () => {
|
|
320
|
+
const uninitDir = path.join(process.cwd(), `.test_cli_e2e_uninit_${Date.now()}`);
|
|
321
|
+
await fs.mkdir(uninitDir, { recursive: true });
|
|
322
|
+
|
|
323
|
+
const origCwd = process.cwd();
|
|
324
|
+
const origError = console.error;
|
|
325
|
+
let capturedErrors: string[] = [];
|
|
326
|
+
|
|
327
|
+
console.error = (...args: any[]) => {
|
|
328
|
+
capturedErrors.push(args.join(' '));
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
try {
|
|
332
|
+
process.chdir(uninitDir);
|
|
333
|
+
|
|
334
|
+
// Execute status, commit, log, branch, checkout in uninitialized directory
|
|
335
|
+
const statusExitCode = await main({ argv: ['status'] });
|
|
336
|
+
iReckon(lc, statusExitCode).willEqual(1);
|
|
337
|
+
|
|
338
|
+
const commitExitCode = await main({ argv: ['commit', '-m', 'test'] });
|
|
339
|
+
iReckon(lc, commitExitCode).willEqual(1);
|
|
340
|
+
|
|
341
|
+
const logExitCode = await main({ argv: ['log'] });
|
|
342
|
+
iReckon(lc, logExitCode).willEqual(1);
|
|
343
|
+
|
|
344
|
+
const branchExitCode = await main({ argv: ['branch'] });
|
|
345
|
+
iReckon(lc, branchExitCode).willEqual(1);
|
|
346
|
+
|
|
347
|
+
const checkoutExitCode = await main({ argv: ['checkout', 'main'] });
|
|
348
|
+
iReckon(lc, checkoutExitCode).willEqual(1);
|
|
349
|
+
|
|
350
|
+
// Verify clean error messages without storage stack traces
|
|
351
|
+
const hasFatalMsg = capturedErrors.some(e => e.includes('fatal: not an ibgib repository'));
|
|
352
|
+
iReckon(lc, hasFatalMsg).isGonnaBeTrue();
|
|
353
|
+
|
|
354
|
+
const hasStorageError = capturedErrors.some(e => e.includes('couldn\'t get special'));
|
|
355
|
+
iReckon(lc, hasStorageError).isGonnaBeFalse();
|
|
356
|
+
} finally {
|
|
357
|
+
process.chdir(origCwd);
|
|
358
|
+
console.error = origError;
|
|
359
|
+
await fs.rm(uninitDir, { recursive: true, force: true });
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
await ifWe(lc, `preserves worktree state when checkout is executed from within secondary worktree`, async () => {
|
|
364
|
+
const testDir = path.join(process.cwd(), `.test_cli_e2e_worktree_${Date.now()}`);
|
|
365
|
+
const vcsFolderName = '.vcsgib';
|
|
366
|
+
|
|
367
|
+
const origCwd = process.cwd();
|
|
368
|
+
|
|
369
|
+
try {
|
|
370
|
+
process.chdir(testDir);
|
|
371
|
+
} catch {
|
|
372
|
+
await fs.mkdir(testDir, { recursive: true });
|
|
373
|
+
process.chdir(testDir);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
try {
|
|
377
|
+
// 1. Init main repo
|
|
378
|
+
await executeInitCmd({
|
|
379
|
+
targetDir: testDir,
|
|
380
|
+
vcsFolderName,
|
|
381
|
+
quiet: true,
|
|
382
|
+
});
|
|
383
|
+
|
|
384
|
+
await fs.writeFile(path.join(testDir, 'main.txt'), 'content on main\n', 'utf8');
|
|
385
|
+
await executeAddCmd({ targetDir: testDir, vcsFolderName, all: true, quiet: true });
|
|
386
|
+
await executeCommitCmd({ targetDir: testDir, vcsFolderName, message: 'Commit on main', quiet: true });
|
|
387
|
+
|
|
388
|
+
// 2. Create feature branch
|
|
389
|
+
await executeBranchCmd({
|
|
390
|
+
targetDir: testDir,
|
|
391
|
+
vcsFolderName,
|
|
392
|
+
branchName: 'feature-strings',
|
|
393
|
+
quiet: true,
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
const worktreeDir = path.join(testDir, 'b', 'feature-strings');
|
|
397
|
+
await fs.mkdir(worktreeDir, { recursive: true });
|
|
398
|
+
const worktreeFile = path.join(worktreeDir, 'feature.txt');
|
|
399
|
+
await fs.writeFile(worktreeFile, 'content on feature branch\n', 'utf8');
|
|
400
|
+
|
|
401
|
+
// 3. Commit within secondary worktree
|
|
402
|
+
await executeAddCmd({ targetDir: worktreeDir, vcsFolderName, all: true, quiet: true });
|
|
403
|
+
await executeCommitCmd({ targetDir: worktreeDir, vcsFolderName, message: 'Commit on feature', quiet: true });
|
|
404
|
+
|
|
405
|
+
// 4. Run checkout main from within the secondary worktree directory
|
|
406
|
+
process.chdir(worktreeDir);
|
|
407
|
+
const checkoutRes = await executeCheckoutCmd({
|
|
408
|
+
targetDir: worktreeDir,
|
|
409
|
+
vcsFolderName,
|
|
410
|
+
branchName: 'main',
|
|
411
|
+
quiet: true,
|
|
412
|
+
});
|
|
413
|
+
|
|
414
|
+
iReckon(lc, checkoutRes.currentBranch).willEqual('main');
|
|
415
|
+
|
|
416
|
+
// 5. Verify feature.txt still exists untouched in b/feature-strings
|
|
417
|
+
const featureFileExists = await fs.stat(worktreeFile).then(s => s.isFile()).catch(() => false);
|
|
418
|
+
iReckon(lc, featureFileExists).isGonnaBeTrue();
|
|
419
|
+
|
|
420
|
+
const featureContent = await fs.readFile(worktreeFile, 'utf8');
|
|
421
|
+
iReckon(lc, featureContent).willEqual('content on feature branch\n');
|
|
422
|
+
|
|
423
|
+
// 6. Verify log from inside worktree succeeds and reflects feature branch history
|
|
424
|
+
const logRes = await executeLogCmd({
|
|
425
|
+
targetDir: worktreeDir,
|
|
426
|
+
vcsFolderName,
|
|
427
|
+
quiet: true,
|
|
428
|
+
});
|
|
429
|
+
iReckon(lc, logRes.branchName).willEqual('feature-strings');
|
|
430
|
+
iReckon(lc, logRes.commits.length).willEqual(2);
|
|
431
|
+
iReckon(lc, logRes.commits[0].message).willEqual('Commit on feature');
|
|
432
|
+
iReckon(lc, logRes.commits[1].message).willEqual('Commit on main');
|
|
433
|
+
} finally {
|
|
434
|
+
process.chdir(origCwd);
|
|
435
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
|
|
319
439
|
});
|
|
@@ -14,6 +14,7 @@ import { B2TFS_BRANCH_DEFAULT_NAME } from '@ibgib/core-gib/dist/vcs/branch/branc
|
|
|
14
14
|
|
|
15
15
|
import { GLOBAL_LOG_A_LOT } from '../../vcs-gib-constants.mjs';
|
|
16
16
|
import { bootstrapVcsMetaspace } from '../../bootstrap/node-bootstrap.mjs';
|
|
17
|
+
import { getB2tFSIndexIbGib } from '@ibgib/core-gib/dist/vcs/index/index-helper.mjs';
|
|
17
18
|
import { writeVcsIndexProjectionToDisk } from '../vcs-projection-helper.mjs';
|
|
18
19
|
|
|
19
20
|
const lcFile = `[init-cmd]`;
|
|
@@ -46,12 +47,27 @@ export async function executeInitCmd({
|
|
|
46
47
|
await fs.mkdir(absTargetDir, { recursive: true });
|
|
47
48
|
|
|
48
49
|
// 2. Bootstrap Metaspace and localSpace (creates .vcsgib on disk)
|
|
49
|
-
const { metaspace, localSpace } = await bootstrapVcsMetaspace({
|
|
50
|
+
const { metaspace, localSpace, foundVcsPath } = await bootstrapVcsMetaspace({
|
|
50
51
|
repoPath: absTargetDir,
|
|
51
52
|
vcsFolderName,
|
|
52
53
|
defaultSpaceName: `vcs_${path.basename(absTargetDir).replace(/[^a-zA-Z0-9_\-]/g, '_')}`,
|
|
53
54
|
});
|
|
54
55
|
|
|
56
|
+
if (foundVcsPath) {
|
|
57
|
+
const existingIndex = await getB2tFSIndexIbGib({ space: localSpace, metaspace });
|
|
58
|
+
if (existingIndex) {
|
|
59
|
+
if (!quiet) {
|
|
60
|
+
console.log(`Reinitialized existing ibgib repository in ${vcsPath}`);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
vcsPath,
|
|
64
|
+
spaceId: existingIndex.data.activeSpaceId,
|
|
65
|
+
branchName: existingIndex.data.activeBranchName || defaultBranchName,
|
|
66
|
+
rootItemIb: '',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
55
71
|
// 3. Facade instantiation and domain init
|
|
56
72
|
const repo = new VcsRepository({
|
|
57
73
|
metaspace,
|
package/src/cli/vcs-cli-main.mts
CHANGED
|
@@ -183,7 +183,25 @@ export async function main({
|
|
|
183
183
|
|
|
184
184
|
return 0;
|
|
185
185
|
} catch (error) {
|
|
186
|
-
|
|
186
|
+
let rawMsg = extractErrorMsg(error);
|
|
187
|
+
// Strip trailing internal UUID / error markers like (E: ...)
|
|
188
|
+
const cleanMsg = rawMsg.replace(/\s*\(E:\s*[a-f0-9-]+\)\s*$/i, '').trim();
|
|
189
|
+
|
|
190
|
+
if (cleanMsg.startsWith('fatal:') || cleanMsg.startsWith('error:')) {
|
|
191
|
+
console.error(cleanMsg);
|
|
192
|
+
} else if (cleanMsg.toLowerCase().includes('nothing to commit')) {
|
|
193
|
+
console.error('nothing to commit, working tree clean');
|
|
194
|
+
} else if (cleanMsg.toLowerCase().includes('already exists')) {
|
|
195
|
+
const branchMatch = cleanMsg.match(/["']([^"']+)["']/);
|
|
196
|
+
const name = branchMatch ? branchMatch[1] : '';
|
|
197
|
+
console.error(name ? `fatal: a branch named '${name}' already exists.` : `fatal: ${cleanMsg}`);
|
|
198
|
+
} else if (cleanMsg.toLowerCase().includes('not found in indexibgib') || cleanMsg.toLowerCase().includes('not found on branch')) {
|
|
199
|
+
const branchMatch = cleanMsg.match(/\(([^)]+)\)/) || cleanMsg.match(/['"]([^'"]+)['"]/);
|
|
200
|
+
const name = branchMatch ? branchMatch[1] : '';
|
|
201
|
+
console.error(name ? `error: pathspec '${name}' did not match any file(s) known to ibgib` : `error: ${cleanMsg}`);
|
|
202
|
+
} else {
|
|
203
|
+
console.error(`fatal: ${cleanMsg}`);
|
|
204
|
+
}
|
|
187
205
|
return 1;
|
|
188
206
|
} finally {
|
|
189
207
|
if (logalot) {
|
|
@@ -45,15 +45,20 @@ export async function openVcsRepository({
|
|
|
45
45
|
const absTargetDir = path.resolve(targetDir);
|
|
46
46
|
|
|
47
47
|
// 1. Locate repository root and bootstrap Node localSpace
|
|
48
|
-
const { metaspace, localSpace, vcsPath, repoRoot } = await bootstrapVcsMetaspace({
|
|
48
|
+
const { metaspace, localSpace, vcsPath, repoRoot, foundVcsPath } = await bootstrapVcsMetaspace({
|
|
49
49
|
repoPath: absTargetDir,
|
|
50
50
|
vcsFolderName,
|
|
51
|
+
mustExist: true,
|
|
51
52
|
});
|
|
52
53
|
|
|
54
|
+
if (!foundVcsPath) {
|
|
55
|
+
throw new Error(`fatal: not an ibgib repository (or any of the parent directories): ${vcsFolderName}`);
|
|
56
|
+
}
|
|
57
|
+
|
|
53
58
|
// 2. Fetch authoritative in-band index from localSpace
|
|
54
59
|
const indexIbGib = await getB2tFSIndexIbGib({ space: localSpace, metaspace });
|
|
55
60
|
if (!indexIbGib) {
|
|
56
|
-
throw new Error(`
|
|
61
|
+
throw new Error(`fatal: not an ibgib repository (index not found in ${vcsPath})`);
|
|
57
62
|
}
|
|
58
63
|
|
|
59
64
|
// 3. Determine active branch and worktree directory
|