@@ -12,6 +12,7 @@ use crate::{
12
12
} ;
13
13
use gix_features:: threading:: OwnShared ;
14
14
use gix_object:: bstr:: ByteSlice ;
15
+ use gix_path:: relative_path:: RelativePath ;
15
16
use std:: ffi:: OsStr ;
16
17
use std:: { borrow:: Cow , path:: PathBuf } ;
17
18
@@ -345,23 +346,30 @@ impl ThreadSafeRepository {
345
346
346
347
refs. write_reflog = config:: cache:: util:: reflog_or_default ( config. reflog , worktree_dir. is_some ( ) ) ;
347
348
refs. namespace . clone_from ( & config. refs_namespace ) ;
348
- let replacements = replacement_objects_refs_prefix ( & config. resolved , lenient_config, filter_config_section) ?
349
- . and_then ( |prefix| {
350
- let _span = gix_trace:: detail!( "find replacement objects" ) ;
351
- let platform = refs. iter ( ) . ok ( ) ?;
352
- let iter = platform. prefixed ( prefix. as_bstr ( ) . try_into ( ) . ok ( ) ?) . ok ( ) ?;
353
- let replacements = iter
354
- . filter_map ( Result :: ok)
355
- . filter_map ( |r : gix_ref:: Reference | {
356
- let target = r. target . try_id ( ) ?. to_owned ( ) ;
357
- let source =
358
- gix_hash:: ObjectId :: from_hex ( r. name . as_bstr ( ) . strip_prefix ( prefix. as_slice ( ) ) ?) . ok ( ) ?;
359
- Some ( ( source, target) )
360
- } )
361
- . collect :: < Vec < _ > > ( ) ;
362
- Some ( replacements)
363
- } )
364
- . unwrap_or_default ( ) ;
349
+ let prefix = replacement_objects_refs_prefix ( & config. resolved , lenient_config, filter_config_section) ?;
350
+ let replacements = match prefix {
351
+ Some ( prefix) => {
352
+ let prefix: & RelativePath = prefix. as_bstr ( ) . try_into ( ) ?;
353
+
354
+ Some ( prefix) . and_then ( |prefix| {
355
+ let _span = gix_trace:: detail!( "find replacement objects" ) ;
356
+ let platform = refs. iter ( ) . ok ( ) ?;
357
+ let iter = platform. prefixed ( prefix) . ok ( ) ?;
358
+ let replacements = iter
359
+ . filter_map ( Result :: ok)
360
+ . filter_map ( |r : gix_ref:: Reference | {
361
+ let target = r. target . try_id ( ) ?. to_owned ( ) ;
362
+ let source =
363
+ gix_hash:: ObjectId :: from_hex ( r. name . as_bstr ( ) . strip_prefix ( prefix. as_ref ( ) ) ?) . ok ( ) ?;
364
+ Some ( ( source, target) )
365
+ } )
366
+ . collect :: < Vec < _ > > ( ) ;
367
+ Some ( replacements)
368
+ } )
369
+ }
370
+ None => None ,
371
+ } ;
372
+ let replacements = replacements. unwrap_or_default ( ) ;
365
373
366
374
Ok ( ThreadSafeRepository {
367
375
objects : OwnShared :: new ( gix_odb:: Store :: at_opts (
0 commit comments