Skip to content

Commit 81779f7

Browse files
committed
Updated other places which required git tag prefix cleanup
1 parent 206ebe2 commit 81779f7

14 files changed

+51
-45
lines changed

GitVersionCore.Tests/SemanticVersionTests.cs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void ValidateVersionParsing(string versionString, int major, int minor, i
3131
fullFormattedVersionString = fullFormattedVersionString ?? versionString;
3232

3333
SemanticVersion version;
34-
Assert.IsTrue(SemanticVersion.TryParse(versionString, out version), "TryParse Result");
34+
Assert.IsTrue(SemanticVersion.TryParse(versionString, null, out version), "TryParse Result");
3535
Assert.AreEqual(major, version.Major);
3636
Assert.AreEqual(minor, version.Minor);
3737
Assert.AreEqual(patch, version.Patch);
@@ -49,7 +49,7 @@ public void ValidateVersionParsing(string versionString, int major, int minor, i
4949
public void ValidateInvalidVersionParsing(string versionString)
5050
{
5151
SemanticVersion version;
52-
Assert.IsFalse(SemanticVersion.TryParse(versionString, out version), "TryParse Result");
52+
Assert.IsFalse(SemanticVersion.TryParse(versionString, null, out version), "TryParse Result");
5353
}
5454

5555
[Test]
@@ -64,16 +64,16 @@ public void LegacySemVerTest()
6464
[Test]
6565
public void VersionSorting()
6666
{
67-
SemanticVersion.Parse("1.0.0").ShouldBeGreaterThan(SemanticVersion.Parse("1.0.0-beta"));
68-
SemanticVersion.Parse("1.0.0-beta.2").ShouldBeGreaterThan(SemanticVersion.Parse("1.0.0-beta.1"));
69-
SemanticVersion.Parse("1.0.0-beta.1").ShouldBeLessThan(SemanticVersion.Parse("1.0.0-beta.2"));
67+
SemanticVersion.Parse("1.0.0", null).ShouldBeGreaterThan(SemanticVersion.Parse("1.0.0-beta", null));
68+
SemanticVersion.Parse("1.0.0-beta.2", null).ShouldBeGreaterThan(SemanticVersion.Parse("1.0.0-beta.1", null));
69+
SemanticVersion.Parse("1.0.0-beta.1", null).ShouldBeLessThan(SemanticVersion.Parse("1.0.0-beta.2", null));
7070
}
7171

7272
[Test]
7373
public void ToStringJTests()
7474
{
75-
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3").ToString("j"));
76-
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3-beta.4").ToString("j"));
75+
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3", null).ToString("j"));
76+
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3-beta.4", null).ToString("j"));
7777
var fullSemVer = new SemanticVersion
7878
{
7979
Major = 1,
@@ -93,8 +93,8 @@ public void ToStringJTests()
9393
[Test]
9494
public void ToStringSTests()
9595
{
96-
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3").ToString("s"));
97-
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4").ToString("s"));
96+
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3", null).ToString("s"));
97+
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4", null).ToString("s"));
9898
var fullSemVer = new SemanticVersion
9999
{
100100
Major = 1,
@@ -114,8 +114,8 @@ public void ToStringSTests()
114114
[Test]
115115
public void ToStringLTests()
116116
{
117-
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3").ToString("l"));
118-
Assert.AreEqual("1.2.3-beta4", SemanticVersion.Parse("1.2.3-beta.4").ToString("l"));
117+
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3", null).ToString("l"));
118+
Assert.AreEqual("1.2.3-beta4", SemanticVersion.Parse("1.2.3-beta.4", null).ToString("l"));
119119
var fullSemVer = new SemanticVersion
120120
{
121121
Major = 1,
@@ -135,8 +135,8 @@ public void ToStringLTests()
135135
[Test]
136136
public void ToStringLPTests()
137137
{
138-
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3").ToString("lp"));
139-
Assert.AreEqual("1.2.3-beta0004", SemanticVersion.Parse("1.2.3-beta.4").ToString("lp"));
138+
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3", null).ToString("lp"));
139+
Assert.AreEqual("1.2.3-beta0004", SemanticVersion.Parse("1.2.3-beta.4", null).ToString("lp"));
140140
var fullSemVer = new SemanticVersion
141141
{
142142
Major = 1,
@@ -156,9 +156,9 @@ public void ToStringLPTests()
156156
[Test]
157157
public void ToStringTests()
158158
{
159-
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3").ToString());
160-
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4").ToString());
161-
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4+5").ToString());
159+
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3", null).ToString());
160+
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4", null).ToString());
161+
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4+5", null).ToString());
162162
var fullSemVer = new SemanticVersion
163163
{
164164
Major = 1,
@@ -178,9 +178,9 @@ public void ToStringTests()
178178
[Test]
179179
public void ToStringFTests()
180180
{
181-
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3").ToString("f"));
182-
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4").ToString("f"));
183-
Assert.AreEqual("1.2.3-beta.4+5", SemanticVersion.Parse("1.2.3-beta.4+5").ToString("f"));
181+
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3", null).ToString("f"));
182+
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4", null).ToString("f"));
183+
Assert.AreEqual("1.2.3-beta.4+5", SemanticVersion.Parse("1.2.3-beta.4+5", null).ToString("f"));
184184
var fullSemVer = new SemanticVersion
185185
{
186186
Major = 1,
@@ -200,9 +200,9 @@ public void ToStringFTests()
200200
[Test]
201201
public void ToStringITests()
202202
{
203-
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3").ToString("i"));
204-
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4").ToString("i"));
205-
Assert.AreEqual("1.2.3-beta.4+5", SemanticVersion.Parse("1.2.3-beta.4+5").ToString("i"));
203+
Assert.AreEqual("1.2.3-beta.4", SemanticVersion.Parse("1.2.3-beta.4", null).ToString("i"));
204+
Assert.AreEqual("1.2.3", SemanticVersion.Parse("1.2.3", null).ToString("i"));
205+
Assert.AreEqual("1.2.3-beta.4+5", SemanticVersion.Parse("1.2.3-beta.4+5", null).ToString("i"));
206206
var fullSemVer = new SemanticVersion
207207
{
208208
Major = 1,

GitVersionCore/GitFlow/BranchFinders/DevelopBasedVersionFinderBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ protected SemanticVersion FindVersion(
3535
context.CurrentBranch.Name, context.CurrentCommit.Sha, context.CurrentCommit.When())
3636
};
3737

38-
semanticVersion.OverrideVersionManuallyIfNeeded(context.Repository);
38+
semanticVersion.OverrideVersionManuallyIfNeeded(context.Repository, context.Configuration);
3939

4040
return semanticVersion;
4141
}

GitVersionCore/GitFlow/BranchFinders/DevelopVersionFinder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public SemanticVersion FindVersion(GitVersionContext context)
3030
BuildMetaData = new SemanticVersionBuildMetaData(numberOfCommitsSinceRelease, context.CurrentBranch.Name,tip.Sha,tip.When()),
3131
};
3232

33-
semanticVersion.OverrideVersionManuallyIfNeeded(context.Repository);
33+
semanticVersion.OverrideVersionManuallyIfNeeded(context.Repository, context.Configuration);
3434

3535
return semanticVersion;
3636
}

GitVersionCore/GitFlow/BranchFinders/RecentTagVersionExtractor.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class RecentTagVersionExtractor
88
{
99
internal static SemanticVersionPreReleaseTag RetrieveMostRecentOptionalTagVersion(GitVersionContext context, ShortVersion matchVersion)
1010
{
11-
var tagsInDescendingOrder = context.Repository.SemVerTagsRelatedToVersion(matchVersion).OrderByDescending(tag => SemanticVersion.Parse(tag.Name));
11+
var tagsInDescendingOrder = context.Repository.SemVerTagsRelatedToVersion(context.Configuration, matchVersion).OrderByDescending(tag => SemanticVersion.Parse(tag.Name, context.Configuration.TagPrefix));
1212
return RetrieveMostRecentOptionalTagVersion(context, tagsInDescendingOrder.ToList());
1313
}
1414

@@ -17,7 +17,7 @@ internal static SemanticVersionPreReleaseTag RetrieveMostRecentOptionalTagVersio
1717
if (applicableTagsInDescendingOrder.Any())
1818
{
1919
var taggedCommit = applicableTagsInDescendingOrder.First().Target;
20-
var preReleaseVersion = applicableTagsInDescendingOrder.Select(tag => SemanticVersion.Parse(tag.Name)).FirstOrDefault();
20+
var preReleaseVersion = applicableTagsInDescendingOrder.Select(tag => SemanticVersion.Parse(tag.Name, context.Configuration.TagPrefix)).FirstOrDefault();
2121
if (preReleaseVersion != null)
2222
{
2323
if (taggedCommit != context.CurrentCommit)

GitVersionCore/GitFlow/BranchFinders/ReleaseVersionFinder.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ public SemanticVersion FindVersion(GitVersionContext context)
1111
var shortVersion = ShortVersionParser.Parse(versionString);
1212

1313
EnsureVersionIsValid(shortVersion, context.CurrentBranch);
14-
15-
var applicableTagsInDescendingOrder = context.Repository.SemVerTagsRelatedToVersion(shortVersion).OrderByDescending(tag => SemanticVersion.Parse(tag.Name)).ToList();
14+
15+
var applicableTagsInDescendingOrder = context.Repository.SemVerTagsRelatedToVersion(context.Configuration, shortVersion).OrderByDescending(tag => SemanticVersion.Parse(tag.Name, context.Configuration.TagPrefix)).ToList();
1616
var numberOfCommitsSinceLastTagOrBranchPoint = BranchCommitDifferenceFinder.NumberOfCommitsSinceLastTagOrBranchPoint(context, applicableTagsInDescendingOrder, BranchType.Release, "develop");
1717
var semanticVersionPreReleaseTag = RecentTagVersionExtractor.RetrieveMostRecentOptionalTagVersion(context, applicableTagsInDescendingOrder) ?? context.Configuration.ReleaseBranchTag + ".1";
1818

GitVersionCore/GitFlow/BranchFinders/SupportVersionFinder.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
namespace GitVersion
22
{
3+
using GitVersion.Configuration;
34
using LibGit2Sharp;
45

56
class SupportVersionFinder
67
{
7-
public SemanticVersion FindVersion(IRepository repository, Commit tip)
8+
public SemanticVersion FindVersion(IRepository repository, Commit tip, Config configuration)
89
{
910
foreach (var tag in repository.TagsByDate(tip))
1011
{
@@ -19,7 +20,7 @@ public SemanticVersion FindVersion(IRepository repository, Commit tip)
1920
if (MergeMessageParser.TryParse(tip, out versionFromTip))
2021
{
2122
var semanticVersion = BuildVersion(tip, versionFromTip);
22-
semanticVersion.OverrideVersionManuallyIfNeeded(repository);
23+
semanticVersion.OverrideVersionManuallyIfNeeded(repository, configuration);
2324
return semanticVersion;
2425
}
2526
throw new WarningException("The head of a support branch should always be a merge commit if you follow gitflow. Please create one or work around this by tagging the commit with SemVer compatible Id.");

GitVersionCore/GitFlow/GitFlowVersionFinder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public SemanticVersion FindVersion(GitVersionContext context)
3131

3232
if (context.CurrentBranch.IsSupport())
3333
{
34-
return new SupportVersionFinder().FindVersion(context.Repository, context.CurrentCommit);
34+
return new SupportVersionFinder().FindVersion(context.Repository, context.CurrentCommit, context.Configuration);
3535
}
3636

3737
return new FeatureVersionFinder().FindVersion(context);

GitVersionCore/GitHubFlow/GitHubFlowVersionFinder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public SemanticVersion FindVersion(GitVersionContext context)
66
{
77
var repositoryDirectory = context.Repository.Info.WorkingDirectory;
88
var lastTaggedReleaseFinder = new LastTaggedReleaseFinder(context);
9-
var nextVersionTxtFileFinder = new NextVersionTxtFileFinder(repositoryDirectory);
9+
var nextVersionTxtFileFinder = new NextVersionTxtFileFinder(repositoryDirectory, context.Configuration);
1010
var nextSemverCalculator = new NextSemverCalculator(nextVersionTxtFileFinder, lastTaggedReleaseFinder, context);
1111
return new BuildNumberCalculator(nextSemverCalculator, lastTaggedReleaseFinder, context.Repository).GetBuildNumber(context);
1212
}

GitVersionCore/GitHubFlow/LastTaggedReleaseFinder.cs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
namespace GitVersion
22
{
33
using System.Linq;
4-
using System.Text.RegularExpressions;
54
using LibGit2Sharp;
65

76
public class LastTaggedReleaseFinder
@@ -17,9 +16,8 @@ public bool GetVersion(out VersionTaggedCommit versionTaggedCommit)
1716
{
1817
var tags = context.Repository.Tags.Select(t =>
1918
{
20-
var match = Regex.Match(t.Name, string.Format("({0})?(?<version>.*)", context.Configuration.TagPrefix));
2119
SemanticVersion version;
22-
if (SemanticVersion.TryParse(match.Groups["version"].Value, out version))
20+
if (SemanticVersion.TryParse(t.Name, context.Configuration.TagPrefix, out version))
2321
{
2422
return new VersionTaggedCommit((Commit)t.Target, version);
2523
}

GitVersionCore/GitHubFlow/NextVersionTxtFileFinder.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,17 @@
22
{
33
using System;
44
using System.IO;
5+
using GitVersion.Configuration;
56

67
public class NextVersionTxtFileFinder
78
{
89
string repositoryDirectory;
10+
Config configuration;
911

10-
public NextVersionTxtFileFinder(string repositoryDirectory)
12+
public NextVersionTxtFileFinder(string repositoryDirectory, Config configuration)
1113
{
1214
this.repositoryDirectory = repositoryDirectory;
15+
this.configuration = configuration;
1316
}
1417

1518
public bool TryGetNextVersion(out SemanticVersion semanticVersion)
@@ -28,7 +31,7 @@ public bool TryGetNextVersion(out SemanticVersion semanticVersion)
2831
return false;
2932
}
3033

31-
if (!SemanticVersion.TryParse(version, out semanticVersion))
34+
if (!SemanticVersion.TryParse(version, configuration.TagPrefix, out semanticVersion))
3235
{
3336
throw new ArgumentException("Make sure you have a valid semantic version in NextVersion.txt");
3437
}

GitVersionCore/GitHubFlow/OtherBranchVersionFinder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public bool FindVersion(GitVersionContext context, out SemanticVersion semanticV
1616
var shortVersion = ShortVersionParser.Parse(versionString);
1717

1818

19-
var applicableTagsInDescendingOrder = context.Repository.SemVerTagsRelatedToVersion(shortVersion).OrderByDescending(tag => SemanticVersion.Parse(tag.Name)).ToList();
19+
var applicableTagsInDescendingOrder = context.Repository.SemVerTagsRelatedToVersion(context.Configuration, shortVersion).OrderByDescending(tag => SemanticVersion.Parse(tag.Name, context.Configuration.TagPrefix)).ToList();
2020
var nbHotfixCommits = BranchCommitDifferenceFinder.NumberOfCommitsSinceLastTagOrBranchPoint(context, applicableTagsInDescendingOrder, BranchType.Unknown, "master");
2121
var semanticVersionPreReleaseTag = RecentTagVersionExtractor.RetrieveMostRecentOptionalTagVersion(context, applicableTagsInDescendingOrder) ?? CreateDefaultPreReleaseTag(context, versionString);
2222

GitVersionCore/LibGitExtensions.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ namespace GitVersion
44
using System.Collections.Generic;
55
using System.IO;
66
using System.Linq;
7+
using GitVersion.Configuration;
78
using LibGit2Sharp;
89

910
static class LibGitExtensions
@@ -39,12 +40,12 @@ public static IEnumerable<Tag> TagsByDate(this IRepository repository, Commit co
3940
});
4041
}
4142

42-
public static IEnumerable<Tag> SemVerTagsRelatedToVersion(this IRepository repository, ShortVersion version)
43+
public static IEnumerable<Tag> SemVerTagsRelatedToVersion(this IRepository repository, Config configuration, ShortVersion version)
4344
{
4445
foreach (var tag in repository.Tags)
4546
{
4647
SemanticVersion tagVersion;
47-
if (SemanticVersion.TryParse(tag.Name, out tagVersion))
48+
if (SemanticVersion.TryParse(tag.Name, configuration.TagPrefix, out tagVersion))
4849
{
4950
if (version.Major == tagVersion.Major &&
5051
version.Minor == tagVersion.Minor &&

GitVersionCore/SemanticVersion.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,19 @@ public override int GetHashCode()
116116
return v1.CompareTo(v2) < 0;
117117
}
118118

119-
public static SemanticVersion Parse(string version)
119+
public static SemanticVersion Parse(string version, string tagPrefixRegex)
120120
{
121121
SemanticVersion semanticVersion;
122-
if (!TryParse(version, out semanticVersion))
122+
if (!TryParse(version, tagPrefixRegex, out semanticVersion))
123123
throw new WarningException(string.Format("Failed to parse {0} into a Semantic Version", version));
124124

125125
return semanticVersion;
126126
}
127127

128-
public static bool TryParse(string version, out SemanticVersion semanticVersion)
128+
public static bool TryParse(string version, string tagPrefixRegex, out SemanticVersion semanticVersion)
129129
{
130+
var match = Regex.Match(version, string.Format("({0})?(?<version>.*)", tagPrefixRegex));
131+
version = match.Groups["version"].Value;
130132
var parsed = ParseSemVer.Match(version);
131133

132134
if (!parsed.Success)

GitVersionCore/SemanticVersionExtensions.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
namespace GitVersion
22
{
3+
using GitVersion.Configuration;
34
using LibGit2Sharp;
45

56
public static class SemanticVersionExtensions
67
{
7-
public static void OverrideVersionManuallyIfNeeded(this SemanticVersion version, IRepository repository)
8+
public static void OverrideVersionManuallyIfNeeded(this SemanticVersion version, IRepository repository, Config configuration)
89
{
9-
var nextVersionTxtFileFinder = new NextVersionTxtFileFinder(repository.GetRepositoryDirectory());
10+
var nextVersionTxtFileFinder = new NextVersionTxtFileFinder(repository.GetRepositoryDirectory(), configuration);
1011
SemanticVersion manualNextVersion ;
1112
if (nextVersionTxtFileFinder.TryGetNextVersion(out manualNextVersion))
1213
{

0 commit comments

Comments
 (0)