-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Currently pyfakefs handles st_ino as something optional, which is probably OK
for many scenarios.
But it would be really nice, if st_ino would be handled properly.
I'm working on a sort of file syncing application, which needs to detect all FS
modifications. Comparing st_ino of two files/dirs (e.g. a file from an old FS
snapshot and a file from a new FS snapshot) is a typical and reliable way to
detect that both files/dirs correspond to the same object on the file system.
If st_ino values are the same, then it is the same object (at least on most
UNIX file systems).
Therefore, I'd like to propose the following:
1) When a new file or directory is created, it should get a new unique st_ino
value
2) When objects (files or dirs) are moved inside the same file system, their
st_ino fields should be preserved.
(BTW, fake_filesystem_shutil currently tries to preserve most st_* stats for files, but st_ino is not included into this set of preserved fields. And for directory moves, no st_* stats are preserved at all for some reason)
3) Optional: currently fake_filesystem_shutil.move uses copying to move files
and directories. This does not scale for big nested directories, because it
needs to move each nested sub-component separately. May be it could use
"rename" whenever possible? It could provide significant speed-ups.
Original issue reported on code.google.com by romixlev
on 6 Jan 2014 at 12:15