mirror of
https://github.com/Kaelio/ktx.git
synced 2026-06-28 08:49:38 +02:00
fix(cli): guide setup away from foreign repos at the project dir
ktx owns the git repo rooted at the project dir and refuses to adopt one it did not create (the Finding 3 isolation invariant). But setup steered users straight into that failure: the interactive menu offers "Current directory" first, and `--no-input --yes --project-dir <repo-root>` created directly in place — both then threw a generic "Failed to initialize git repository:" wrapper from deep in GitService.initialize(). Extract the ownership rule into a shared `classifyKtxRepoOwnership(dir)` used by both GitService.initialize() (the invariant) and the setup wizard (pre-flight guidance), so the decision derives from one rule. Setup now detects a foreign repo before constructing GitService and: interactively re-prompts (the user picks the existing `ktx-project` subfolder), or non-interactively returns a clean missing-input with the actionable message. The typed foreign-repo error is also surfaced verbatim instead of being buried under the generic wrapper. Empty/non-repo current directories still work — only foreign repos are blocked.
This commit is contained in:
parent
133b879ed3
commit
4578b2d3a9
5 changed files with 183 additions and 32 deletions
|
|
@ -342,6 +342,13 @@ separate `ktx` binary on `PATH`. If the CLI path changes, rerun
|
|||
changes there. If the project directory is nested inside another repository,
|
||||
**ktx** still keeps its own repo and does not commit to the parent repo.
|
||||
|
||||
Because **ktx** owns that repository, it will not adopt one it did not create. If
|
||||
you point setup at a directory that is already a git repository's root - such as
|
||||
an existing application checkout - **ktx** stops and asks you to pick a dedicated
|
||||
directory instead. In the setup wizard choose the **New subfolder** option (for
|
||||
example `ktx-project`), or pass a fresh `--project-dir` when running setup
|
||||
non-interactively.
|
||||
|
||||
| Path | Purpose |
|
||||
|------|---------|
|
||||
| `ktx.yaml` | Project configuration |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue