@@ -7,10 +7,11 @@ use std::{
77    path:: PathBuf , 
88} ; 
99
10- use  gix_diff:: blob:: Sink ; 
11- use  gix_hash:: ObjectId ; 
10+ use  gix_diff:: blob:: { Platform ,   Sink } ; 
11+ use  gix_hash:: { oid ,   ObjectId } ; 
1212use  gix_object:: FindExt ; 
1313use  gix_ref:: bstr:: BStr ; 
14+ use  gix_traverse:: commit:: Simple ; 
1415
1516#[ derive( Clone ,  Copy ,  Debug ,  PartialEq ) ]  
1617pub  enum  Offset  { 
@@ -661,8 +662,9 @@ fn coalesce_blame_entries(lines_blamed: Vec<BlameEntry>) -> Vec<BlameEntry> {
661662
662663// TODO: do not instantiate anything, get everything passed as argument. 
663664pub  fn  blame_file < T :  gix_object:: Find  + gix_object:: FindHeader > ( 
664-     odb :  T , 
665-     start_id :  ObjectId , 
665+     odb :  & T , 
666+     traverse :  & mut  Simple < & T ,  fn ( & oid )  -> bool > , 
667+     resource_cache :  & mut  Platform , 
666668    worktree_path :  PathBuf , 
667669    file_path :  & BStr , 
668670)  -> Vec < BlameEntry >  { 
@@ -684,39 +686,6 @@ pub fn blame_file<T: gix_object::Find + gix_object::FindHeader>(
684686    // <---><---><-----><-------><-----><-------> 
685687    // <---><---><-----><-------><-----><-><-><-> 
686688
687-     let  mut  traverse = gix_traverse:: commit:: Simple :: new ( Some ( start_id) ,  & odb) ; 
688- 
689-     let  git_dir = worktree_path. join ( ".git" ) ; 
690-     let  index = gix_index:: File :: at ( git_dir. join ( "index" ) ,  gix_hash:: Kind :: Sha1 ,  false ,  Default :: default ( ) ) . unwrap ( ) ; 
691-     let  stack = gix_worktree:: Stack :: from_state_and_ignore_case ( 
692-         worktree_path. clone ( ) , 
693-         false , 
694-         gix_worktree:: stack:: State :: AttributesAndIgnoreStack  { 
695-             attributes :  Default :: default ( ) , 
696-             ignore :  Default :: default ( ) , 
697-         } , 
698-         & index, 
699-         index. path_backing ( ) , 
700-     ) ; 
701-     let  capabilities = gix_fs:: Capabilities :: probe ( & git_dir) ; 
702-     let  mut  resource_cache = gix_diff:: blob:: Platform :: new ( 
703-         Default :: default ( ) , 
704-         gix_diff:: blob:: Pipeline :: new ( 
705-             gix_diff:: blob:: pipeline:: WorktreeRoots  { 
706-                 old_root :  None , 
707-                 new_root :  None , 
708-             } , 
709-             gix_filter:: Pipeline :: new ( Default :: default ( ) ,  Default :: default ( ) ) , 
710-             vec ! [ ] , 
711-             gix_diff:: blob:: pipeline:: Options  { 
712-                 large_file_threshold_bytes :  0 , 
713-                 fs :  capabilities, 
714-             } , 
715-         ) , 
716-         gix_diff:: blob:: pipeline:: Mode :: ToGit , 
717-         stack, 
718-     ) ; 
719- 
720689    // Needed for `to_str`. 
721690    use  gix_object:: bstr:: ByteSlice ; 
722691
0 commit comments