1
Use `gitoxide` for `list_files_git` by Byron · Pull Request #13592 · rust-lang/c...
source link: https://github.com/rust-lang/cargo/pull/13592
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Related to #10150.
Tasks
- update
gix
to v0.60 - assure this is tested (currently only git-tests run with
git2
andgitoxide
) - allow
list_files_git
to usegitoxide
if it is enabled as feature. - use dirwalk iterator
- use new release of
gix
with necessary updates
Review Notes
As this PR has come a long way, I decided to keep a few of the steps leading up to the final state, showing the PR's evolution in the hope it helps the review.
- Would it be better to simply use
gitoxide
for this without a switch? I don't think
it will cause more trouble thangit2
, and if there is an issue I will fix it with priority. - In one test, the walk resolves a symlink to a submodule to individual files, including the
.git/*
folder contained in the submodule which is ignored by the walk, i.e.submodule/*
does not contain it, butsubmodule-link/*
does. This is fixed in the gitoxide version, and thegit2
version. - I noticed that symlinks are resolved for packaging and are allowed to point to anywhere, even outside of package root. I left it, but felt that maybe this should be reconsidered.
Remarks
- I love the test-suite! It's incredibly exhaustive to the point where it uncovers shortcomings in
gitoxide
, which I greatly appreciate. - I also love
git2
as it's API for many things leads to pretty idiomatic code, and sometimes I really have to work to match it. The example here is the initialdirwalk()
method which requires a delegate as it doesn't just collect into aVec
likegit2
does (for good reason). Turning that into an iterator viadirwalk_iter()
makes it far more usable, and will definitely be good for performance as the dirwalk work is offloaded into its own thread.
weihanglo reacted with thumbs up emoji
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK