[pbs-devel] [PATCH proxmox-backup] fix #3613: catalog_shell: include matched dir's contents on restore

Wolfgang Bumiller w.bumiller at proxmox.com
Wed Apr 6 11:30:53 CEST 2022


On Wed, Apr 06, 2022 at 11:15:28AM +0200, Dylan Whyte wrote:
> On 4/6/22 10:26, Dietmar Maurer wrote:
> > > On 04/04/2022 6:19 PM Dylan Whyte<d.whyte at proxmox.com>  wrote:
> > > 
> > > Prior to this, during an interactive restore, if a directory was matched
> > > via a pattern match or selection, only the empty directory would be
> > > restored, and not its contents.
> > Why not simply use "**" if you want to restore a whole tree?
> 
> I had originally thought about this, but there are some good reasons for the
> patch:
> 
>  * I believe there is an expectation when selecting a directory for
>    restore, that you would like for the entire directory to be restored
>    (unless any sub-directory is explicitly excluded).
>  * The 'select' command doesn't do pattern matching, so it wouldn't be
>    able to use '**' to restore the directory. This point doesn't apply
>    to 'find' and 'restore --pattern'.

Fair points.
I don't have particularly hard feelings about this behavior other than
that it's a change people who're already used to it might not expect.

>  * With the current implementation, '**' won't restore empty
>    sub-directories of a matched directory, in spite of the fact that
>    they appear in the match list.

That sounds like a bug.

Now, with your patch getting rid of the `matches_stack` to keep track
of whether or not we're currently extracting, have you tested nested
alternating include-excludes?

include a/
exclude a/b
include a/b/c

where upon leaving from 'c' to 'b' we need to be back in 'exclude' mode
and when leaving from 'b' to 'a' we need to be back in 'include' mode?





More information about the pbs-devel mailing list