Skip to content

Commit dee0945

Browse files
authored
Document the fs (filesystem) VCS type (refs #76) (#93)
1 parent 673ffbc commit dee0945

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

CHANGES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
`mx.ini` setting, on both checkout and update. Expected VCS errors are no longer reported
1919
with a full Python traceback (the traceback is kept at debug level). [jensens]
2020

21+
- Document the `fs` (filesystem) VCS type in the README: it only verifies that a package
22+
directory already exists under the sources directory and does not fetch, copy, or symlink
23+
anything (refs #76). [jensens]
24+
2125

2226
## 5.3.2 (2026-05-30)
2327

README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,37 @@ When you run `git push` in the checked-out repository, Git will push to all conf
282282

283283
**Note:** Multiple pushurls only work with the `git` VCS type. This mirrors Git's native behavior where a remote can have multiple push URLs.
284284

285+
#### Filesystem (`fs`) Sources
286+
287+
The `fs` VCS type does **not** fetch, copy, or symlink anything. It is a marker for a package
288+
that is **already present** inside your sources/target directory: mxdev only verifies that the
289+
directory exists at `<target>/<name>` and otherwise leaves it untouched.
290+
291+
Accordingly, `url` is the **directory name** (which must equal the section name / package name),
292+
not a path:
293+
294+
```ini
295+
[my.addon]
296+
vcs = fs
297+
url = my.addon
298+
```
299+
300+
This expects `sources/my.addon/` to exist already (e.g. a checkout you manage yourself, or a
301+
symlink you created). If the directory is missing, mxdev raises a `FilesystemError`.
302+
303+
**Common pitfall:** `fs` does not turn an external path into a checkout. Setting
304+
`url = /abs/path/to/my.addon` does **not** make mxdev link that directory into `sources/` — you
305+
must place or symlink it there yourself first:
306+
307+
```bash
308+
mkdir -p sources
309+
ln -s /abs/path/to/my.addon sources/my.addon
310+
```
311+
312+
To have mxdev manage a local package for you instead, point a normal `git` source at the local
313+
repository (`url = /abs/path/to/my.addon`, `vcs = git`), or — for uv-managed projects — add a
314+
path entry under `[tool.uv.sources]` directly (see *uv pyproject.toml integration* below).
315+
285316
### Usage
286317

287318
Run `mxdev` (for more options run `mxdev --help`).

0 commit comments

Comments
 (0)