⚠️ Your collection is precious. If you are using SuperMemo, you will likely be pouring weeks, months or years of your life into building it. Don’t let it all go to waste. Having frequent backups is vital.
Do you care about your health? Would you take a gamble with your life and forfeit your health insurance? If your answer is no, then keep reading.
Just like health issues, computer glitches can happen at any time. It is precisely because we cannot anticipate these events, that we take measures to mitigate their potential damage. This is what we propose to do in this guide.
Still not convinced? Read testimonies of SuperMemo users who remained skeptic, until it was too late.
The strategy we suggest attempts to strike a balance between robustness and ease of use. This is not a foolproof method, but it should be robust enough that you do not lose more than a single study session at any time.
It shouldn’t take you more than a few seconds to commit your hard work to safety.
In this guide, you are going to implement two layers of protection:
As of the moment of writing this guide (2020/02), this solution is free (as in free beer, and in freedom). As an added bonus, you will also be able to synchronize your collection between computers.
BitShelter (a.k.a. SuperMemo Backup) is a software that keeps a version history of your files. It is similar in concept to using Ctrl+Z in your favourite text editor, only applied to files.
A partition keeps your SuperMemo files completely seperate from your Window’s C:/ drive, with the following benefits:
Not creating a partition for your SM collection puts you at risk. Explanation:
Imagine that you have been conscientiously using SuperMemo with the peace of mind that your work is backed up and secure.
You’ve worked hard today and want to indulge in watching a movie. You watch the movie, it was good, and now that it’s finished, you delete the 5GB file (it’s HD).
Now you go back to your collection and realize that you have mistakenly deleted a whole branch. You look into your backup history, but to your horror it is empty!
In fact, deleting that 5GB file filled your snapshot reserve space with the movie’s content. And since your snapshot reserve size was 5GB, it filled the entire space, flushing out previous data from your collection.
Creating a partition will dedicate the entire snapshot reserve space to content on that partition only. It will help to prevent a story like that from happening to you.
Determining the correct partition size depends on a few factors, including:
Avoid partition sizes lower than 8GB. If you reserve 3GB for saving your file history, only 5GB of free space will be left available for you to use on the partition.
It is imperative that you never use more than the file space available on the partition. In our example earlier, you must never use more than 5GB of space for your files.
Not following this principle will result in corrupting your files. The same principle applies even if you do not create a dedicated partition (e.g. if you use C:).
You should obtain a layout similar to this one (it is fine if you only have one disk, instead of two as in this example):
Note that BitShelter won’t run on 32 bit systems.
Take note of the Drive Letter which contains your SuperMemo collection. If you only have one disk in your computer, it should be C:\
In this example, the SuperMemo collection Drive Letter is E:\.
If you chose not to create a dedicated partition for SuperMemo, increase reserve space significantly. All changes on your drive (e.g. C:\) will be tracked and counted towards the file history space.
Your final BitShelter settings should look similar to the following configuration:
It is highly recommended that you make sure everything is working as intended.
Try out the following instructions and see if you’re actually able to open up and use a copy made by BitShelter.
Don’t panic! Restoring your collection to an earlier version is easy with BitShelter!
If you have issues with the above instructions, you can also refer to this guide
Git is a tool that makes it easier to track changes to files. When you edit a file, git can help you determine exactly what changed, who changed it, and why.
It is useful for coordinating work among multiple people on a project, and for tracking progress over time by saving “checkpoints”. You could use it while writing an essay, or to track changes to artwork and design files. 
For our purposes, git will be our means to:
2: Although the listed Git providers can be considered fairly reliable from a technical standpoint, we highly recommend that you implement a solution to encrypt your collection. Your collection is a map to your brain and to your innermost thoughts. Don’t let others peer into it without your consent.
If you want to use SSH authentication instead of HTTPS, follow this guide
cmd.exe, then press Enter and run the following two commands (with your own name and email you use for github):
git config --global user.name "Alexis Incogito" git config --global user.email firstname.lastname@example.org
Setup is now complete!
In this example, the repository we create will be named SuperMemo_Collection.
You can choose from a variety of providers. We recommend using GitLab, because:
🚧 Work in progress.
Input the following information in your new repository:
To use git with an existing collection:
Open a command prompt:
cmd.exe, then press Enter.
In your browser, navigate to your repository web page, and copy the git url:
In the command prompt, type
git clone <https://gitlab.com/......>.
Replace the text between < > with the link copied previously.
git clone will create a local version of your Git repository.
Login with your account. A popup will appear:
Your repository is now synchronized with your computer and a new folder has been created.
Copy your SuperMemo collection into the new folder. In our example it will be located in
Your folder should look similar to the example below (.gitignore might be missing):
Every time you finish using SuperMemo, make sure to synchronize your collection using of the methods below.
.gitdirectory is located). It contains the following commands:
git add -A && git commit -m "Update" git push
sm-main-commit.bat(double click). If all went well, your should be able to see your collection in your GitHub repository web page.
That’s all! Your collection is synchronized online, congratulations!
Community member @Owl created an advanced synchronization scripts with the following benefits:
To make running sm-main-commit.bat more convenient, you can add it to taskbar. Windows doesn’t let you add .bat files to taskbar so instead you can do the following:
Right click on sm-main-commit.bat and click create shortcut.
Edit the new shortcut to make it pinnable in the taskbar:
Right-click the shortcut and add it to taskbar.
Every time you are done using SuperMemo, click on the shortcut in the taskbar to sync changes to your collections’s Github repository.
You can also use this keyboard shortcut to quickly execute the script: + number key.
Number key is the position of the script in your taskbar (e.g. 1 2 …).
A common question people ask is “Why not use Dropbox or Google Drive for backups?”.
Admittedly, these are much more user friendly and require very little set up. However, there are a number of reasons why these services are inadequate for our purposes.
It is very easy to get something wrong, and corrupt your collection due to file locks. Previous backup methods relied on watching and killing processes in an effort to prevent this, but these are very inelegant solutions.
Syncing to a cloud provider pushes each file individually without any knowledge of how they are grouped together. If for some reason your cloud provider messes up the syncing, it might lead to nasty results. By contrast, the git push to server is an atomic transaction, meaning it either completely succeeds, or completely fails, there is no situation where your collection data gets partially backed up.
Work in progress. Come back later!
I assume you’re on Windows. Go to Duplicati download page, click the “Windows 188.8.131.52” icon to download the Windows installer. If you have a 32-bit version Windows, download the Windows 32 bit installer instead.
During installation, no change is needed: just keep pressing Next until complete. After installation, a new Duplicati tray icon in the System Tray will appear. Right click on it-> Click open to open the app:
It’s a browser-based app. Your default browser will open and launch a new tab at http://localhost:8200/ngax/index.html.
In this tutorial I’ll back up the whole SuperMemo Drive (:S) to Google Drive as an example. The following are my suggested settings. Feel free to modify as you see fit.
In the Duplicati homepage, click “Add backup”:
The default “Configure a new backup” should be selected. Click Next.
I highly recommend that you choose Encryption: “AES-256 encryption, built in”. Without encryption all your data is exposed.
Passphrase is another term for password. Please make it long and store it to a secure location. If you lose this passphrase you won’t be able to decrypt your precious precious collection when needed.
“Path on server” means the folder name in your Google Drive. Don’t worry if it doesn’t exist yet. Duplicati will create it for you later.
Click the blue AuthID link. Choose your login credentials. After authentication a string will appear in the input field.
Click Test connection. It’ll prompt “The folder SuperMemoBackup does not exist. Create it now?” Click yes.
I’ve followed the above “Local backups: BitShelter” guide, so I choose the whole drive as source data.
I choose to back up every 3 hours. Feel free to change it.
Keep the default. Click Save
After this, go back to the homepage and you’ll see a new task has appeared. Click Run. After that Duplicati will run your task automatically.
For more please read Duplicati 2 User’s Manual.
💬 Supersrdjan: “I used supermemo for two years enjoying steady gains as my collection grew. I backed up my collection daily at first. But it seemed like overkill. So I switched to weekly backups. Sometimes I would skip a week, or two, and then weeks turned into months between backups. Of course, one day, inevitably, Supermemo crashed and wiped my collection. I felt worse than a stockbroker in 1929. I was about to fall into a great depression. I had to revert to a 3-month old backup. Better than total bankruptcy I guess. But those months aren’t coming back.”
💬 Luke Avedon: “Back up your collection. I’m ashamed to admit I used to never back up my collection. Once while running a quick, ‘repair collection’ I lost power. An entire section of my knowledge tree was mangled forever. All the references changed to strange, incomprehensible characters. Now I know better. I automatically back up to two local hard drives, and three cloud drives each day.”
💬 Nour: “Well, I’m a bit new to SM and although I was warned, I did not understand the gravity of the warnings. Back-up your collection. Since I’m new, I don’t understand a lot of the issues, but I know I didn’t do anything to provoke them, and yet the combination of SM and my virtual machine had corrupted and misplaced files and needed to be repaired – with the repairs yielding some unwanted adjustments to my collection. Of course, if all your final prep is on SM, you’d be having heart palpitations at the thought of your collection getting messed up, I know I was. Sufficed to say lesson learned. The hard way, but learned never-the-less.”
💬 Godfreyla: “I had an issue with my hard drive, and to cut a long story short my laptop died. I had around 2 years’ worth of Supermemo use completely gone! But fortunately, I’d followed the guidance around setting up local backups and more importantly, internet backups using git and GitLab. It might take you a couple of hours to set up (and in the process you learn some new things), but knowing what I do now, I’d go so far to say it’s probably not worth the risk of using SM without having this backup strategy in place!”