diff options
author | Melody Horn <melody@boringcactus.com> | 2021-04-22 21:18:03 -0600 |
---|---|---|
committer | Melody Horn <melody@boringcactus.com> | 2021-04-22 21:18:03 -0600 |
commit | abaa66ee80ef6b7bd6bc9694e363c04dc43fcf0f (patch) | |
tree | 7c25b35bbc731def241e120c3cf956f0c292f9c2 /src | |
parent | 66a0f6cb6592eedc6c357f3bb02840dc93e7d05d (diff) | |
download | gityeet-abaa66ee80ef6b7bd6bc9694e363c04dc43fcf0f.tar.gz gityeet-abaa66ee80ef6b7bd6bc9694e363c04dc43fcf0f.zip |
sort by newest commit
Diffstat (limited to 'src')
-rw-r--r-- | src/state.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/state.rs b/src/state.rs index 9a2488b..7c33086 100644 --- a/src/state.rs +++ b/src/state.rs @@ -42,7 +42,14 @@ fn find_repos_in(dir: impl AsRef<Path>) -> Result<Vec<Repository>> { impl State { pub async fn discover(root: impl AsRef<Path>) -> Result<Self> { let root = root.as_ref(); - let data = find_repos_in(root)?; + let mut data = find_repos_in(root)?; + data.sort_by_key(|repo| { + let mut revwalk = repo.revwalk().expect("revwalk failed?"); + revwalk.set_sorting(git2::Sort::TIME).expect("bruh"); + revwalk + .map(|commit| repo.find_commit(commit.expect("yeet")).expect("sdfji").time()) + .max() + }); Ok(Self { root: root.to_owned(), data }) } |