-- in Restore.pm: # TODO: inefficient! we don't want to download the chunk from the # target multiple times. better to cache it locally, or at least # only fetch a region from the target (but that's still kinda inefficient # and pushes complexity into the Target interface) -- Optionally only use in-memory files when using encryption. -- : if a file which existed when Brackup was "discovering files" subsequently goes away while Brackup is working it's magic (like a vim .swp file) Brackup tosses an error and bails: -- don't skip files ending in whitespace. figure out why GPG barfs. would the metafile also barf, having a trailing \r or \n? -- figure out how files with intenal \r or \n in filename get written to metafile. need to be escaped? -- FUSE script to mount a *.brackup file -- tool to clean digestcache, based on prefixes, looking for files that no longer exist or have new mtimes, etc? or keep track of "last used" date field in the digestcache and just delete things that are too old? but then no longer just a dictionary. SQLite would work, but we'd ideally like lots of dumber cache mechanisms. maybe a ->clean method is optional? then a memcached backend/etc doesn't have to use it. -- Tools to rebuild your inventory database from the target's enumeration of its chunks and the target's *.brackup metafiles isn't yet done, but would be pretty easy. -- ionice stuff. network nice stuff. -- make tests pass without 'noatime' mount option -- --ignore-debian-files option (if managed by a package management system (and not an unmodified conffile), don't back it up) -- reuse tempfiles in Chunk.pm as Restore.pm does -- restoring from existing config file. -- better test coverage. currently at 84%. should ignore test coverage of test modules. move Brackup::Test to t/lib/ probably -- should do TODOs in code. :)