@@ -4,7 +4,8 @@ use std::sync::Arc;
44use anyhow:: { Context , Result , anyhow} ;
55use indexmap:: IndexMap ;
66use itertools:: Itertools ;
7- use jj_lib:: backend:: { FileId , MergedTreeId , TreeValue } ;
7+ use jj_lib:: backend:: { CopyId , FileId , MergedTreeId , TreeValue } ;
8+ use jj_lib:: conflicts:: { self , ConflictMarkerStyle , MaterializedTreeValue } ;
89use jj_lib:: merge:: Merge ;
910use jj_lib:: merged_tree:: { MergedTree , MergedTreeBuilder } ;
1011use jj_lib:: ref_name:: { RefNameBuf , RemoteName , RemoteNameBuf , RemoteRefSymbol } ;
@@ -26,6 +27,7 @@ use jj_lib::{
2627 str_util:: StringPattern ,
2728} ;
2829use pollster:: block_on;
30+ use tokio:: io:: AsyncReadExt ;
2931
3032use crate :: messages:: {
3133 AbandonRevisions , BackoutRevisions , CheckoutRevision , CopyChanges , CopyHunk , CreateRef ,
@@ -1422,7 +1424,7 @@ impl Mutation for GitFetch {
14221424 fn execute ( self : Box < Self > , ws : & mut WorkspaceSession ) -> Result < MutationResult > {
14231425 let mut tx = ws. start_transaction ( ) ?;
14241426
1425- let git_repo = match ws. git_repo ( ) ? {
1427+ let git_repo = match ws. git_repo ( ) {
14261428 Some ( git_repo) => git_repo,
14271429 None => precondition ! ( "No git backend" ) ,
14281430 } ;
@@ -1435,9 +1437,9 @@ impl Mutation for GitFetch {
14351437 GitFetch :: AllRemotes { branch_ref } => {
14361438 let branch_name = branch_ref. as_branch ( ) ?;
14371439 for remote_name in git_repo
1438- . remotes ( ) ?
1440+ . remote_names ( )
14391441 . into_iter ( )
1440- . filter_map ( |remote| remote . map ( |remote| remote. to_owned ( ) ) )
1442+ . map ( |remote| remote. to_string ( ) )
14411443 {
14421444 remote_patterns. push ( ( remote_name, Some ( branch_name. to_owned ( ) ) ) ) ;
14431445 }
@@ -1570,14 +1572,12 @@ fn classify_branch_push(
15701572}
15711573
15721574fn read_file_content ( store : & Arc < Store > , tree : & MergedTree , path : & RepoPath ) -> Result < Vec < u8 > > {
1573- use jj_lib:: conflicts:: { self , ConflictMarkerStyle , MaterializedTreeValue } ;
1574-
15751575 let entry = tree. path_value ( path) ?;
15761576 match entry. into_resolved ( ) {
15771577 Ok ( Some ( TreeValue :: File { id, .. } ) ) => {
1578- let mut reader = store. read_file ( path, & id) ?;
1578+ let mut reader = block_on ( store. read_file ( path, & id) ) ?;
15791579 let mut content = Vec :: new ( ) ;
1580- reader. read_to_end ( & mut content) ?;
1580+ block_on ( reader. read_to_end ( & mut content) ) ?;
15811581 Ok ( content)
15821582 }
15831583 Ok ( Some ( _) ) => Ok ( Vec :: new ( ) ) ,
@@ -1718,6 +1718,7 @@ fn update_tree_entry(
17181718 Merge :: normal ( TreeValue :: File {
17191719 id : new_blob,
17201720 executable,
1721+ copy_id : CopyId :: placeholder ( ) ,
17211722 } ) ,
17221723 ) ;
17231724 let new_tree_id = builder. write_tree ( store) ?;
0 commit comments