Skip to content

Commit 236f567

Browse files
committed
Replace bisect_entry by lookup_entry_by_path
1 parent f52f463 commit 236f567

File tree

1 file changed

+8
-10
lines changed
  • gitoxide-core/src/repository

1 file changed

+8
-10
lines changed

gitoxide-core/src/repository/log.rs

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,11 @@ fn log_file(repo: gix::Repository, out: &mut dyn std::io::Write, path: BString)
3535
let info = info?;
3636
let commit = repo.find_commit(info.id).unwrap();
3737

38-
let tree_ref = repo.find_tree(commit.tree_id().unwrap()).unwrap();
39-
let tree = tree_ref.decode().unwrap();
38+
let tree = repo.find_tree(commit.tree_id().unwrap()).unwrap();
4039

41-
let Some(entry) = tree.bisect_entry(path.as_ref(), false) else {
40+
let entry = tree.lookup_entry_by_path(path.to_path().unwrap()).unwrap();
41+
42+
let Some(entry) = entry else {
4243
continue;
4344
};
4445

@@ -57,15 +58,12 @@ fn log_file(repo: gix::Repository, out: &mut dyn std::io::Write, path: BString)
5758
.clone()
5859
.into_iter()
5960
.filter(|parent_id| {
60-
let mut buffer = Vec::new();
6161
let parent_commit = repo.find_commit(*parent_id).unwrap();
62-
let parent_tree = repo
63-
.objects
64-
.find_tree(&parent_commit.tree_id().unwrap(), &mut buffer)
65-
.unwrap();
62+
let parent_tree = repo.find_tree(parent_commit.tree_id().unwrap()).unwrap();
63+
let parent_entry = parent_tree.lookup_entry_by_path(path.to_path().unwrap()).unwrap();
6664

67-
if let Some(parent_entry) = parent_tree.bisect_entry(path.as_ref(), false) {
68-
if entry.oid == parent_entry.oid {
65+
if let Some(parent_entry) = parent_entry {
66+
if entry.oid() == parent_entry.oid() {
6967
// The blobs storing the file in `entry` and `parent_entry` are
7068
// identical which means the file was not changed in `commit`.
7169

0 commit comments

Comments
 (0)