Skip to content

Commit 204d2bc

Browse files
committed
Fixed some exceptions which were causing tests to blow up and not get a result
1 parent 2dbcc84 commit 204d2bc

File tree

6 files changed

+25
-4
lines changed

6 files changed

+25
-4
lines changed

GitVersionCore/GitVersionContext.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,7 @@ KeyValuePair<string, BranchConfig> GetBranchConfiguration(Branch currentBranch)
107107

108108
if (branchConfiguration.Increment == IncrementStrategy.Inherit)
109109
{
110-
var tips = Repository.Branches.Select(b => b.Tip).Where(c => c.Sha != CurrentCommit.Sha).ToList();
111-
var branchPoint = Repository.Commits.First(c => tips.Contains(c) || c.Parents.Count() > 1);
110+
var branchPoint = currentBranch.FindCommitBranchWasBranchedFrom(Repository);
112111
var branches = ListBranchesContaininingCommit(Repository, branchPoint.Sha).ToArray();
113112
var currentTipBranches = ListBranchesContaininingCommit(Repository, CurrentCommit.Sha).ToArray();
114113
var branchNameComparer = new BranchNameComparer();

GitVersionCore/GitVersionCore.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
<Compile Include="VersionCalculation\BaseVersionCalculators\MergeMessageBaseVersionStrategy.cs" />
9797
<Compile Include="VersionCalculation\BaseVersionCalculators\VersionInBranchBaseVersionStrategy.cs" />
9898
<Compile Include="VersionCalculation\BaseVersionStrategy.cs" />
99+
<Compile Include="VersionCalculation\FallbackBaseVersionStrategy.cs" />
99100
<Compile Include="VersionCalculation\IBaseVersionCalculator.cs" />
100101
<Compile Include="VersionCalculation\IMetaDataCalculator.cs" />
101102
<Compile Include="VersionCalculation\MetaDataCalculator.cs" />

GitVersionCore/LibGitExtensions.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ public static Branch FindBranch(this IRepository repository, string branchName)
2424
return repository.Branches.FirstOrDefault(x => x.Name == "origin/" + branchName);
2525
}
2626

27+
public static Commit FindCommitBranchWasBranchedFrom(this Branch branch, IRepository repository)
28+
{
29+
var tips = repository.Branches.Select(b => b.Tip).Where(c => c.Sha != branch.Tip.Sha).ToList();
30+
return repository.Commits.FirstOrDefault(c => tips.Contains(c) || c.Parents.Count() > 1) ?? branch.Tip;
31+
}
32+
2733
public static IEnumerable<Tag> TagsByDate(this IRepository repository, Commit commit)
2834
{
2935
return repository.Tags

GitVersionCore/VersionCalculation/BaseVersionCalculators/VersionInBranchBaseVersionStrategy.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ public override BaseVersion GetVersion(GitVersionContext context)
1010
var versionInBranch = GetVersionInBranch(context);
1111
if (versionInBranch != null)
1212
{
13-
var firstCommitOfBranch = context.CurrentBranch.Commits.Last();
14-
return new BaseVersion(false, true, versionInBranch.Item2, firstCommitOfBranch);
13+
var commitBranchWasBranchedFrom = context.CurrentBranch.FindCommitBranchWasBranchedFrom(context.Repository);
14+
var baseVersionSource = context.CurrentBranch.Commits.First(c => c.Sha != commitBranchWasBranchedFrom.Sha);
15+
return new BaseVersion(false, true, versionInBranch.Item2, baseVersionSource);
1516
}
1617

1718
return null;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
namespace GitVersion.VersionCalculation
2+
{
3+
using System.Linq;
4+
using GitVersion.VersionCalculation.BaseVersionCalculators;
5+
6+
public class FallbackBaseVersionStrategy : BaseVersionStrategy
7+
{
8+
public override BaseVersion GetVersion(GitVersionContext context)
9+
{
10+
return new BaseVersion(false, true, new SemanticVersion(minor: 1), context.CurrentBranch.Commits.Last());
11+
}
12+
}
13+
}

GitVersionCore/VersionCalculation/NewNextVersionCalculator.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public NewNextVersionCalculator(IBaseVersionCalculator baseVersionCalculator = n
1414
this.metaDataCalculator = metaDataCalculator ?? new MetaDataCalculator();
1515
baseVersionFinder = baseVersionCalculator ??
1616
new BaseVersionCalculator(
17+
new FallbackBaseVersionStrategy(),
1718
new ConfigNextVersionBaseVersionStrategy(),
1819
new LastTagBaseVersionStrategy(),
1920
new MergeMessageBaseVersionStrategy(),

0 commit comments

Comments
 (0)