diff --git a/src/GitVersionCore.Tests/ConfigProviderTests.cs b/src/GitVersionCore.Tests/ConfigProviderTests.cs index 3ae8e81d49..933aa2cd5d 100644 --- a/src/GitVersionCore.Tests/ConfigProviderTests.cs +++ b/src/GitVersionCore.Tests/ConfigProviderTests.cs @@ -42,34 +42,6 @@ public void Setup() ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute(); } - [Test] - public void CanReadOldDocument() - { - const string text = @" -assemblyVersioningScheme: MajorMinor -develop-branch-tag: alpha -release-branch-tag: rc -branches: - master: - mode: ContinuousDeployment - dev(elop)?(ment)?$: - mode: ContinuousDeployment - tag: dev - release[/-]: - mode: continuousDeployment - tag: rc -"; - SetupConfigFileContent(text); - var error = Should.Throw(() => configProvider.Provide(repoPath)); - error.Message.ShouldContainWithoutWhitespace(@"GitVersion configuration file contains old configuration, please fix the following errors: -GitVersion branch configs no longer are keyed by regexes, update: - dev(elop)?(ment)?$ -> develop - release[/-] -> release -assemblyVersioningScheme has been replaced by assembly-versioning-scheme -develop-branch-tag has been replaced by branch specific configuration.See https://gitversion.net/docs/configuration/#branch-configuration -release-branch-tag has been replaced by branch specific configuration.See https://gitversion.net/docs/configuration/#branch-configuration"); - } - [Test] public void OverwritesDefaultsWithProvidedConfig() { diff --git a/src/GitVersionCore.Tests/DefaultConfigFileLocatorTests.cs b/src/GitVersionCore.Tests/DefaultConfigFileLocatorTests.cs index 83c7033d2a..55c6a9c73e 100644 --- a/src/GitVersionCore.Tests/DefaultConfigFileLocatorTests.cs +++ b/src/GitVersionCore.Tests/DefaultConfigFileLocatorTests.cs @@ -1,11 +1,9 @@ -using System; using System.IO; using NUnit.Framework; using Shouldly; using GitVersion.Configuration; using GitVersion.Exceptions; using GitVersion; -using GitVersion.Logging; using GitVersionCore.Tests.Helpers; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; @@ -22,6 +20,7 @@ public class DefaultConfigFileLocatorTests : TestBase private string workingPath; private IFileSystem fileSystem; private IConfigProvider configurationProvider; + private IConfigFileLocator configFileLocator; [SetUp] public void Setup() @@ -37,45 +36,12 @@ public void Setup() fileSystem = sp.GetService(); configurationProvider = sp.GetService(); + configFileLocator = sp.GetService(); ShouldlyConfiguration.ShouldMatchApprovedDefaults.LocateTestMethodUsingAttribute(); } - [TestCase(DefaultRepoPath)] - [TestCase(DefaultWorkingPath)] - public void WarnOnExistingGitVersionConfigYamlFile(string path) - { - SetupConfigFileContent(string.Empty, DefaultConfigFileLocator.ObsoleteFileName, path); - - var output = WithDefaultConfigFileLocator(configFileLocator => - { - configFileLocator.Verify(workingPath, repoPath); - }); - - var configFileDeprecatedWarning = $"{DefaultConfigFileLocator.ObsoleteFileName}' is deprecated, use '{DefaultConfigFileLocator.DefaultFileName}' instead"; - output.Contains(configFileDeprecatedWarning).ShouldBe(true); - } - - [TestCase(DefaultRepoPath)] - [TestCase(DefaultWorkingPath)] - public void WarnOnAmbiguousConfigFilesAtTheSameProjectRootDirectory(string path) - { - SetupConfigFileContent(string.Empty, DefaultConfigFileLocator.ObsoleteFileName, path); - SetupConfigFileContent(string.Empty, DefaultConfigFileLocator.DefaultFileName, path); - - var output = WithDefaultConfigFileLocator(configFileLocator => - { - configFileLocator.Verify(workingPath, repoPath); - }); - - var configFileDeprecatedWarning = $"Ambiguous config files at '{path}'"; - output.Contains(configFileDeprecatedWarning).ShouldBe(true); - } - [TestCase(DefaultConfigFileLocator.DefaultFileName, DefaultConfigFileLocator.DefaultFileName)] - [TestCase(DefaultConfigFileLocator.DefaultFileName, DefaultConfigFileLocator.ObsoleteFileName)] - [TestCase(DefaultConfigFileLocator.ObsoleteFileName, DefaultConfigFileLocator.DefaultFileName)] - [TestCase(DefaultConfigFileLocator.ObsoleteFileName, DefaultConfigFileLocator.ObsoleteFileName)] public void ThrowsExceptionOnAmbiguousConfigFileLocation(string repoConfigFile, string workingConfigFile) { var repositoryConfigFilePath = SetupConfigFileContent(string.Empty, repoConfigFile, repoPath); @@ -83,10 +49,7 @@ public void ThrowsExceptionOnAmbiguousConfigFileLocation(string repoConfigFile, var exception = Should.Throw(() => { - WithDefaultConfigFileLocator(configFileLocator => - { - configFileLocator.Verify(workingPath, repoPath); - }); + configFileLocator.Verify(workingPath, repoPath); }); var expecedMessage = $"Ambiguous config file selection from '{workingDirectoryConfigFilePath}' and '{repositoryConfigFilePath}'"; @@ -98,31 +61,7 @@ public void NoWarnOnGitVersionYmlFile() { SetupConfigFileContent(string.Empty, DefaultConfigFileLocator.DefaultFileName, repoPath); - var output = WithDefaultConfigFileLocator(configFileLocator => - { - configurationProvider.Provide(repoPath); - }); - - output.Length.ShouldBe(0); - } - - [Test] - public void WarnOnObsoleteIsDevelopBranchConfigurationSetting() - { - const string text = @" -assembly-versioning-scheme: MajorMinorPatch -branches: - master: - tag: beta - is-develop: true"; - - var exception = Should.Throw(() => - { - LegacyConfigNotifier.Notify(new StringReader(text)); - }); - - const string expectedMessage = "'is-develop' is deprecated, use 'tracks-release-branches' instead."; - exception.Message.ShouldContain(expectedMessage); + Should.NotThrow(() => { configurationProvider.Provide(repoPath); }); } private string SetupConfigFileContent(string text, string fileName, string path) @@ -132,19 +71,5 @@ private string SetupConfigFileContent(string text, string fileName, string path) return fullPath; } - - private string WithDefaultConfigFileLocator(Action action) - { - var stringLogger = string.Empty; - void Action(string info) => stringLogger = info; - - var logAppender = new TestLogAppender(Action); - var log = new Log(logAppender); - - var configFileLocator = new DefaultConfigFileLocator(fileSystem, log); - action(configFileLocator); - - return stringLogger; - } } } diff --git a/src/GitVersionCore.Tests/GitVersionExecutorTests.cs b/src/GitVersionCore.Tests/GitVersionExecutorTests.cs index bb8972b9c4..947d7345c4 100644 --- a/src/GitVersionCore.Tests/GitVersionExecutorTests.cs +++ b/src/GitVersionCore.Tests/GitVersionExecutorTests.cs @@ -297,7 +297,7 @@ public void ConfigChangeInvalidatesCache() versionVariables = gitVersionCalculator.CalculateVersionVariables(); versionVariables.AssemblySemVer.ShouldBe("4.10.3.0"); - var configPath = Path.Combine(fixture.RepositoryPath, "GitVersionConfig.yaml"); + var configPath = Path.Combine(fixture.RepositoryPath, DefaultConfigFileLocator.DefaultFileName); fileSystem.WriteAllText(configPath, "next-version: 5.0"); versionVariables = gitVersionCalculator.CalculateVersionVariables(); diff --git a/src/GitVersionCore.Tests/Helpers/TestFileSystem.cs b/src/GitVersionCore.Tests/Helpers/TestFileSystem.cs index 60196acd79..322bbe1e23 100644 --- a/src/GitVersionCore.Tests/Helpers/TestFileSystem.cs +++ b/src/GitVersionCore.Tests/Helpers/TestFileSystem.cs @@ -9,8 +9,7 @@ namespace GitVersionCore.Tests.Helpers { public class TestFileSystem : IFileSystem { - private static IEqualityComparer fileSystemCasingComparer = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase; - private readonly Dictionary fileSystem = new Dictionary(fileSystemCasingComparer); + private readonly Dictionary fileSystem = new Dictionary(StringComparerUtils.OsDependentComparer); public void Copy(string @from, string to, bool overwrite) { @@ -122,7 +121,10 @@ public long GetLastDirectoryWrite(string path) public bool PathsEqual(string path, string otherPath) { - return path == otherPath; + return string.Equals( + Path.GetFullPath(path).TrimEnd('\\').TrimEnd('/'), + Path.GetFullPath(otherPath).TrimEnd('\\').TrimEnd('/'), + StringComparerUtils.OsDependentComparison); } } } diff --git a/src/GitVersionCore.Tests/NamedConfigFileLocatorTests.cs b/src/GitVersionCore.Tests/NamedConfigFileLocatorTests.cs index 21bbc291e9..f7199dd5e6 100644 --- a/src/GitVersionCore.Tests/NamedConfigFileLocatorTests.cs +++ b/src/GitVersionCore.Tests/NamedConfigFileLocatorTests.cs @@ -65,7 +65,6 @@ public void DoNotThrowWhenWorkingAndRepoPathsAreSame() } [Test] - [Platform(Exclude = "Linux,Unix")] public void DoNotThrowWhenWorkingAndRepoPathsAreSame_WithDifferentCasing() { workingPath = DefaultRepoPath.ToLower(); diff --git a/src/GitVersionCore/Configuration/ConfigFileLocator.cs b/src/GitVersionCore/Configuration/ConfigFileLocator.cs index 45f54e6cd4..5a8a9296cd 100644 --- a/src/GitVersionCore/Configuration/ConfigFileLocator.cs +++ b/src/GitVersionCore/Configuration/ConfigFileLocator.cs @@ -1,18 +1,15 @@ using System; using System.IO; -using GitVersion.Logging; namespace GitVersion.Configuration { public abstract class ConfigFileLocator : IConfigFileLocator { protected readonly IFileSystem FileSystem; - protected readonly ILog Log; - protected ConfigFileLocator(IFileSystem fileSystem, ILog log) + protected ConfigFileLocator(IFileSystem fileSystem) { FileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem)); - Log = log ?? throw new ArgumentNullException(nameof(log)); } public abstract bool HasConfigFileAt(string workingDirectory); @@ -26,12 +23,7 @@ public string SelectConfigFilePath(IGitPreparer gitPreparer) var workingDirectory = gitPreparer.GetWorkingDirectory(); var projectRootDirectory = gitPreparer.GetProjectRootDirectory(); - if (HasConfigFileAt(workingDirectory)) - { - return GetConfigFilePath(workingDirectory); - } - - return GetConfigFilePath(projectRootDirectory); + return GetConfigFilePath(HasConfigFileAt(workingDirectory) ? workingDirectory : projectRootDirectory); } public Config ReadConfig(string workingDirectory) @@ -41,7 +33,6 @@ public Config ReadConfig(string workingDirectory) if (FileSystem.Exists(configFilePath)) { var readAllText = FileSystem.ReadAllText(configFilePath); - LegacyConfigNotifier.Notify(new StringReader(readAllText)); return ConfigSerializer.Read(new StringReader(readAllText)); } diff --git a/src/GitVersionCore/Configuration/ConfigFileLocatorFactory.cs b/src/GitVersionCore/Configuration/ConfigFileLocatorFactory.cs index 8e4648fe3c..d76d1e4e74 100644 --- a/src/GitVersionCore/Configuration/ConfigFileLocatorFactory.cs +++ b/src/GitVersionCore/Configuration/ConfigFileLocatorFactory.cs @@ -1,5 +1,4 @@ using System; -using GitVersion.Logging; using Microsoft.Extensions.Options; namespace GitVersion.Configuration @@ -7,21 +6,19 @@ namespace GitVersion.Configuration public class ConfigFileLocatorFactory : IConfigFileLocatorFactory { private readonly IFileSystem fileSystem; - private readonly ILog log; private readonly IOptions options; - public ConfigFileLocatorFactory(IFileSystem fileSystem, ILog log, IOptions options) + public ConfigFileLocatorFactory(IFileSystem fileSystem, IOptions options) { this.fileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem)); - this.log = log ?? throw new ArgumentNullException(nameof(log)); this.options = options ?? throw new ArgumentNullException(nameof(options)); } public IConfigFileLocator Create() { return string.IsNullOrWhiteSpace(options.Value.ConfigFile) - ? new DefaultConfigFileLocator(fileSystem, log) as IConfigFileLocator - : new NamedConfigFileLocator(fileSystem, log, options); + ? new DefaultConfigFileLocator(fileSystem) as IConfigFileLocator + : new NamedConfigFileLocator(fileSystem, options); } } } diff --git a/src/GitVersionCore/Configuration/DefaultConfigFileLocator.cs b/src/GitVersionCore/Configuration/DefaultConfigFileLocator.cs index 1ed2b93ca6..42b43f4af8 100644 --- a/src/GitVersionCore/Configuration/DefaultConfigFileLocator.cs +++ b/src/GitVersionCore/Configuration/DefaultConfigFileLocator.cs @@ -1,20 +1,16 @@ using System.IO; using GitVersion.Exceptions; -using GitVersion.Logging; namespace GitVersion.Configuration { public class DefaultConfigFileLocator : ConfigFileLocator { - public DefaultConfigFileLocator(IFileSystem fileSystem, ILog log) : base(fileSystem, log) + public DefaultConfigFileLocator(IFileSystem fileSystem) : base(fileSystem) { - } public const string DefaultFileName = "GitVersion.yml"; - public const string ObsoleteFileName = "GitVersionConfig.yaml"; - public override bool HasConfigFileAt(string workingDirectory) { var defaultConfigFilePath = Path.Combine(workingDirectory, DefaultFileName); @@ -23,12 +19,6 @@ public override bool HasConfigFileAt(string workingDirectory) return true; } - var deprecatedConfigFilePath = Path.Combine(workingDirectory, ObsoleteFileName); - if (FileSystem.Exists(deprecatedConfigFilePath)) - { - return true; - } - return false; } @@ -40,12 +30,6 @@ public override string GetConfigFilePath(string workingDirectory) return ymlPath; } - var deprecatedPath = Path.Combine(workingDirectory, ObsoleteFileName); - if (FileSystem.Exists(deprecatedPath)) - { - return deprecatedPath; - } - return ymlPath; } @@ -53,13 +37,9 @@ public override void Verify(string workingDirectory, string projectRootDirectory { if (FileSystem.PathsEqual(workingDirectory, projectRootDirectory)) { - WarnAboutObsoleteConfigFile(workingDirectory); return; } - WarnAboutObsoleteConfigFile(workingDirectory); - WarnAboutObsoleteConfigFile(projectRootDirectory); - WarnAboutAmbiguousConfigFileSelection(workingDirectory, projectRootDirectory); } @@ -75,25 +55,5 @@ private void WarnAboutAmbiguousConfigFileSelection(string workingDirectory, stri throw new WarningException($"Ambiguous config file selection from '{workingConfigFile}' and '{projectRootConfigFile}'"); } } - - private void WarnAboutObsoleteConfigFile(string workingDirectory) - { - var deprecatedConfigFilePath = Path.Combine(workingDirectory, ObsoleteFileName); - if (!FileSystem.Exists(deprecatedConfigFilePath)) - { - return; - } - - var defaultConfigFilePath = Path.Combine(workingDirectory, DefaultFileName); - if (FileSystem.Exists(defaultConfigFilePath)) - { - Log.Warning(string.Format("Ambiguous config files at '{0}': '{1}' (deprecated) and '{2}'. Will be used '{2}'", workingDirectory, ObsoleteFileName, DefaultFileName)); - return; - } - - Log.Warning($"'{deprecatedConfigFilePath}' is deprecated, use '{DefaultFileName}' instead."); - } - } - } diff --git a/src/GitVersionCore/Configuration/IConfigFileLocator.cs b/src/GitVersionCore/Configuration/IConfigFileLocator.cs index 1eafec7143..4749d67da3 100644 --- a/src/GitVersionCore/Configuration/IConfigFileLocator.cs +++ b/src/GitVersionCore/Configuration/IConfigFileLocator.cs @@ -4,9 +4,9 @@ public interface IConfigFileLocator { bool HasConfigFileAt(string workingDirectory); string GetConfigFilePath(string workingDirectory); + void Verify(IGitPreparer gitPreparer); void Verify(string workingDirectory, string projectRootDirectory); string SelectConfigFilePath(IGitPreparer gitPreparer); Config ReadConfig(string workingDirectory); - void Verify(IGitPreparer gitPreparer); } } diff --git a/src/GitVersionCore/Configuration/LegacyBranchConfig.cs b/src/GitVersionCore/Configuration/LegacyBranchConfig.cs deleted file mode 100644 index 194aab5a9e..0000000000 --- a/src/GitVersionCore/Configuration/LegacyBranchConfig.cs +++ /dev/null @@ -1,16 +0,0 @@ -using YamlDotNet.Serialization; - -namespace GitVersion.Configuration -{ - /// - /// Obsolete properties are added to this, so we can check to see if they are used and provide good error messages for migration - /// - public class LegacyBranchConfig - { - [YamlMember(Alias = "is-develop")] - public string IsDevelop - { - get; set; - } - } -} diff --git a/src/GitVersionCore/Configuration/LegacyConfig.cs b/src/GitVersionCore/Configuration/LegacyConfig.cs deleted file mode 100644 index 452293fd1d..0000000000 --- a/src/GitVersionCore/Configuration/LegacyConfig.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using YamlDotNet.Serialization; - -namespace GitVersion.Configuration -{ - /// - /// Obsolete properties are added to this, so we can check to see if they are used and provide good error messages for migration - /// - public class LegacyConfig - { - private readonly Dictionary branches = new Dictionary(); - - [YamlMember(Alias = "assemblyVersioningScheme")] - public string AssemblyVersioningScheme { get; set; } - - [YamlMember(Alias = "develop-branch-tag")] - public string DevelopBranchTag { get; set; } - - [YamlMember(Alias = "release-branch-tag")] - public string ReleaseBranchTag { get; set; } - - [YamlMember(Alias = "branches")] - public Dictionary Branches - { - get => branches; - set - { - value.ToList().ForEach(_ => - { - if (!branches.ContainsKey(_.Key)) - branches.Add(_.Key, new LegacyBranchConfig()); - - branches[_.Key] = MergeObjects(branches[_.Key], _.Value); - }); - } - } - - private T MergeObjects(T target, T source) - { - - var typeInfo = typeof(T); - typeInfo.GetProperties() - .Where(prop => prop.CanRead && prop.CanWrite) - .Select(_ => new - { - prop = _, - value = _.GetValue(source, null) - }) - .Where(_ => _.value != null) - .ToList() - .ForEach(_ => _.prop.SetValue(target, _.value, null)); - return target; - } - } -} diff --git a/src/GitVersionCore/Configuration/LegacyConfigNotifier.cs b/src/GitVersionCore/Configuration/LegacyConfigNotifier.cs deleted file mode 100644 index e89b13afcc..0000000000 --- a/src/GitVersionCore/Configuration/LegacyConfigNotifier.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Linq; -using YamlDotNet.Serialization; -using YamlDotNet.Serialization.NamingConventions; - -namespace GitVersion.Configuration -{ - public class LegacyConfigNotifier - { - private static readonly Dictionary OldConfigKnownRegexes = new Dictionary - { - {Config.MasterBranchRegex, Config.MasterBranchKey}, - {Config.DevelopBranchRegex, Config.DevelopBranchKey}, - {Config.FeatureBranchRegex, Config.FeatureBranchKey}, - {Config.HotfixBranchRegex, Config.HotfixBranchKey}, - {Config.ReleaseBranchRegex, Config.ReleaseBranchKey}, - {Config.SupportBranchRegex, Config.SupportBranchKey}, - {Config.PullRequestRegex, Config.PullRequestBranchKey}, - {"dev(elop)?(ment)?$", Config.DevelopBranchKey }, - {"release[/-]", Config.ReleaseBranchKey }, - {"hotfix[/-]", Config.HotfixBranchKey }, - {"feature(s)?[/-]", Config.FeatureBranchKey }, - {"feature[/-]", Config.FeatureBranchKey } - }; - - public static void Notify(StringReader reader) - { - var deserializer = new DeserializerBuilder().WithNamingConvention(NullNamingConvention.Instance).IgnoreUnmatchedProperties().Build(); - - var legacyConfig = deserializer.Deserialize(reader); - if (legacyConfig == null) - return; - - var issues = new List(); - - var oldConfigs = legacyConfig.Branches.Keys.Where(k => OldConfigKnownRegexes.Keys.Contains(k) && k != OldConfigKnownRegexes[k]).ToList(); - if (oldConfigs.Any()) - { - var max = oldConfigs.Max(c => c.Length); - var oldBranchConfigs = oldConfigs.Select(c => $"{c.PadRight(max)} -> {OldConfigKnownRegexes[c]}"); - var branchErrors = string.Join("\r\n ", oldBranchConfigs); - issues.Add($@"GitVersion branch configs no longer are keyed by regexes, update: - {branchErrors}"); - } - - if (legacyConfig.AssemblyVersioningScheme != null) - issues.Add("assemblyVersioningScheme has been replaced by assembly-versioning-scheme"); - - if (legacyConfig.DevelopBranchTag != null) - issues.Add("develop-branch-tag has been replaced by branch specific configuration. See https://gitversion.net/docs/configuration/#branch-configuration"); - - if (legacyConfig.ReleaseBranchTag != null) - issues.Add("release-branch-tag has been replaced by branch specific configuration. See https://gitversion.net/docs/configuration/#branch-configuration"); - - if (legacyConfig.Branches != null && legacyConfig.Branches.Any(branches => branches.Value.IsDevelop != null)) - issues.Add("'is-develop' is deprecated, use 'tracks-release-branches' instead. See https://gitversion.net/docs/configuration/#branch-configuration"); - - if (issues.Any()) - throw new OldConfigurationException("GitVersion configuration file contains old configuration, please fix the following errors:\r\n" + string.Join("\r\n", issues)); - } - } -} diff --git a/src/GitVersionCore/Configuration/NamedConfigFileLocator.cs b/src/GitVersionCore/Configuration/NamedConfigFileLocator.cs index 09c994c502..4c330a653e 100644 --- a/src/GitVersionCore/Configuration/NamedConfigFileLocator.cs +++ b/src/GitVersionCore/Configuration/NamedConfigFileLocator.cs @@ -1,7 +1,6 @@ using System; using System.IO; using GitVersion.Exceptions; -using GitVersion.Logging; using Microsoft.Extensions.Options; namespace GitVersion.Configuration @@ -10,7 +9,7 @@ public class NamedConfigFileLocator : ConfigFileLocator { private readonly IOptions options; - public NamedConfigFileLocator(IFileSystem fileSystem, ILog log, IOptions options) : base(fileSystem, log) + public NamedConfigFileLocator(IFileSystem fileSystem, IOptions options) : base(fileSystem) { this.options = options ?? throw new ArgumentNullException(nameof(options)); } @@ -36,10 +35,6 @@ private void WarnAboutAmbiguousConfigFileSelection(string workingDirectory, stri var workingConfigFile = GetConfigFilePath(workingDirectory); var projectRootConfigFile = GetConfigFilePath(projectRootDirectory); - var fileSystemCasingComparer = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; - if (Path.GetFullPath(workingConfigFile).Equals(Path.GetFullPath(projectRootConfigFile), fileSystemCasingComparer)) - return; - var hasConfigInWorkingDirectory = FileSystem.Exists(workingConfigFile); var hasConfigInProjectRootDirectory = FileSystem.Exists(projectRootConfigFile); if (hasConfigInProjectRootDirectory && hasConfigInWorkingDirectory) diff --git a/src/GitVersionCore/Helpers/StringComparerUtils.cs b/src/GitVersionCore/Helpers/StringComparerUtils.cs index d454f1471c..e2b016a343 100644 --- a/src/GitVersionCore/Helpers/StringComparerUtils.cs +++ b/src/GitVersionCore/Helpers/StringComparerUtils.cs @@ -5,6 +5,7 @@ namespace GitVersion.Helpers public static class StringComparerUtils { public static readonly StringComparer IgnoreCaseComparer = StringComparer.InvariantCultureIgnoreCase; - public static readonly StringComparison OsDependentComparison = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparison.InvariantCulture : StringComparison.InvariantCultureIgnoreCase; + public static readonly StringComparison OsDependentComparison = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase; + public static readonly StringComparer OsDependentComparer = System.Environment.OSVersion.Platform == PlatformID.Unix ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase; } }