fetch refuses a manifest whose paths differ only in letter case (closes #154)
check / check (push) Failing after 1s
check / check (push) Failing after 1s
On a case-insensitive filesystem such paths are one name. Of two files, one replaced the other and fetch exited 0. For a file and a directory another file is in, fetch stopped partway with a non-zero exit, leaving a partial tree. For two spellings of one directory, both files landed in one directory, one under a spelling the manifest does not list, and check reported that file as not in the manifest. The existing name-clash check now also records each listed file and each directory one is in. A listed file at a name already taken, or a directory spelled differently from one already there, is refused on every filesystem, before the destination is created. The message names both paths. Model: opus-5-5
This commit is contained in:
@@ -274,9 +274,11 @@ are now tracked only in the [issues](https://git.eeqj.de/sneak/mfer/issues).
|
||||
tree later. Each file is downloaded to a temp file beside it, such as
|
||||
`.a.txt.tmp` for `a.txt`, then moved into place. A manifest is refused
|
||||
before any file is downloaded if it lists a file where fetch writes
|
||||
another: at the temp file of a listed file, or at `index.mf` or
|
||||
`.index.mf.tmp` at the top of the tree. Names are compared in any letter
|
||||
case.
|
||||
another: at another listed file or a directory one is in, at the temp file
|
||||
of a listed file, or at `index.mf` or `.index.mf.tmp` at the top of the
|
||||
tree. Names are compared in any letter case, on every filesystem, since on
|
||||
a case-insensitive one `A.txt` and `a.txt` are one file; a directory two
|
||||
listed files are in must be spelled alike in both.
|
||||
- `mfer fetch --require-signature <fingerprint> https://example.com/stuff/`
|
||||
- as above, but first refuses a manifest not signed by the key with that
|
||||
fingerprint, as `mfer check --require-signature` does, before downloading
|
||||
|
||||
Reference in New Issue
Block a user