From 33b6a7381ba2c1587e61c52c8da784e156b1cbfc Mon Sep 17 00:00:00 2001 From: Seb Patane Date: Mon, 14 Nov 2016 17:53:09 +1000 Subject: [PATCH] Don't consider a pre-existing directory in the restore path to be a failure * When a directory already exists, CreateDirAt returns an error stating so * This means that the restoreMetadata step is skipped, so for directories which already exist no file permissions, owners, groups, etc will be restored on them * Not returning the error if it's a "directory exists" error means the metadata will get restored * It also removes the superfluous "error for ...: mkdir ...: file exists" messages * This makes the behaviour of directories consistent with that of files (which always have their content & metadata restored, regardless of whether they existed or not) --- src/restic/node.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/restic/node.go b/src/restic/node.go index 81f3ef8d5..e17215125 100644 --- a/src/restic/node.go +++ b/src/restic/node.go @@ -184,7 +184,7 @@ func (node Node) RestoreTimestamps(path string) error { func (node Node) createDirAt(path string) error { err := fs.Mkdir(path, node.Mode) - if err != nil { + if err != nil && !os.IsExist(err) { return errors.Wrap(err, "Mkdir") }