I wrote a python script to do the restore.
I use the fact that alphabetical order for the incremental backup directories on the Seagate is chronological order. The script steps through the directories from earliest to latest, and overwrites files in the destination directory, so the last version of a file written should be the latest file.
I had to move the whole backup to a very short first-level subdirectory on the Seagate because some of the paths ended up being more than 255 characters. I also had to rename a few files that had unusual Unicode.
But ... here's what I used. I used this answer from SO here as part of the solution.
#!/usr/bin/python import os import shutil def recursive_overwrite(src, dest, ignore=None): if os.path.isdir(src): if not os.path.isdir(dest): os.makedirs(dest) files = os.listdir(src) if ignore is not None: ignored = ignore(src, files) else: ignored = set() for f in files: if f not in ignored: recursive_overwrite(os.path.join(src, f), os.path.join(dest, f), ignore) else: shutil.copyfile(src, dest) os.chdir('E:\\B') dest = 'C:\\Users\\Me\\R4' paths = os.walk('.').next()[1] for path in paths: print path recursive_overwrite(path, dest)