qsniyg / ksp_stuff

GNU General Public License v3.0
9 stars 4 forks source link

Hardlink support #7

Open qsniyg opened 5 years ago

qsniyg commented 5 years ago

Possibly slightly faster, but only supports files from the same filesystem, and harder to recover from in case of a catastrophic failure where movfs4l_log.json doesn't get generated for whatever reason. This should definitely be optional.

ajventer commented 5 years ago

I'll think about this, but the same-filesystem limitation seems prohibitive to me.

qsniyg commented 5 years ago

Absolutely. My idea was just to add an option somewhere, like the IO_DELAY one, so it's at least a possibility if someone decides to do it this way.

maciozo commented 5 years ago

I would appreciate this. For some reason, symlinks don't work for me at all in WINE. They all show up, but are either empty directories or empty files.

qsniyg commented 5 years ago

@maciozo Interesting, I'm not sure what the cause of the issue would be... Are you sure the symlinks aren't broken? If you were to ls -l the symlink, does it show what it's linked to? For example:

ls -l ~/.wine/drive_c/Games/Skyrim/Data/some_symlinked_file

This should return something like:

lrwxrwxrwx number user user number timestamp some_symlinked_file -> '/path/to/actual/file'

FYI the script doesn't create symlinked folders, only files (it creates real folders).

maciozo commented 5 years ago

@qsniyg

Yup lrwxrwxrwx 1 maciek maciek 181 Jun 13 00:10 'Alternate Start - Live Another Life.bsa' -> '/home/maciek/Games/skyrim/drive_c/users/maciek/Local Settings/Application Data/ModOrganizer/SkyrimSE/mods/Alternate Start - Live Another Life/Alternate Start - Live Another Life.bsa'

Oddly enough, it actually works fine on Proton 4.2, but not WINE Staging 4.9.

It's probably related to https://bugs.winehq.org/show_bug.cgi?id=47319

qsniyg commented 5 years ago

@maciozo Ah that must have been the issue I experienced as well! I just reverted back to wine-staging 4.6.

qsniyg commented 5 years ago

@ajventer Is there a reason this one was closed? I don't personally mind either way if you'd rather not have this feature if that's why it's been closed, but it's not been implemented yet.

ajventer commented 5 years ago

Sorry, the hardlink part not being implemented escaped me, partly because of the overlapping wine bug - which is fixed in the more recent versions.

I've reopened it. I was just trying to clean up the issues list a bit this morning to get a more accurate view of the state of things.

smirgol commented 3 years ago

The hardlink support has now been added. You can use it with the option --hard_links. Be sure to do a --unvfs before you re-link, if you still are using symlinks. Of course it will only work if both MO and the game are on the same partition, the script will not check that for you.

I should add that I have tested it on an ext4 drive only, not on an NTFS drive. It should work on NTFS as well, but I cannot guarantee that.