The README says each file in a manifest has "a relative path to the manifest", but check and freshen resolve paths against --base, which defaults to the current directory, wherever the manifest is:
mfer check sub finds sub/index.mf, then checks its entries against .: every file is reported missing and the files of . as extra, on a tree that is intact.
mfer check sub/index.mf does the same.
mfer freshen sub/index.mf, run from the parent, rescans . and rewrites sub/index.mf to list the parent's files (a.txt, sub/b.txt), so the manifest no longer describes its own tree. No warning is printed.
The use case in the README, plugging in a drive and checking the index.mf at its root, needs mfer check /media/drive to work.
Definition of done
Failing tests first for each case above.
When --base is not given, check and freshen resolve entries against the directory that holds the manifest: the file named, or the one found in a directory argument. check of a URL manifest keeps the current directory. --base still overrides.
The --base help text of both commands and the README's Tool Examples say what the default is.
make check passes.
Model: opus-5-5
## Problem
The README says each file in a manifest has "a relative path to the manifest", but `check` and `freshen` resolve paths against `--base`, which defaults to the current directory, wherever the manifest is:
- `mfer check sub` finds `sub/index.mf`, then checks its entries against `.`: every file is reported missing and the files of `.` as extra, on a tree that is intact.
- `mfer check sub/index.mf` does the same.
- `mfer freshen sub/index.mf`, run from the parent, rescans `.` and rewrites `sub/index.mf` to list the parent's files (`a.txt`, `sub/b.txt`), so the manifest no longer describes its own tree. No warning is printed.
The use case in the README, plugging in a drive and checking the `index.mf` at its root, needs `mfer check /media/drive` to work.
## Definition of done
- Failing tests first for each case above.
- When `--base` is not given, `check` and `freshen` resolve entries against the directory that holds the manifest: the file named, or the one found in a directory argument. `check` of a URL manifest keeps the current directory. `--base` still overrides.
- The `--base` help text of both commands and the README's Tool Examples say what the default is.
- `make check` passes.
Model: opus-5-5
#179 makes check and freshen resolve a manifest's paths against the directory that holds it when --base is not given. check of a manifest given by URL keeps the current directory, and --base still overrides. gen is unchanged pending #178.
Model: opus-5-5
https://git.eeqj.de/sneak/mfer/pulls/179 makes `check` and `freshen` resolve a manifest's paths against the directory that holds it when `--base` is not given. `check` of a manifest given by URL keeps the current directory, and `--base` still overrides. `gen` is unchanged pending https://git.eeqj.de/sneak/mfer/issues/178.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Problem
The README says each file in a manifest has "a relative path to the manifest", but
checkandfreshenresolve paths against--base, which defaults to the current directory, wherever the manifest is:mfer check subfindssub/index.mf, then checks its entries against.: every file is reported missing and the files of.as extra, on a tree that is intact.mfer check sub/index.mfdoes the same.mfer freshen sub/index.mf, run from the parent, rescans.and rewritessub/index.mfto list the parent's files (a.txt,sub/b.txt), so the manifest no longer describes its own tree. No warning is printed.The use case in the README, plugging in a drive and checking the
index.mfat its root, needsmfer check /media/driveto work.Definition of done
--baseis not given,checkandfreshenresolve entries against the directory that holds the manifest: the file named, or the one found in a directory argument.checkof a URL manifest keeps the current directory.--basestill overrides.--basehelp text of both commands and the README's Tool Examples say what the default is.make checkpasses.Model: opus-5-5
#179 makes
checkandfreshenresolve a manifest's paths against the directory that holds it when--baseis not given.checkof a manifest given by URL keeps the current directory, and--basestill overrides.genis unchanged pending #178.Model: opus-5-5