write no empty commits

This commit is contained in:
Quaternions 2024-01-11 20:29:04 -08:00
parent 39a30c03ef
commit 6b84c819fe

@ -752,29 +752,39 @@ async fn write_commit(config:WriteCommitConfig,b:Result<AResult<(AssetVersion,De
let tree_id={ let tree_id={
let mut tree_index = repo.index()?; let mut tree_index = repo.index()?;
tree_index.add_all([config.output_folder].iter(),git2::IndexAddOption::DEFAULT,None)?; tree_index.add_all([config.output_folder].iter(),git2::IndexAddOption::DEFAULT,None)?;
if tree_index.len()==0{
println!("tree_index.len()==0");
return Ok(());
}
tree_index.write_tree()? tree_index.write_tree()?
}; };
let tree=repo.find_tree(tree_id)?; let tree=repo.find_tree(tree_id)?;
let mut parents=Vec::new();
match repo.head(){ match repo.head(){
Ok(reference)=>repo.commit( Ok(reference)=>{
Some("HEAD"),//update_ref let commit=reference.peel_to_commit()?;
&sig,//author let commit_tree=commit.tree()?;
&sig,//commiter let diff=repo.diff_tree_to_tree(Some(&commit_tree),Some(&tree),None)?;
&format!("v{}", asset_version.assetVersionNumber),//message if diff.deltas().count()==0{
&tree,//tree (basically files) println!("no changes");
&[&reference.peel_to_commit()?],//parents return Ok(());
)?, }
Err(_)=>repo.commit( parents.push(commit);
Some("HEAD"),//update_ref },
&sig,//author Err(e)=>println!("repo head error {:?}",e),
&sig,//commiter
&format!("v{}", asset_version.assetVersionNumber),//message
&tree,//tree (basically files)
&[],//parents
)?,
}; };
repo.commit(
Some("HEAD"),//update_ref
&sig,//author
&sig,//commiter
&format!("v{}", asset_version.assetVersionNumber),//message
&tree,//tree (basically files)
parents.iter().collect::<Vec<&git2::Commit<'_>>>().as_slice(),//parents
)?;
//commit //commit
Ok(()) Ok(())
} }