Currently, option arguments are only completed after =. For example:
$ btrbk --loglevel=<TAB>
debug error info trace warn
$ btrbk --loglevel <TAB>
archive diff extents ls prune run
stats clean dryrun list origin resume
snapshot usage
This commit makes it so that both option styles are recognized:
$ btrbk --loglevel=<TAB>
debug error info trace warn
$ btrbk --loglevel <TAB>
debug error info trace warn
This was the intention all along, but it was implemented incorrectly.
On btrbk archive, after creating a directory without dry-run, the
archive target is skipped with "Failed to fetch subvolume detail" due
to caching of realpath.
Regression in btrbk-0.32.0:
eb69bc883e btrbk: refactor mountinfo
Now that timestamp_format defaults to "long", it seems no longer
needed to even mention it here. Setting to "short" or "long-iso" is
only required in rather special use cases.
Set node as tree root if mount_id == parent_id. For some reasons this
is never the case on my (mostly gentoo) systems.
Regression from: eb69bc88 btrbk: refactor mountinfo
This is a relict of early days of btrbk, and I have already hesitated
for too long to change the default from legacy "short" to sane "long"
format.
Tests show that the scheduling behaves in a sane/expected way if this
change is applied unattended. I suppose everybody who has
preserve_hour_of_day set is already using timestamp_format=long.
For the paranoid. For convenience, filename checking was removed in
[1], and quoting was (hopefully) implemented correctly in [2].
Allowing special characters as well as UTF8 leave behind a bad
feeling, as there are many special cases that needs to be taken care
of (e.g. newlines in file names, right-to-left encoding, etc.). In
order to mitigate attacks expoiting these error classes, leave an
option to power users which do only allow "sane" characters in their
filename hierarchy.
[1] 6a29b08f00 btrbk: remove filename restrictions
[2] acc7f9fc83 btrbk: quote unsafe characters in shell commands