git-annex/ walkthrough/ backups

git-annex can be configured to require that more than one copy of a file exists, as a simple backup for your data. This is controlled by the numcopies setting, which defaults to 1 copy. Let's change that to require 2 copies, and send a copy of every file to a USB drive.

    $ git annex numcopies 2
    $ git annex copy . --to usbdrive

Now when we try to `git annex drop` a file, it will verify that it knows of 2 other repositories that have a copy before removing its content from the current repository.

The numcopies setting used above is the global default. You can also vary the number of copies needed, depending on the file name. So, if you want 3 copies of all your flac files, but only 1 copy of oggs:

    $ echo "*.ogg annex.numcopies=1" >> .gitattributes
    $ echo "*.flac annex.numcopies=3" >> .gitattributes

Or, you might want to make a directory for important stuff, and configure it so anything put in there is backed up more thoroughly:

    $ mkdir important_stuff
    $ echo "* annex.numcopies=3" > important_stuff/.gitattributes

For more details about the numcopies setting, see copies.

Warn while inconsistent

Sure, git-annex prevents me from dropping files unless there are numcopies around elsewhere, but shouldn't it also ensure that numcopies cannot be set unless that requirement is already met?

Furthermore, shouldn't it ensure that when new files are added, they are automatically distributed to fulfill the requirement?

Comment by madduck — Tue Jul 22 18:11:47 2025
Comments on this page are closed.