Skip to content

Commit 8411716

Browse files
authored
Merge pull request #574 from dotnet/fix573
Produce absolute path per api doc when reading version file
2 parents d7059f7 + 88be817 commit 8411716

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

src/NerdBank.GitVersioning.Tests/VersionFileTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -597,6 +597,15 @@ VersionOptions GetOption(string path)
597597
}
598598
}
599599

600+
[Fact]
601+
public void GetVersion_ProducesAbsolutePath()
602+
{
603+
this.InitializeSourceControl();
604+
this.WriteVersionFile();
605+
Assert.NotNull(this.Context.VersionFile.GetVersion(out string actualDirectory));
606+
Assert.True(Path.IsPathRooted(actualDirectory));
607+
}
608+
600609
private void AssertPathHasVersion(string committish, string absolutePath, VersionOptions expected)
601610
{
602611
var actual = this.GetVersionOptions(absolutePath, committish);

src/NerdBank.GitVersioning/LibGit2/LibGit2VersionFile.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ internal LibGit2VersionFile(LibGit2Context context)
5959

6060
if (result is object)
6161
{
62-
actualDirectory = searchDirectory;
62+
IBelongToARepository commitAsRepoMember = commit;
63+
actualDirectory = Path.Combine(commitAsRepoMember.Repository.Info.WorkingDirectory, searchDirectory);
6364
return result;
6465
}
6566
}
@@ -125,7 +126,8 @@ internal LibGit2VersionFile(LibGit2Context context)
125126
}
126127
else if (result is object)
127128
{
128-
actualDirectory = searchDirectory;
129+
IBelongToARepository commitAsRepoMember = commit;
130+
actualDirectory = Path.Combine(commitAsRepoMember.Repository.Info.WorkingDirectory, searchDirectory);
129131
return result;
130132
}
131133
}

src/NerdBank.GitVersioning/Managed/ManagedVersionFile.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public ManagedVersionFile(GitContext context)
8585
if (result is object)
8686
{
8787
finalResult = result;
88-
actualDirectory = searchDirectory;
88+
actualDirectory = Path.Combine(this.Context.WorkingTreePath, searchDirectory);
8989
}
9090
}
9191

@@ -158,7 +158,7 @@ public ManagedVersionFile(GitContext context)
158158

159159
if (result is object)
160160
{
161-
actualDirectory = searchDirectory;
161+
actualDirectory = Path.Combine(this.Context.WorkingTreePath, searchDirectory);
162162
finalResult = result;
163163
}
164164
}

0 commit comments

Comments
 (0)