@@ -356,19 +356,19 @@ private void CreateOrUpdateLocalBranchesFromRemoteTrackingOnes(string remoteName
356356 }
357357 }
358358
359- public void EnsureLocalBranchExistsForCurrentBranch ( IRemote ? remote , string ? currentBranch )
359+ public void EnsureLocalBranchExistsForCurrentBranch ( IRemote remote , string ? currentBranch )
360360 {
361361 remote . NotNull ( ) ;
362362
363363 if ( currentBranch . IsNullOrEmpty ( ) ) return ;
364364
365- var isRef = currentBranch . Contains ( "refs" ) ;
366- var isBranch = currentBranch . Contains ( "refs/heads" ) ;
367- var localCanonicalName = ! isRef
368- ? "refs/heads/" + currentBranch
369- : isBranch
365+ var referencePrefix = "refs/" ;
366+ var isLocalBranch = currentBranch . StartsWith ( ReferenceName . LocalBranchPrefix ) ;
367+ var localCanonicalName = ! currentBranch . StartsWith ( referencePrefix )
368+ ? ReferenceName . LocalBranchPrefix + currentBranch
369+ : isLocalBranch
370370 ? currentBranch
371- : currentBranch . Replace ( "refs/" , "refs/heads/" ) ;
371+ : ReferenceName . LocalBranchPrefix + currentBranch [ referencePrefix . Length .. ] ;
372372
373373 var repoTip = this . repository . Head . Tip ;
374374
@@ -387,14 +387,14 @@ public void EnsureLocalBranchExistsForCurrentBranch(IRemote? remote, string? cur
387387 var referenceName = ReferenceName . Parse ( localCanonicalName ) ;
388388 if ( this . repository . Branches . All ( b => ! b . Name . Equals ( referenceName ) ) )
389389 {
390- this . log . Info ( isBranch
390+ this . log . Info ( isLocalBranch
391391 ? $ "Creating local branch { referenceName } "
392392 : $ "Creating local branch { referenceName } pointing at { repoTipId } ") ;
393393 this . repository . Refs . Add ( localCanonicalName , repoTipId . Sha ) ;
394394 }
395395 else
396396 {
397- this . log . Info ( isBranch
397+ this . log . Info ( isLocalBranch
398398 ? $ "Updating local branch { referenceName } to point at { repoTipId } "
399399 : $ "Updating local branch { referenceName } to match ref { currentBranch } ") ;
400400 var localRef = this . repository . Refs [ localCanonicalName ] ;
0 commit comments