Currently, solidify is not very functional. This is an overview of what you can expect.
Current status (completed features)
- File systems can be created.
- File systems can be mounted.
- The file system is read-only.
- Files are marked for solidifcation (retrieval) upon access and by calling the command line tool for solidification.
- File systems can be synchronised when unmounted, but only non-conflicting remote-to-local changes are transmitted.
- Bidirectional synchronisation is implemented (though testing is restricted to remote-to-local, obviously)
- Files are solidified (copied from remote to local) during synchronisation.
- Some safety checks have been implemented.
To-Do list for a functional release
- Implement more safety checks.
- Improve the user interface.
- Make file system writeable.
- Let the user decide about conflicting changes. Maybe imitate the unison command line.
- Write a fsck tool to ensure consistency of internal database and on-disk representation.
Distant (cool) features
- Try to fetch files while the file system is mounted via sftp or rsync.
- Make the file system multi-threaded (this is probably necessary for the previous item).
- Using hard-links, construct a local directory tree of solid files which can be accessed when the file system is not mounted.
- Synchronise the file system in the background.
- Fetch files partially via ssh when required. Assemble the whole files later.
- Write a (PyQt)-GUI to handle synchronisation.