Skip to content

Commit 4271ff7

Browse files
cruesslerByron
authored andcommitted
Walk commits in topological order
1 parent 0f92ff6 commit 4271ff7

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

gitoxide-core/src/repository/blame.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ pub fn blame_file(mut repo: gix::Repository, file: &OsStr, out: impl std::io::Wr
77
repo.object_cache_size_if_unset(repo.compute_object_cache_size_for_tree_diffs(&**repo.index_or_empty()?));
88

99
let suspect = repo.head()?.peel_to_commit_in_place()?;
10-
let traverse: Vec<_> = gix::traverse::commit::Simple::new(Some(suspect.id), &repo.objects)
11-
.sorting(gix::traverse::commit::simple::Sorting::ByCommitTime(
12-
gix::traverse::commit::simple::CommitTimeOrder::NewestFirst,
13-
))?
14-
.collect();
10+
let traverse: Vec<_> =
11+
gix::traverse::commit::topo::Builder::from_iters(&repo.objects, [suspect.id], None::<Vec<gix::ObjectId>>)
12+
.build()?
13+
.collect();
1514
let mut resource_cache = repo.diff_resource_cache_for_tree_diff()?;
1615

1716
let work_dir: PathBuf = repo

gix-blame/tests/blame.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ struct Fixture {
112112
odb: gix_odb::Handle,
113113
resource_cache: gix_diff::blob::Platform,
114114
suspect: ObjectId,
115-
commits: Vec<Result<gix_traverse::commit::Info, gix_traverse::commit::simple::Error>>,
115+
commits: Vec<Result<gix_traverse::commit::Info, gix_traverse::commit::topo::Error>>,
116116
}
117117

118118
impl Fixture {
@@ -139,10 +139,8 @@ impl Fixture {
139139

140140
let head_id = reference.peel_to_id_in_place(&store, &odb)?;
141141

142-
let commits: Vec<_> = gix_traverse::commit::Simple::new(Some(head_id), &odb)
143-
.sorting(gix_traverse::commit::simple::Sorting::ByCommitTime(
144-
gix_traverse::commit::simple::CommitTimeOrder::NewestFirst,
145-
))?
142+
let commits: Vec<_> = gix_traverse::commit::topo::Builder::from_iters(&odb, [head_id], None::<Vec<ObjectId>>)
143+
.build()?
146144
.collect();
147145

148146
let git_dir = worktree_path.join(".git");

0 commit comments

Comments
 (0)