update syncing files with commits

This commit is contained in:
Pakin 2025-09-08 16:25:11 +07:00
parent 99af64c259
commit c753e40ffd

View file

@ -306,19 +306,38 @@ impl XBuilder {
let commit = repo.find_commit(commit_id).expect("Failed to find commit"); let commit = repo.find_commit(commit_id).expect("Failed to find commit");
let commit_time = commit.time(); let commit_time = commit.time();
println!( // println!(
"{}: {} > {} == {}", // "{}: {} > {} == {}",
commit.id(), // commit.id(),
commit_time.seconds(), // commit_time.seconds(),
last_build_from_base, // last_build_from_base,
commit_time.seconds() >= last_build_from_base // commit_time.seconds() >= last_build_from_base
); // );
if commit_time.seconds() >= last_build_from_base { if commit_time.seconds() >= last_build_from_base {
println!( let tree = commit.tree().expect("Unable to get tree of commit");
"Commit {} [{}]", if let Some(parent) = commit.parent(0).ok() {
commit.id(), let parent_tree = parent.tree().expect("Unable to get tree of parent");
commit.message().unwrap_or("-") let diff = repo
); .diff_tree_to_tree(Some(&parent_tree), Some(&tree), None)
.expect("Unable to diff trees");
let dres = diff.foreach(
&mut |delta, _| {
if let Some(path) = delta.new_file().path() {
let fpath = path.to_str().unwrap().to_string();
if !result.contains(&fpath.clone()) {
result.push(fpath);
}
}
true
},
None,
None,
None,
);
if dres.is_err() {
eprintln!("Error while diffing trees: {}", dres.err().unwrap());
}
}
} }
} }
} }