From 71a48eb52ff763f829182baa1bc89bdf6b35df4b Mon Sep 17 00:00:00 2001 From: Jake Ginnivan Date: Sun, 10 Jul 2016 09:37:40 +0800 Subject: [PATCH] When new assemblyinfo attributes are appended, add a linefeed after Fixes #928 --- ...WhenUpdatingAssemblyVersionFile.approved.txt | 2 +- ...sionFileWhenVersionSchemeIsNone.approved.txt | 2 +- ...yVersionWhenVersionSchemeIsNone.approved.txt | 2 +- ...WhenUpdatingAssemblyVersionFile.approved.txt | 2 +- ...sionFileWhenVersionSchemeIsNone.approved.txt | 2 +- ...yVersionWhenVersionSchemeIsNone.approved.txt | 2 +- ...WhenUpdatingAssemblyVersionFile.approved.txt | 2 +- ...sionFileWhenVersionSchemeIsNone.approved.txt | 2 +- ...yVersionWhenVersionSchemeIsNone.approved.txt | 2 +- src/GitVersionExe/AssemblyInfoFileUpdate.cs | 17 ++++++++++++----- 10 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt b/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt index ea649c011b..41c293718b 100644 --- a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt +++ b/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt @@ -1,3 +1,3 @@ [assembly: AssemblyVersion("2.3.1.0")] [assembly: AssemblyFileVersion("2.3.1.0")] -[assembly: AssemblyInformationalVersion("2.3.1+3.Branch.foo.Sha.hash")] \ No newline at end of file +[assembly: AssemblyInformationalVersion("2.3.1+3.Branch.foo.Sha.hash")] diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt b/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt index fedb5a46ba..b6fab87252 100644 --- a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt +++ b/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt @@ -1,2 +1,2 @@ [assembly: AssemblyFileVersion("2.3.1.0")] -[assembly: AssemblyInformationalVersion("2.3.1+3.Branch.foo.Sha.hash")] \ No newline at end of file +[assembly: AssemblyInformationalVersion("2.3.1+3.Branch.foo.Sha.hash")] diff --git a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt b/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt index fedb5a46ba..b6fab87252 100644 --- a/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt +++ b/src/GitVersionExe.Tests/Approved/cs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt @@ -1,2 +1,2 @@ [assembly: AssemblyFileVersion("2.3.1.0")] -[assembly: AssemblyInformationalVersion("2.3.1+3.Branch.foo.Sha.hash")] \ No newline at end of file +[assembly: AssemblyInformationalVersion("2.3.1+3.Branch.foo.Sha.hash")] diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt b/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt index 4ce022a702..6e677b9dcd 100644 --- a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt +++ b/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt @@ -1,3 +1,3 @@ [] [] -[] \ No newline at end of file +[] diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt b/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt index 91c2987c43..f62d253462 100644 --- a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt +++ b/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt @@ -1,2 +1,2 @@ [] -[] \ No newline at end of file +[] diff --git a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt b/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt index 91c2987c43..f62d253462 100644 --- a/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt +++ b/src/GitVersionExe.Tests/Approved/fs/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt @@ -1,2 +1,2 @@ [] -[] \ No newline at end of file +[] diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt b/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt index 05524f333b..432068eb64 100644 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt +++ b/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFile.approved.txt @@ -1,3 +1,3 @@ - \ No newline at end of file + diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt b/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt index c66faf90a7..db4291da64 100644 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt +++ b/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotAddAssemblyInformationalVersionWhenUpdatingAssemblyVersionFileWhenVersionSchemeIsNone.approved.txt @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt b/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt index c66faf90a7..db4291da64 100644 --- a/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt +++ b/src/GitVersionExe.Tests/Approved/vb/AssemblyInfoFileUpdateTests.ShouldNotReplaceAssemblyVersionWhenVersionSchemeIsNone.approved.txt @@ -1,2 +1,2 @@ - \ No newline at end of file + diff --git a/src/GitVersionExe/AssemblyInfoFileUpdate.cs b/src/GitVersionExe/AssemblyInfoFileUpdate.cs index a8de25f99d..c8ed0460c6 100644 --- a/src/GitVersionExe/AssemblyInfoFileUpdate.cs +++ b/src/GitVersionExe/AssemblyInfoFileUpdate.cs @@ -13,7 +13,7 @@ class AssemblyInfoFileUpdate : IDisposable { List restoreBackupTasks = new List(); List cleanupBackupTasks = new List(); - + public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, VersionVariables variables, IFileSystem fileSystem) { if (!args.UpdateAssemblyInfo) return; @@ -48,18 +48,24 @@ public AssemblyInfoFileUpdate(Arguments args, string workingDirectory, VersionVa cleanupBackupTasks.Add(() => fileSystem.Delete(backupAssemblyInfo)); var fileContents = fileSystem.ReadAllText(assemblyInfoFile.FullName); + var appendedAttributes = false; if (!string.IsNullOrWhiteSpace(assemblyVersion)) { - fileContents = ReplaceOrAppend(assemblyVersionRegex, fileContents, assemblyVersionString, assemblyInfoFile.Extension); + fileContents = ReplaceOrAppend(assemblyVersionRegex, fileContents, assemblyVersionString, assemblyInfoFile.Extension, ref appendedAttributes); } - fileContents = ReplaceOrAppend(assemblyInfoVersionRegex, fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension); - fileContents = ReplaceOrAppend(assemblyFileVersionRegex, fileContents, assemblyFileVersionString, assemblyInfoFile.Extension); + fileContents = ReplaceOrAppend(assemblyInfoVersionRegex, fileContents, assemblyInfoVersionString, assemblyInfoFile.Extension, ref appendedAttributes); + fileContents = ReplaceOrAppend(assemblyFileVersionRegex, fileContents, assemblyFileVersionString, assemblyInfoFile.Extension, ref appendedAttributes); + if (appendedAttributes) + { + // If we appended any attributes, put a new line after them + fileContents += Environment.NewLine; + } fileSystem.WriteAllText(assemblyInfoFile.FullName, fileContents); } } - static string ReplaceOrAppend(Regex replaceRegex, string inputString, string replaceString, string fileExtension) + static string ReplaceOrAppend(Regex replaceRegex, string inputString, string replaceString, string fileExtension, ref bool appendedAttributes) { var assemblyAddFormat = AssemblyVersionInfoTemplates.GetAssemblyInfoAddFormatFor(fileExtension); @@ -70,6 +76,7 @@ static string ReplaceOrAppend(Regex replaceRegex, string inputString, string rep else { inputString += Environment.NewLine + string.Format(assemblyAddFormat, replaceString); + appendedAttributes = true; } return inputString;