Skip to content

Commit 0d8e16d

Browse files
author
Josh Huber
committed
correct behavior for case-insensitive platforms
1 parent e263a31 commit 0d8e16d

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

src/GitVersionCore.Tests/NamedConfigFileLocatorTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ public void DoNotThrowWhenWorkingAndRepoPathsAreSame()
5252
Should.NotThrow(() => { configFileLocator.Verify(workingPath, repoPath, fileSystem); });
5353
}
5454

55+
[Test]
56+
[Platform(Exclude = "Linux,Unix")]
57+
public void DoNotThrowWhenWorkingAndRepoPathsAreSame_WithDifferentCasing()
58+
{
59+
workingPath = DefaultRepoPath.ToLower();
60+
SetupConfigFileContent(string.Empty, path: workingPath);
61+
62+
Should.NotThrow(() => { configFileLocator.Verify(workingPath, repoPath, fileSystem); });
63+
}
64+
5565
[Test]
5666
public void DoNotThrowWhenConfigFileIsInSubDirectoryOfRepoPath()
5767
{

src/GitVersionCore.Tests/TestFileSystem.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ namespace GitVersionCore.Tests
99
{
1010
public class TestFileSystem : IFileSystem
1111
{
12-
Dictionary<string, byte[]> fileSystem = new Dictionary<string, byte[]>(StringComparer.OrdinalIgnoreCase);
12+
private static IEqualityComparer<string> fileSystemCasingComparer = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase;
13+
Dictionary<string, byte[]> fileSystem = new Dictionary<string, byte[]>(fileSystemCasingComparer);
1314

1415
public void Copy(string @from, string to, bool overwrite)
1516
{

src/GitVersionCore/Configuration/NamedConfigFileLocator.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ private void WarnAboutAmbiguousConfigFileSelection(string workingDirectory, stri
3535
var workingConfigFile = GetConfigFilePath(workingDirectory, fileSystem);
3636
var projectRootConfigFile = GetConfigFilePath(projectRootDirectory, fileSystem);
3737

38-
if (Path.GetFullPath(workingConfigFile).Equals(Path.GetFullPath(projectRootConfigFile)))
38+
var fileSystemCasingComparer = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase;
39+
if (Path.GetFullPath(workingConfigFile).Equals(Path.GetFullPath(projectRootConfigFile), fileSystemCasingComparer))
3940
return;
4041

4142
var hasConfigInWorkingDirectory = fileSystem.Exists(workingConfigFile);

0 commit comments

Comments
 (0)