Brussels / 30 & 31 January 2016


Make backups and versions available easy.

Provide access to previous versions to users.

There is a lot of backup software for Linux, but I always miss easy access to backups and versions. This project provides that access, using different advanced tools like btrfs (to create snapshots), sqlite (to administer the differences between snapshots) and a FUSE filesystem to browse and read access the different available versions. I'm working on integration with filemanager Dolphin and a tool to show differences between two office files.

Using Btrfs

Most people know btrfs is being used to create system snapshots. In this project it is used to create snapshots of users private directories. It's not required that the directory to backup is on a btrfs. The contents of this directory is first synchronized with a backup directory on a btrfs, and of this backup directory snapshots are created. This is done at the start of a session of the user.

Using mimetypes

When creating a backup, most of the time you want that only files of a specific type or types are taken into account, not all the files. For example a folder for development of a C executable. You want the source and the header files to backup, but not object and other temporary files required for building. Another example: a folder with odt files, you only want to backup those.

With this project the user can assign different mimetypes to a directory, and only files of these types will be taken into account.

Using Sqlite

Before a snapshot is created, the differences between the directory and it's backup are analyzed and administered in sqlite. So every file and version are stored in sqlite.

Using Fuse

Available is a backup directory, snapshots of this map, and a sqlite db where all the files and theur versions are stored. To provide easy access to the backup and versions of files, a Fuse fs is used. It provides a browseable set of directories, where the contents represents the files (and subdirectories), and versions of files are readable.

Work to be done

I have a simple qt gui to browse the different personal backups, and get and set the options. I want to create easy access to versions through the main tools in KDE like Dolphin. I've been looking at the existing versioncontrolplugin API of Dolphin, but it looks like it's not exactly what I'm looking for. I think another backup API is required. With this it must be possible to just right click on files (which are part of a backup), clicking on "Show versions" menuitem, and Dolphin expands the file with the versions available. Also possible should be to compare a previous version with the current file, using the right tools. For office files this is also work to be done, but is possible to build a viewer to compare the differences using LibreOfficeKit.


Stef Bon