[One (M8) General] dipole:
I like to flash, when I had the nexus 4, sometimes several times a day. I would simultaneously use a couple ROMS at the same time by just going back and forth every day to see which I liked better. I also liked to re-visit ROMS I had used in the past, but didn't want to go through the hassle of restoring apps etc, so I make a system that I'm sharing here. Nothing earth shattering but maybe it could help someone. There are several ways to do this and are actually programs that can take the place of what I have below (see main onandroid thread for apps), but I already have tasker and it's what this is based on.

please note at this time only HTC One M8 831C and HTC One m8 GPE are supported, if you have any other version, please email the dev and he will have you submit a partition layout. Usually only takes a couple hours before he will reply to you, he's a great dev.

Every night at midnight, tasker initiates a nandroid to my 64 gb external SD card. once it completes, it will upload it to my raspberry pi with it's 2TB hard drive. Tasker will then prune out old nandroids on my extSD card while I have a full library on the raspi.

Root, custom recovery needed. I use Philz

Tasker. It's worth every penny. http://tasker.dinglisch.net/. Adapt as necessary if you use Llama or similar

OnAndroid, get it from this thread http://xdaforums.com/showthread.php?t=1620255. 9.2 is most current

Dedupe, get it here http://xdaforums.com/showpost.php?p=33067642&postcount=1165

Partition Script https://github.com/ameer1234567890/OnlineNandroid/blob/master/part_layouts/zip/part_detect_tool.m8.zip?raw=true. Search for M8 here to find it. Note there are ones for other phones here as well if you need them

Locale Execute plugin http://elmicha.de/app/LocaleExecute/LocaleExecute-1.0.2.apk

Foldersync (optional) https://play.google.com/store/apps/details?id=dk.tacit.android.foldersync.full

Ok, now we have the stuff, let's flash. Boot into whichever recovery you are using. In this tutorial its Philz. Flash Onandroid, dedupe and the partition script (remember only for GPE and 831C at this time). Reboot.

Open tasker, create a new profile by pressing the plus button in the bottom right. Click Time. Enter your time here, mine is midnight, so I put from and to as 00:00. It will then prompt for a task. Create a new task called nand_backup. Create it as follows. Press plus button to add tasks

1. Click Alert then Notify

title Onandroid

text Performing backup

2. Click script then Run Shell

command

onandroid -me -p -c date-GPE -s /storage/ext_sd

for TWRP USE

onandroid -w -me -p -c date-GPE -s /storage/ext_sd

(note, this says to run onandroid, with md5 enabled, name the nandroid {phone name - date - GPE} and save it to my external SD card.

3. Click Plugin then Foldersync (this is optional and points to a profile that will upload via FTP to my raspberry pi server)

4. Click Alert then Notify

title Onandroid

text Backup Completed

That's it, you have now enabled auto backup to your sdcard every day at midnight. Press the play button in tasker and execute the task, grant SU permission if it requests it.

To automatically remove old nandroids from our SD card, do the following.

Once again, open tasker

Create a new profile, call it delete_nandroid based on time. I usually run it an hour or two after the nandroid backup task.

Create a new task, call it delete_nand_task or similar, click plugin then execute.

under configuration type the following

@! find /storage/ext_sd/clockworkmod/backup/* -mmin +2880 -exec rm -rf {} \;

. This will scan the external SD card clockworkmod folder and delete any nandroids older than 48 hours (or 2880 minutes, you can change this to whatever you need). This gives me a couple nandroids to restore on the device and if I need to go back further I can copy them over from the Raspberry pi where I will have plenty to choose from, usually of different roms).

That's it, let me know if it works for you.

As a bonus, I also Rsync to my raspi every night copying contents of both the internal and external SD card. What can I say, I 'm a sucker for backups. With Rsync I don't worry about versioning etc, this is in case I accidentally drop my phone in the pool and loose everything. Once I get a new HTC One, I simply pull a nandroid from the server and then Rsync the SD Card back to the phone and everything is there from the night before. Once again probably only useful if you have a server laying around that can rsync, like a raspberry pi or such.

The tasker profile is simple, just call a program called Rsync https://play.google.com/store/apps/details?id=eu.kowalczuk.rsync4android&hl=en

I won't go into depth on configuring Rsync on android, there is a good tutorial here that I use everytime I set up, https://guysoft.wordpress.com/2012/11/01/android-nightly-backups/