@@ -344,14 +344,26 @@ public void GetSubmoduleHeadCommitSha()
344
344
var gitDir = temp . CreateDirectory ( ) ;
345
345
var workingDir = temp . CreateDirectory ( ) ;
346
346
347
- var basicSubmoduleGitDir = temp . CreateDirectory ( ) ;
347
+ var submoduleGitDir = temp . CreateDirectory ( ) ;
348
348
349
- var basicSubmoduleWorkingDir = workingDir . CreateDirectory ( "sub" ) . CreateDirectory ( "abc" ) ;
350
- basicSubmoduleWorkingDir . CreateFile ( ".git" ) . WriteAllText ( "gitdir: " + basicSubmoduleGitDir . Path + "\t \v \f \r \n \n \r " ) ;
349
+ var submoduleWorkingDir = workingDir . CreateDirectory ( "sub" ) . CreateDirectory ( "abc" ) ;
350
+ submoduleWorkingDir . CreateFile ( ".git" ) . WriteAllText ( "gitdir: " + submoduleGitDir . Path + "\t \v \f \r \n \n \r " ) ;
351
351
352
- var basicSubmoduleRefsHeadsDir = basicSubmoduleGitDir . CreateDirectory ( "refs" ) . CreateDirectory ( "heads" ) ;
352
+ var basicSubmoduleRefsHeadsDir = submoduleGitDir . CreateDirectory ( "refs" ) . CreateDirectory ( "heads" ) ;
353
353
basicSubmoduleRefsHeadsDir . CreateFile ( "master" ) . WriteAllText ( "0000000000000000000000000000000000000000" ) ;
354
- basicSubmoduleGitDir . CreateFile ( "HEAD" ) . WriteAllText ( "ref: refs/heads/master" ) ;
354
+ submoduleGitDir . CreateFile ( "HEAD" ) . WriteAllText ( "ref: refs/heads/master" ) ;
355
+
356
+ var repository = new GitRepository ( GitEnvironment . Empty , GitConfig . Empty , gitDir . Path , gitDir . Path , workingDir . Path ) ;
357
+ Assert . Equal ( "0000000000000000000000000000000000000000" , repository . ReadSubmoduleHeadCommitSha ( submoduleWorkingDir . Path ) ) ;
358
+ }
359
+
360
+ [ Fact ]
361
+ public void GetOldStyleSubmoduleHeadCommitSha ( )
362
+ {
363
+ using var temp = new TempRoot ( ) ;
364
+
365
+ var gitDir = temp . CreateDirectory ( ) ;
366
+ var workingDir = temp . CreateDirectory ( ) ;
355
367
356
368
// this is a unusual but legal case which can occur with older versions of Git or other tools.
357
369
// see https://git-scm.com/docs/gitsubmodules#_forms for more details.
@@ -362,7 +374,6 @@ public void GetSubmoduleHeadCommitSha()
362
374
oldStyleSubmoduleGitDir . CreateFile ( "HEAD" ) . WriteAllText ( "ref: refs/heads/branch1" ) ;
363
375
364
376
var repository = new GitRepository ( GitEnvironment . Empty , GitConfig . Empty , gitDir . Path , gitDir . Path , workingDir . Path ) ;
365
- Assert . Equal ( "0000000000000000000000000000000000000000" , repository . ReadSubmoduleHeadCommitSha ( basicSubmoduleWorkingDir . Path ) ) ;
366
377
Assert . Equal ( "1111111111111111111111111111111111111111" , repository . ReadSubmoduleHeadCommitSha ( oldStyleSubmoduleWorkingDir . Path ) ) ;
367
378
}
368
379
}
0 commit comments