[Reproducible-commits] [disorderfs] 01/01: Add --sort-dirents=yes|no option for forcing deterministic.
Chris Lamb
chris at chris-lamb.co.uk
Tue Aug 23 12:14:57 UTC 2016
This is an automated email from the git hooks/post-receive script.
lamby pushed a commit to branch master
in repository disorderfs.
commit 2aae3259c22c9c992db09f9d450d4bae51a59936
Author: Chris Lamb <lamby at debian.org>
Date: Tue Aug 23 13:13:23 2016 +0100
Add --sort-dirents=yes|no option for forcing deterministic.
Signed-off-by: Chris Lamb <lamby at debian.org>
---
disorderfs.1.txt | 6 ++++++
disorderfs.cpp | 7 +++++++
2 files changed, 13 insertions(+)
diff --git a/disorderfs.1.txt b/disorderfs.1.txt
index a38e41c..807dc87 100644
--- a/disorderfs.1.txt
+++ b/disorderfs.1.txt
@@ -51,6 +51,12 @@ Options specific to *disorderfs*:
*--reverse-dirents=yes|no*::
Whether or not to return directory entries in reverse order (default: yes).
+*--sort-dirents=yes|no*::
+ Whether or not to return directory entries in sorted order (default: no).
+ +
+ Note that you need to explictly override the default *--reverse-dirents=no*
+ to get results in expected order.
+
*--pad-blocks='N'*::
Add 'N' to the st_blocks field in struct stat(2) (default: 1).
diff --git a/disorderfs.cpp b/disorderfs.cpp
index 6272897..75d38db 100644
--- a/disorderfs.cpp
+++ b/disorderfs.cpp
@@ -53,6 +53,7 @@ namespace {
int multi_user{0};
int shuffle_dirents{0};
int reverse_dirents{1};
+ int sort_dirents{0};
int pad_blocks{1};
int share_locks{0};
};
@@ -189,6 +190,8 @@ namespace {
DISORDERFS_OPT("--shuffle-dirents=yes", shuffle_dirents, true),
DISORDERFS_OPT("--reverse-dirents=no", reverse_dirents, false),
DISORDERFS_OPT("--reverse-dirents=yes", reverse_dirents, true),
+ DISORDERFS_OPT("--sort-dirents=no", sort_dirents, false),
+ DISORDERFS_OPT("--sort-dirents=yes", sort_dirents, true),
DISORDERFS_OPT("--pad-blocks=%i", pad_blocks, 0),
DISORDERFS_OPT("--share-locks=no", share_locks, false),
DISORDERFS_OPT("--share-locks=yes", share_locks, true),
@@ -214,6 +217,7 @@ namespace {
std::clog << " --multi-user=yes|no allow multiple users to access overlay (requires root; default: no)" << std::endl;
std::clog << " --shuffle-dirents=yes|no randomly shuffle dirents? (default: no)" << std::endl;
std::clog << " --reverse-dirents=yes|no reverse dirent order? (default: yes)" << std::endl;
+ std::clog << " --sort-dirents=yes|no sort dirents deterministically instead (default: no)" << std::endl;
std::clog << " --pad-blocks=N add N to st_blocks (default: 1)" << std::endl;
std::clog << " --share-locks=yes|no share locks with underlying filesystem (BUGGY; default: no)" << std::endl;
std::clog << std::endl;
@@ -406,6 +410,9 @@ int main (int argc, char** argv)
while ((res = readdir_r(d, &dirent_storage, &dirent_p)) == 0 && dirent_p) {
dirents->emplace_back(dirent_p->d_name);
}
+ if (config.sort_dirents) {
+ std::sort(dirents->begin(), dirents->end());
+ }
if (config.reverse_dirents) {
std::reverse(dirents->begin(), dirents->end());
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/disorderfs.git
More information about the Reproducible-commits
mailing list