diff --git a/internal/dump/tar.go b/internal/dump/tar.go index 5d3a10f53..86786654a 100644 --- a/internal/dump/tar.go +++ b/internal/dump/tar.go @@ -72,7 +72,7 @@ func tarNode(ctx context.Context, tw *tar.Writer, node *restic.Node, repo restic } header := &tar.Header{ - Name: relPath, + Name: filepath.ToSlash(relPath), Size: int64(node.Size), Mode: int64(node.Mode), Uid: int(node.UID), diff --git a/internal/dump/tar_test.go b/internal/dump/tar_test.go index 3c5ae7b43..fddbef7f0 100644 --- a/internal/dump/tar_test.go +++ b/internal/dump/tar_test.go @@ -147,8 +147,9 @@ func checkTar(t *testing.T, testDir string, srcTar *bytes.Buffer) error { continue } - if filepath.Base(hdr.Name) != match.Name() { - return fmt.Errorf("foldernames don't match got %v want %v", filepath.Base(hdr.Name), match.Name()) + filebase := filepath.ToSlash(match.Name()) + if filepath.Base(hdr.Name) != filebase { + return fmt.Errorf("foldernames don't match got %v want %v", filepath.Base(hdr.Name), filebase) } } else {