From 057f2083623151ed8b129aa167768522eda05baf Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Sun, 28 Mar 2021 20:15:22 -0600 Subject: [PATCH 1/2] Add test to ensure `VersionFile.GetVersion` outputs an absolute path --- src/NerdBank.GitVersioning.Tests/VersionFileTests.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/NerdBank.GitVersioning.Tests/VersionFileTests.cs b/src/NerdBank.GitVersioning.Tests/VersionFileTests.cs index 77c2fbe1..a4ad2af3 100644 --- a/src/NerdBank.GitVersioning.Tests/VersionFileTests.cs +++ b/src/NerdBank.GitVersioning.Tests/VersionFileTests.cs @@ -597,6 +597,15 @@ VersionOptions GetOption(string path) } } + [Fact] + public void GetVersion_ProducesAbsolutePath() + { + this.InitializeSourceControl(); + this.WriteVersionFile(); + Assert.NotNull(this.Context.VersionFile.GetVersion(out string actualDirectory)); + Assert.True(Path.IsPathRooted(actualDirectory)); + } + private void AssertPathHasVersion(string committish, string absolutePath, VersionOptions expected) { var actual = this.GetVersionOptions(absolutePath, committish); From 88be8177d9874d6721b5d6055100caf3202298a4 Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Sun, 28 Mar 2021 18:44:17 -0600 Subject: [PATCH 2/2] Produce absolute path per api doc when reading version file Fixes #573 --- src/NerdBank.GitVersioning/LibGit2/LibGit2VersionFile.cs | 6 ++++-- src/NerdBank.GitVersioning/Managed/ManagedVersionFile.cs | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/NerdBank.GitVersioning/LibGit2/LibGit2VersionFile.cs b/src/NerdBank.GitVersioning/LibGit2/LibGit2VersionFile.cs index f6829530..ae077ec3 100644 --- a/src/NerdBank.GitVersioning/LibGit2/LibGit2VersionFile.cs +++ b/src/NerdBank.GitVersioning/LibGit2/LibGit2VersionFile.cs @@ -59,7 +59,8 @@ internal LibGit2VersionFile(LibGit2Context context) if (result is object) { - actualDirectory = searchDirectory; + IBelongToARepository commitAsRepoMember = commit; + actualDirectory = Path.Combine(commitAsRepoMember.Repository.Info.WorkingDirectory, searchDirectory); return result; } } @@ -125,7 +126,8 @@ internal LibGit2VersionFile(LibGit2Context context) } else if (result is object) { - actualDirectory = searchDirectory; + IBelongToARepository commitAsRepoMember = commit; + actualDirectory = Path.Combine(commitAsRepoMember.Repository.Info.WorkingDirectory, searchDirectory); return result; } } diff --git a/src/NerdBank.GitVersioning/Managed/ManagedVersionFile.cs b/src/NerdBank.GitVersioning/Managed/ManagedVersionFile.cs index 8db7c331..06e9e8ee 100644 --- a/src/NerdBank.GitVersioning/Managed/ManagedVersionFile.cs +++ b/src/NerdBank.GitVersioning/Managed/ManagedVersionFile.cs @@ -85,7 +85,7 @@ public ManagedVersionFile(GitContext context) if (result is object) { finalResult = result; - actualDirectory = searchDirectory; + actualDirectory = Path.Combine(this.Context.WorkingTreePath, searchDirectory); } } @@ -158,7 +158,7 @@ public ManagedVersionFile(GitContext context) if (result is object) { - actualDirectory = searchDirectory; + actualDirectory = Path.Combine(this.Context.WorkingTreePath, searchDirectory); finalResult = result; } }