Skip to content

Commit f64549a

Browse files
committed
Merge pull request #746 from JakeGinnivan/AllowBuildRemoteTag
Fix branch normalisation when building a non-tip tag. Fixes #690
2 parents 1fc5c6a + 384e65e commit f64549a

File tree

3 files changed

+43
-2
lines changed

3 files changed

+43
-2
lines changed

src/GitVersionCore.Tests/GitHelperTests.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,33 @@ public void NormalisationOfPullRequestsWithFetch()
2727
}
2828
}
2929
}
30+
[Test]
31+
public void NormalisationOfTag()
32+
{
33+
using (var fixture = new EmptyRepositoryFixture(new Config()))
34+
{
35+
fixture.Repository.MakeACommit();
36+
37+
fixture.Repository.Checkout(fixture.Repository.CreateBranch("feature/foo"));
38+
fixture.Repository.MakeACommit();
39+
40+
fixture.BranchTo("release/2.0.0");
41+
fixture.MakeACommit();
42+
fixture.MakeATaggedCommit("2.0.0-rc.1");
43+
fixture.Checkout("master");
44+
fixture.MergeNoFF("release/2.0.0");
45+
fixture.Repository.Branches.Remove(fixture.Repository.FindBranch("release/2.0.0"));
46+
var remoteTagSha = fixture.Repository.Tags["2.0.0-rc.1"].Target.Sha;
47+
48+
using (var localFixture = fixture.CloneRepository())
49+
{
50+
localFixture.Checkout(remoteTagSha);
51+
GitHelper.NormalizeGitDirectory(localFixture.RepositoryPath, new Authentication(), noFetch: false, currentBranch: string.Empty);
52+
53+
localFixture.AssertFullSemver("2.0.0-rc.1");
54+
}
55+
}
56+
}
3057

3158
[Test]
3259
public void NormalisationOfPullRequestsWithoutFetch()

src/GitVersionCore.Tests/GitVersionCore.Tests.v2.ncrunchproject

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
<ProjectConfiguration>
1+
<ProjectConfiguration>
2+
<AutoDetectNugetBuildDependencies>true</AutoDetectNugetBuildDependencies>
23
<BuildPriority>1000</BuildPriority>
34
<CopyReferencedAssembliesToWorkspace>true</CopyReferencedAssembliesToWorkspace>
45
<ConsiderInconclusiveTestsAsPassing>false</ConsiderInconclusiveTestsAsPassing>
@@ -22,6 +23,11 @@
2223
<UseCPUArchitecture>AutoDetect</UseCPUArchitecture>
2324
<MSTestThreadApartmentState>STA</MSTestThreadApartmentState>
2425
<BuildProcessArchitecture>x86</BuildProcessArchitecture>
26+
<IgnoredTests>
27+
<FixtureTestSelector>
28+
<FixtureName>DocumentationTests</FixtureName>
29+
</FixtureTestSelector>
30+
</IgnoredTests>
2531
<AdditionalFilesToInclude>..\Packages\LibGit2Sharp.0.21.0.176\lib\net40\NativeBinaries\**.*;Resources\**.*</AdditionalFilesToInclude>
2632
<HiddenWarnings>PostBuildEventDisabled;CopyReferencedAssembliesToWorkspaceIsOn</HiddenWarnings>
2733
</ProjectConfiguration>

src/GitVersionCore/BuildServers/GitHelper.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,9 +210,17 @@ static void CreateFakeBranchPointingAtThePullRequestTip(Repository repo, Authent
210210
throw new WarningException(message);
211211
}
212212

213-
var canonicalName = refs[0].CanonicalName;
213+
var reference = refs[0];
214+
var canonicalName = reference.CanonicalName;
214215
Logger.WriteInfo(string.Format("Found remote tip '{0}' pointing at the commit '{1}'.", canonicalName, headTipSha));
215216

217+
if (canonicalName.StartsWith("refs/tags"))
218+
{
219+
Logger.WriteInfo(string.Format("Checking out tag '{0}'", canonicalName));
220+
repo.Checkout(reference.Target.Sha);
221+
return;
222+
}
223+
216224
if (!canonicalName.StartsWith("refs/pull/") && !canonicalName.StartsWith("refs/pull-requests/"))
217225
{
218226
var message = string.Format("Remote tip '{0}' from remote '{1}' doesn't look like a valid pull request.", canonicalName, remote.Url);

0 commit comments

Comments
 (0)