I'm experimenting with an idea of treating the Commons copies of my photos as the 'master' copy, and not keeping them online anywhere else (e.g. Flickr). This involves uploading to Commons and then keeping a local copy in sync — because I don't want to lose any photos if they get deleted from Commons.
I'm using Digikam locally, and have two collections configured: one scratch-pad one, for sorting out photos that are just off the camera; and one backup one, which lets me browse photos I've got on Commons.
I download from Commons with the following
backup.sh script, which goes through all of my contributions and exports XML for every page I've worked on, and every file for which I'm the first author (i.e. I uploaded it).
#!/bin/bash BACKUP_DIR=$(cd "$(dirname $0)"; pwd -P) mwcli export:contribs \ --config="$BACKUP_DIR/config.yml" \ --wiki=commons \ --user=samwilson \ --dest="$BACKUP_DIR" \ --only-author
The reason I want the Commons copy to be canonical is that it makes for centralised metadata, a single place to edit and add links to related material. It's annoying to have to keep metadata in sync between Commons, Flickr, and possibly a local copy of things too.