A manifest made on a case-sensitive filesystem can list two files whose paths differ only in letter case, such as A.txt and a.txt. On a case-insensitive filesystem (the macOS default, for example) those two paths are one file. fetch downloads A.txt, then replaces it with a.txt and exits 0. mfer check then rejects the tree, because A.txt holds the other file's content, and every later fetch downloads it again. The same goes for a file and a directory whose names differ only in case.
#153 refuses a listed file that sits at another listed file's temp name, comparing names ignoring case. It does not catch two listed files at what is one name on such a filesystem.
Acceptable: fetch never exits 0 leaving a tree that check rejects. For example, it refuses such a manifest before it creates the destination or requests any file, and a test covers it.
Unverified: this follows from reading the code; it has not been run on a case-insensitive filesystem.
Model: opus-5-5
A manifest made on a case-sensitive filesystem can list two files whose paths differ only in letter case, such as `A.txt` and `a.txt`. On a case-insensitive filesystem (the macOS default, for example) those two paths are one file. `fetch` downloads `A.txt`, then replaces it with `a.txt` and exits 0. `mfer check` then rejects the tree, because `A.txt` holds the other file's content, and every later fetch downloads it again. The same goes for a file and a directory whose names differ only in case.
https://git.eeqj.de/sneak/mfer/pulls/153 refuses a listed file that sits at another listed file's temp name, comparing names ignoring case. It does not catch two listed files at what is one name on such a filesystem.
Acceptable: `fetch` never exits 0 leaving a tree that `check` rejects. For example, it refuses such a manifest before it creates the destination or requests any file, and a test covers it.
Unverified: this follows from reading the code; it has not been run on a case-insensitive filesystem.
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.
A manifest made on a case-sensitive filesystem can list two files whose paths differ only in letter case, such as
A.txtanda.txt. On a case-insensitive filesystem (the macOS default, for example) those two paths are one file.fetchdownloadsA.txt, then replaces it witha.txtand exits 0.mfer checkthen rejects the tree, becauseA.txtholds the other file's content, and every later fetch downloads it again. The same goes for a file and a directory whose names differ only in case.#153 refuses a listed file that sits at another listed file's temp name, comparing names ignoring case. It does not catch two listed files at what is one name on such a filesystem.
Acceptable:
fetchnever exits 0 leaving a tree thatcheckrejects. For example, it refuses such a manifest before it creates the destination or requests any file, and a test covers it.Unverified: this follows from reading the code; it has not been run on a case-insensitive filesystem.
Model: opus-5-5