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
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.
2018-02-022.1.32.1.3Andrew Gallant
2018-02-02windows: more carefuly is_dir checkingAndrew Gallant
This fixes a bug where a symlink was followed even if the user did not request it. Namely, on Windows, a symlink can be interpreted as both a symlink and a directory, given our new is_dir checking.
2018-02-02windows: use entry file typeAndrew Gallant
Using fs::metadata will always read through a link, and we want to preserve the type of the original entry.
2018-02-02gitignore: add tmp dirAndrew Gallant
2018-02-022.1.22.1.2Andrew Gallant
2018-02-02windows: fix OneDrive traversalsAndrew Gallant
This commit fixes a bug on Windows where walkdir refused to traverse directories that resided on OneDrive via its "file on demand" strategy. The specific bug is that Rust's standard library treats a reparse point (which is what OneDrive uses) as distinct from a file or directory, which wreaks havoc on any code that uses FileType::{is_file, is_dir}. We fix this by checking the directory status of a file by looking only at whether its directory bit is set. This bug was originally reported in ripgrep: https://github.com/BurntSushi/ripgrep/issues/705 It has also been filed upstream: https://github.com/rust-lang/rust/issues/46484 And has a pending fix: https://github.com/rust-lang/rust/pull/47956
2018-02-022.1.12.1.1Andrew Gallant
2018-02-02traversal: more robust error handlingAndrew Gallant
This fixes a bug in walkdir that happened on Windows when following symlinks. It was triggered when opening a handle to the symlink failed. In particular, this resulted in the two stacks in the walkdir iterator getting out of sync. At some point, this tripped a panic when popping from one stack would be fine but popping from the other failed because it was empty. We fix this by only pushing to both stacks if and only if both pushes would succeed. This bug was found via ripgrep. See: https://github.com/BurntSushi/ripgrep/issues/633#issuecomment-339076246
2018-01-312.1.02.1.0Andrew Gallant
2018-01-31errors: keep context when converting to io::ErrorGarrett Berg
This commit tweaks the `From<walkdir::Error> for io::Error` implementation to always retain the current context when constructing the `io::Error`. This differs from the previous implementation in that the original raw I/O error is no longer returned. To compensate, a new method, `into_io_error`, has been added which returns the original I/O error, if one exists. We do not consider this a breaking change because the documentation for the `From` impl always stated that it existed for ergonomic reasons. Arguably, the implementation in this commit is a more faithful reflection of that documentation. This commit also clears up the public documentation surrounding the aforementioned methods.
2018-01-17docs: fix a couple broken linksJason Grlicky
2018-01-01deps: bump quickcheck to 0.6 and rand to 0.4Igor Gnatenko
2017-10-222.0.12.0.1Andrew Gallant
2017-10-22doc: formattingAndrew Gallant
Doc strings on public items should always start with a short one sentence description. This is for readability purposes, and also to make the display reasonable in rustdoc.
2017-10-21deps: remove winapi and kernel322.0.0Andrew Gallant
These are extraneous at this point. The Windows specific logic is now encapsulated in the same-file crate.
2017-10-21doc: bump version number to 2Andrew Gallant
2017-10-21deps: upgrade to same-file 1.0Andrew Gallant
2017-10-21symlinks: optimize check loop on WindowsAndrew Gallant
Broadly speaking, this commit is an attempt to fix this issue: https://github.com/BurntSushi/ripgrep/issues/633 It was reported that symlink checking was taking a long amount of time, and that one possible way to fix this was to reduce number of times a file descriptor is opened. In this commit, we amortize opening file descriptors by keeping a file handle open for each ancestor in the directory tree. We also open a handle for the candidate file path at most once, instead of once every iteration. Note that we only perform this optimization on Windows, where opening a file handle seems inordinately expensive. In particular, this now causes us to potentially open more file descriptors than the limit set by the user, which only happens when following symbolic links. We document this behavior.
2017-10-21style: switch from try! to ?Andrew Gallant
2017-10-21doc: touchupsAndrew Gallant
2017-10-21unix: actually export DirEntryExtAndrew Gallant
2017-10-21formatting: misc and wrap to 80 colsAndrew Gallant
2017-10-21ci: bump to Rust 1.17Andrew Gallant
2017-10-21symlink: rename symbolic_link to symlinkAndrew Gallant
Fixes #80
2017-10-21examples: upgrade to docopt 0.8Andrew Gallant
2017-10-07fix formattingAndrew Gallant
2017-10-07add `io_error` to inspect the underlying `io::Error`Niv Kaminer
2017-10-05Duplicate rust beta being run, should be nightlyAlex Gurganus
2017-09-30Revert changes in READMEopilarium
2017-09-30executing try_main function is useless in no_run blocksopilarium
2017-09-30no_run attribute instead of rust,no_runopilarium
rust syntax is by default
2017-09-30text annotation is betteropilarium
2017-08-04Use doc from std::os::unix::fs::DirEntryExt for trait ↵Jérémie Lawson
walkdir::unix::DirEntryExt. Moved trait implementation for DirEntry in module unix.
2017-08-04Move DirEntry::ino method to an extension traitAshley Mannix
Fixes #46
2017-08-04Make WalkDir Send + SyncJérémie Lawson
Fixes #41
2017-07-31Derive Debug for public structsThayne McCombs
Fixes #34
2017-07-25doc: do not repeat the efficient-ness of it allTshepang Lekhonkhobe
Also, define 'efficient'
2017-07-21Document why unwraps won't failJosh Holmer
2017-07-17Correct walkdir docsAlisha
2017-07-17Add osx build to .travis.yml (#72)Ashley
Add osx build to .travis.yml
2017-07-17Added links to documentation (#71)Ashley