@@ -68,7 +68,7 @@ public static void EnsureLocalBranchExistsForCurrentBranch(this IRepository repo
6868
6969 var repoTipId = repoTip . Id ;
7070
71- if ( repo . Branches . All ( b => b . CanonicalName != localCanonicalName ) )
71+ if ( repo . Branches . All ( b => ! b . CanonicalName . IsEquivalentTo ( localCanonicalName ) ) )
7272 {
7373 log . Info ( isBranch ? $ "Creating local branch { localCanonicalName } "
7474 : $ "Creating local branch { localCanonicalName } pointing at { repoTipId } ") ;
@@ -156,17 +156,20 @@ public static void CreateOrUpdateLocalBranchesFromRemoteTrackingOnes(this IRepos
156156 {
157157 var prefix = $ "refs/remotes/{ remoteName } /";
158158 var remoteHeadCanonicalName = $ "{ prefix } HEAD";
159+ var remoteTrackingReferences = repo . Refs
160+ . FromGlob ( prefix + "*" )
161+ . Where ( r => ! r . CanonicalName . IsEquivalentTo ( remoteHeadCanonicalName ) ) ;
159162
160- foreach ( var remoteTrackingReference in repo . Refs . FromGlob ( prefix + "*" ) . Where ( r => r . CanonicalName != remoteHeadCanonicalName ) )
163+ foreach ( var remoteTrackingReference in remoteTrackingReferences )
161164 {
162165 var remoteTrackingReferenceName = remoteTrackingReference . CanonicalName ;
163166 var branchName = remoteTrackingReferenceName . Substring ( prefix . Length ) ;
164167 var localCanonicalName = "refs/heads/" + branchName ;
165168
166169 // We do not want to touch our current branch
167- if ( branchName == repo . Head . FriendlyName ) continue ;
170+ if ( branchName . IsEquivalentTo ( repo . Head . FriendlyName ) ) continue ;
168171
169- if ( repo . Refs . Any ( x => x . CanonicalName == localCanonicalName ) )
172+ if ( repo . Refs . Any ( x => x . CanonicalName . IsEquivalentTo ( localCanonicalName ) ) )
170173 {
171174 var localRef = repo . Refs [ localCanonicalName ] ;
172175 var remotedirectReference = remoteTrackingReference . ResolveToDirectReference ( ) ;
0 commit comments