Many people, myself included, have referred to the following style backups as "forever forward incremental"
rclone sync source: dest:current --backup-dir dest:backups/<date>
I've been thinking about this* for a while and I think it is incorrect classification to call it "forward incremental". I believe this should be classified as "reverse incremental".
Let me explain.
Let's ignore the "forever" part. It just muddies the waters.
As I understand it, incremental backup looks like:
Run 0: Full-Backup0 Run 1: Full-Backup0 + diffs1 Run 2: Full-Backup0 + diffs1 + diffs2 ... Run N: Full-Backup0 + diffs1 + diffs2 + ... + diffsN
You need to take the initial
Full-backup0 and play forward the chain of diffs to get to any arbitrary state
Reverse incremental, as I understand it is as follow:
Run 0: Full-Backup0 Run 1: Full-Backup1 Mods0 Run 2: Full-Backup2 Mods0 Mods1 ... Run N: Full-Backup2 ... Full-BackupN Mods0 Mods1 ... ModsN-1
This is also what the aforementioned rclone command returns. At any given point in time, the full backups (
dest:current) is the most up to date with the mods to get there (
ModsN-1. To get to an arbitrary state, you start at
Full-BackupN and replay in reverse until you get to the desired state.
What do you think? Am I totally missing something? Do I have it all wrong?
It is of near-zero consequence, but I propose we refer to this style as reverse-incremental (in so much as we have collective action).
*: I am working on a tool that mimics this, wrapping rclone, but saves the listing of the
dest:curr directory to speed it up. Stay tuned.