Comment 29 for bug 374274

Revision history for this message
Naël (nathanael-naeri) wrote :

1) Juan mentioned in linked question 107518 that extended shell globbing patterns (? [ * and **), which are supported by duplicity (see FILE SELECTION in man page), could be passed to duplicity through Déjà Dup's include-list and exclude-list GConf keys, thereby unofficially allowing advanced include/exclude support. This is mentioned in this present bug report by Michael in comment 7 and inquired about by Brutus in comment 24, Ubucatz in comment 25.

This does not appear to work any more, as far as I can tell... :( See my comment on linked question 107518 and please try for yourself: use gsettings to add some globbing pattern to the exclude-list key in the schema org.gnome.DejaDup (man gsettings for howto), run a verbose manual backup with 'DEJA_DUP_DEBUG=1 deja-dup --backup', and grep what you're trying to exclude in the output, chances are it's backed up. Also grep /usr/bin/duplicity to confirm that your globbing pattern was not passed to duplicity.

It's probably best that this workaround doesn't work any more though. Since the feature is not officially supported, at least it's consistent.

2) People here mention (extended) shell globbing patterns vs. regular expressions vs. rsync filter rules in order to provide advanced includes and excludes, should this feature be supported by Déjà Dup one day.

Duplicity supports extended shell globbing patterns and Python regular expressions, so both should be feasible. I'm not familiar with rsync filter syntax but it looks like it's extended-globs-based.

3) For what it's worth, I agree with Frank in comment 8 and question 107518, and Michael Ekstrand in comment 12 and duplicate 786741, that this feature could very well be only accessible to advanced users and provided as a way to pass arbitrary --include* and --exclude* options to duplicity, in whatever order is desired, since order is important for file selection.

For instance, consider a 'duplicity-options' GConf key that would not be set from the GUI but only from the CLI, and would contain a number of user-specified --include* and/or --exclude* options for duplicity. If unset, the includes and excludes specified in the GUI could be used, as is the case today. If set, the content of that key could simply be passed to duplicity, ignoring the includes and excludes specified in the GUI.

That way the GUI stays simple and beginner-friendly, there is no need to design/code/maintain a graphical way of supporting advanced file selection, and advanced users can still perform advanced file selection (through the CLI, which is OK since they're advanced).

What could be graphically available to less advanced users, though, through a simple textbox for instance, is a small subset of this advanced feature, for instance extension-based exclusion of files, as that seems to be a much requested use case (.git, .o, .txt~ etc).

4) Michael Terry is not subscribed to this bug report anyway, so it's unlikely he's seen the activity since his last comment, and even if he has he probably has much to do besides implementing this feature.

So it's no advanced file selection for now.