@@ -54,7 +54,7 @@ public static void EnsureLocalBranchExistsForCurrentBranch(this IRepository repo
5454
5555 var repoTipId = repoTip . Id ;
5656
57- if ( repo . Branches . All ( b => b . CanonicalName != localCanonicalName ) )
57+ if ( repo . Branches . All ( b => ! String . Equals ( b . CanonicalName , localCanonicalName , StringComparison . OrdinalIgnoreCase ) ) )
5858 {
5959 log . Info ( isBranch ? $ "Creating local branch { localCanonicalName } "
6060 : $ "Creating local branch { localCanonicalName } pointing at { repoTipId } ") ;
@@ -142,8 +142,11 @@ public static void CreateOrUpdateLocalBranchesFromRemoteTrackingOnes(this IRepos
142142 {
143143 var prefix = $ "refs/remotes/{ remoteName } /";
144144 var remoteHeadCanonicalName = $ "{ prefix } HEAD";
145+ var remoteTrackingReferences = repo . Refs
146+ . FromGlob ( prefix + "*" )
147+ . Where ( r => ! r . CanonicalName . IsEquivalentTo ( remoteHeadCanonicalName ) ) ;
145148
146- foreach ( var remoteTrackingReference in repo . Refs . FromGlob ( prefix + "*" ) . Where ( r => r . CanonicalName != remoteHeadCanonicalName ) )
149+ foreach ( var remoteTrackingReference in remoteTrackingReferences )
147150 {
148151 var remoteTrackingReferenceName = remoteTrackingReference . CanonicalName ;
149152 var branchName = remoteTrackingReferenceName . Substring ( prefix . Length ) ;
@@ -152,7 +155,7 @@ public static void CreateOrUpdateLocalBranchesFromRemoteTrackingOnes(this IRepos
152155 // We do not want to touch our current branch
153156 if ( branchName == repo . Head . FriendlyName ) continue ;
154157
155- if ( repo . Refs . Any ( x => x . CanonicalName == localCanonicalName ) )
158+ if ( repo . Refs . Any ( x => x . CanonicalName . IsEquivalentTo ( localCanonicalName ) ) )
156159 {
157160 var localRef = repo . Refs [ localCanonicalName ] ;
158161 var remotedirectReference = remoteTrackingReference . ResolveToDirectReference ( ) ;
0 commit comments