@@ -5,7 +5,7 @@ use std::{
55} ;
66
77use gix:: { Repository , bstr:: ByteSlice } ;
8- use log:: info;
8+ use log:: { error , info} ;
99
1010use crate :: config:: Config ;
1111
@@ -136,19 +136,23 @@ impl GitService {
136136 }
137137
138138 fn fetch_origin ( & self ) -> Result < ( ) , GitServiceError > {
139- let auth_url = self . config . git_config . auth_able_url ( ) ;
140-
141139 let remote = self
142140 . repo
143- . find_fetch_remote ( Some ( auth_url. as_bytes ( ) . as_bstr ( ) ) )
144- . map_err ( GitServiceError :: FailedFetchOriginUrl ) ?;
141+ . find_remote ( "origin" )
142+ . map_err ( GitServiceError :: FailedFetchOrigin ) ?;
143+
144+ let remote = remote. with_url ( self . config . git_config . auth_able_url ( ) . as_bytes ( ) . as_bstr ( ) )
145+ . map_err ( |err| GitServiceError :: FailedOperation ( format ! ( "Failed to set remote URL: {}" , err) ) ) ?;
145146
146147 let should_interrupt = AtomicBool :: new ( false ) ;
147148 let mut progress = gix:: progress:: Discard ;
148149
149- let _outcome = remote
150- . connect ( gix:: remote:: Direction :: Fetch )
151- . map_err ( GitServiceError :: FailedRemoteConnect ) ?
150+ let connection = remote. connect ( gix:: remote:: Direction :: Fetch ) . map_err ( |e| {
151+ error ! ( "remote connect error: {:?}" , e) ;
152+ GitServiceError :: FailedRemoteConnect ( e)
153+ } ) ?;
154+
155+ let _outcome = connection
152156 . prepare_fetch ( & mut progress, Default :: default ( ) )
153157 . map_err ( GitServiceError :: FailedRemotePrepareFetch ) ?
154158 . receive ( & mut progress, & should_interrupt)
@@ -319,7 +323,7 @@ pub enum GitServiceError {
319323 FailedCloneBranchConfig ( gix:: refs:: name:: Error ) ,
320324 FailedFetch ( gix:: clone:: fetch:: Error ) ,
321325 FailedCheckout ( gix:: clone:: checkout:: main_worktree:: Error ) ,
322- FailedFetchOriginUrl ( gix:: remote:: find:: for_fetch :: Error ) ,
326+ FailedFetchOrigin ( gix:: remote:: find:: existing :: Error ) ,
323327 FailedRemoteConnect ( gix:: remote:: connect:: Error ) ,
324328 FailedRemotePrepareFetch ( gix:: remote:: fetch:: prepare:: Error ) ,
325329 FailedRemoteReceive ( gix:: remote:: fetch:: Error ) ,
@@ -354,7 +358,7 @@ impl std::fmt::Display for GitServiceError {
354358 }
355359 GitServiceError :: FailedFetch ( _) => write ! ( f, "Failed to fetch repository" ) ,
356360 GitServiceError :: FailedCheckout ( _) => write ! ( f, "Failed to checkout worktree" ) ,
357- GitServiceError :: FailedFetchOriginUrl ( _) => write ! ( f, "Failed to find origin remote" ) ,
361+ GitServiceError :: FailedFetchOrigin ( _) => write ! ( f, "Failed to find origin remote" ) ,
358362 GitServiceError :: FailedRemoteConnect ( _) => write ! ( f, "Failed to connect remote" ) ,
359363 GitServiceError :: FailedRemotePrepareFetch ( _) => {
360364 write ! ( f, "Failed to prepare remote fetch" )
@@ -411,8 +415,8 @@ impl std::fmt::Debug for GitServiceError {
411415 GitServiceError :: FailedCheckout ( err) => {
412416 write ! ( f, "GitServiceError::FailedCheckout({:?})" , err)
413417 }
414- GitServiceError :: FailedFetchOriginUrl ( err) => {
415- write ! ( f, "GitServiceError::FailedFetchOriginUrl ({:?})" , err)
418+ GitServiceError :: FailedFetchOrigin ( err) => {
419+ write ! ( f, "GitServiceError::FailedFetchOrigin ({:?})" , err)
416420 }
417421 GitServiceError :: FailedRemoteConnect ( err) => {
418422 write ! ( f, "GitServiceError::FailedRemoteConnect({:?})" , err)
0 commit comments