Sort directories when generating tarballs

This commit is contained in:
Jakub Beránek 2024-03-30 22:03:11 +01:00
parent 18d9d44bd6
commit 877e8d456d
No known key found for this signature in database
GPG Key ID: 909CD0D26483516B

View File

@ -53,8 +53,11 @@ impl Tarballer {
// Sort files by their suffix, to group files with the same name from
// different locations (likely identical) and files with the same
// extension (likely containing similar data).
let (dirs, mut files) = get_recursive_paths(&self.work_dir, &self.input)
// Sorting of file and directory paths also helps with the reproducibility
// of the resulting archive.
let (mut dirs, mut files) = get_recursive_paths(&self.work_dir, &self.input)
.context("failed to collect file paths")?;
dirs.sort();
files.sort_by(|a, b| a.bytes().rev().cmp(b.bytes().rev()));
// Write the tar into both encoded files. We write all directories