fn walk(top: &Path, dir: &Path, out: &mut Vec<(String, Vec<Version>)>)
A folder holding versions is a file’s; the others hold files’ folders.