Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/walkdir.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-01-112.3.02.3.0Andrew Gallant
2020-01-11style: use 'dyn' for trait objectsAndrew Gallant
And also add a `source` method on the `Error` impl. And finally, permit the use of the deprecated `description` method, since removing it would be a breaking change.
2020-01-11msrv: bump to 1.34.0Andrew Gallant
For now, we don't switch to Rust 2018 to avoid creating a larger-than-necessary divergence with the in-progress walkdir 3 rewrite.
2020-01-11ci: switch to GitHub ActionsAndrew Gallant
2020-01-11readme: document MSRV policyAndrew Gallant
2019-07-202.2.92.2.9Andrew Gallant
2019-07-20bug: fastidiously increment oldest_openedAndrew Gallant
A somewhat recent change permitted the `push` function to exit early after `oldest_opened` was incremented, but before a new entry was pushed on to the stack. Specifically, the only way this could happen was if a handle could not be opened to an ancestor path, on Windows only. We fix this by incrementing `oldest_opened` only after we push a new entry to the stack. Credit goes to @LukasKalbertodt for figuring out this bug!
2019-07-20bug: fix use of skip_current_dirLukas Kalbertodt
The method sometimes destroyed an internal invariant by not decreasing `oldest_opened`. That then leads to panics in `push`. We fix this by calling the canonical `pop` function, which is what should have happened from the beginning. This includes a regression test that fails without this fix. Fixes #118, Closes #124
2019-07-20internals: re-arrange implementationAndrew Gallant
This moves the DirEntry and Error types out into their own separate modules. This is prep work to (hopefully) make the impending refactoring (or more likely, rewrite) more palatable.
2019-07-20tests: rewrite themAndrew Gallant
This gets rid of a lot of unnecessary infrastructure around maintaining the directory hierarchy in a tree. This was principally used in order to support effective quickcheck tests, but since we dropped quickcheck, we no longer need such things. We know center tests around the Dir type, which makes setting up the tests simpler and easier to understand.
2019-07-20tests: restructure themAndrew Gallant
This is in preparation to rewrite the tests.
2019-07-20deps: drop quickcheck and randAndrew Gallant
These weren't carrying their weight. Depending on rand is super annoying, so just stop doing it. In particular, we can bring back the minimal version check.
2019-07-20list: add new walkdir-list binaryAndrew Gallant
This supplants the previous "example" which was more like a debugging program. So this commit not only rewrites it (dropping docopt in the process in favor of clap), but moves it to its own non-published binary crate.
2019-07-20deps: bump rand and quickcheckAndrew Gallant
... to 0.6 and 0.8, respectively. We aren't running tests on the MSRV any more any way, so we might as well keep on moving. Unfortunately, the rand ecosystem refuses to advertise and maintain correct minimal versions in their Cargo.toml, so we have to remove the minimal version check.
2019-06-092.2.82.2.8Andrew Gallant
2019-06-09style: allow bare trait objectsAndrew Gallant
Because we aren't ready to bump our MSRV yet.
2019-06-09ci: remove minimal version checkAndrew Gallant
Because rand. Sigh.
2019-06-09deps: update rand to 0.6Andrew Gallant
2019-06-09deps: update quickcheck to 0.8Igor Gnatenko
2019-05-01cleanup: remove unused files from the old daysAndrew Gallant
2019-05-01test: check examples in READMEGuillaume Gomez
PR #119
2019-04-30ci: stop testing on MSRV, build onlyAndrew Gallant
2019-04-30code: remove unnecessary mutAndrew Gallant
2018-11-112.2.72.2.7Andrew Gallant
2018-11-11walkdir: fix root symlink bugAndrew Gallant
This commit fixes a nasty bug where the root path given to walkdir was always reported as a symlink, even when 'follow_links' was enabled. This appears to be a regression introduced by commit 6f72fce as part of fixing BurntSushi/ripgrep#984. The central problem was that since root paths should always be followed, we were creating a DirEntry whose internal file type was always resolved by following a symlink, but whose 'metadata' method still returned the metadata of the symlink and not the target. This was problematic and inconsistent both with and without 'follow_links' enabled. We also fix the documentation. In particular, we make the docs of 'new' more unambiguous, where it previously could have been interpreted as contradictory to the docs on 'DirEntry'. Specifically, 'WalkDir::new' says: If root is a symlink, then it is always followed. But the docs for 'DirEntry::metadata' say This always calls std::fs::symlink_metadata. If this entry is a symbolic link and follow_links is enabled, then std::fs::metadata is called instead. Similarly, 'DirEntry::file_type' said If this is a symbolic link and follow_links is true, then this returns the type of the target. That is, if 'root' is a symlink and 'follow_links' is NOT enabled, then the previous incorrect behavior resulted in 'DirEntry::file_type' behaving as if 'follow_links' was enabled. If 'follow_links' was enabled, then the previous incorrect behavior resulted in 'DirEntry::metadata' reporting the metadata of the symlink itself. We fix this by correctly constructing the DirEntry in the first place, and then adding special case logic to path traversal that will always attempt to follow the root path if it's a symlink and 'follow_links' was not enabled. We also tweak the docs on 'WalkDir::new' to be more precise. Fixes #115
2018-11-07ci: pin to lazy_static 1.1 in CIAndrew Gallant
2018-10-292.2.62.2.6Andrew Gallant
2018-10-29ci: exclude CI filesIgor Gnatenko
PR #114
2018-08-252.2.52.2.5Andrew Gallant
2018-08-25deps: update to quickcheck 0.7Andrew Gallant
2018-08-252.2.42.2.4Andrew Gallant
2018-08-25windows: replace winapi ffi with winapi-utilAndrew Gallant
We do still need winapi for a std-library work-around.
2018-08-252.2.32.2.3Andrew Gallant
2018-08-25deps: update for minimal-versionsJacob Finkelman
PR #112
2018-08-232.2.22.2.2Andrew Gallant
2018-08-23walkdir: add option to stay on same file systemAron Griffis
This commit includes a new method, `same_file_system`, which when enabled, will cause walkdir to only descend into directories that are on the same file system as the root path. Closes #8, Closes #107
2018-08-23DirEntry: add into_path methodAndrew Gallant
This can avoid an allocation and copy in iterator chains that need to produce a PathBuf. PR #100
2018-08-222.2.12.2.1Andrew Gallant
2018-08-22path_is_symlink: fix false positiveAndrew Gallant
This commit fixes a bug where the first path always reported itself as as symlink via `path_is_symlink`. Partially fixes https://github.com/BurntSushi/ripgrep/issues/984
2018-08-22deps: update docopt to 1.0Andrew Gallant
2018-08-052.2.02.2.0Andrew Gallant
2018-08-05msrv: bump minimum Rust to 1.23Andrew Gallant
lazy_static increased there's, so we might as we do ours.
2018-06-13redox: remove uses of Unix-only thingsAndrew Gallant
The code for `cfg(not(any(unix, windows)))` is untested and contained a few errors that this commit cleans up.
2018-06-13Fix compilation on RedoxJeremy Soller
2018-05-27doc: use syntax highlighting in READMEJędrzej
2018-04-10add DirEntry::into_pathRuud van Asseldonk
This can avoid an allocation and copy in iterator chains that need to produce a PathBuf.
2018-02-212.1.42.1.4Andrew Gallant
2018-02-21performance: fix regressionAndrew Gallant
This commit fixes a performance regression introduced in commit 0f4441, which aimed to fix OneDrive traversals. In particular, we added an additional stat call to every directory entry, which can be quite disastrous for performance. We fix this by being more fastidious about reusing the Metadata that comes from fs::DirEntry, which is, conveniently, cheap to acquire specifically on Windows. The performance regression was reported against ripgrep: https://github.com/BurntSushi/ripgrep/issues/820
2018-02-21compile: clean up cfgsAndrew Gallant
In some cases, we were relying on things like "not(unix)" to mean "windows" or "not(windows)" to mean "unix". Instead, we should split this in three cases: unix, windows or not(unix or windows).
2018-02-10doc: improve stdout in contents_first exampleMichael Lamparski
A big potential question on the reader's mind when reviewing these docs is "what will the paths returned by the iterator be relative to?" This is the one example on the page which shows output that could potentially answer that question, and to only see filenames is needlessly discouraging.