From 11102117d88ea8e52d2a710831604c0748112552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Fri, 22 Feb 2019 17:58:32 +0100 Subject: [PATCH 01/10] Fix naming of SimpleLOC in Util.csproj (case matters on Linux) --- Util/Util.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Util/Util.csproj b/Util/Util.csproj index 6cd3e19..1d20b6f 100644 --- a/Util/Util.csproj +++ b/Util/Util.csproj @@ -232,7 +232,7 @@ - + From 4ece05b29c96a97b450f2d9beeaa03ce2c75e2d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Fri, 22 Feb 2019 17:59:23 +0100 Subject: [PATCH 02/10] Change all projects for all configurations to consistently use x64 --- GitDensity/GitDensity.csproj | 6 +++--- GitDensityTests/GitDensityTests.csproj | 5 +++-- GitHours/GitHours.csproj | 6 +++--- GitHoursTests/GitHoursTests.csproj | 5 +++-- GitMetrics/GitMetrics.csproj | 3 ++- GitTools/GitTools.csproj | 6 ++++-- Util/Util.csproj | 4 ++-- UtilTests/UtilTests.csproj | 3 ++- 8 files changed, 22 insertions(+), 16 deletions(-) diff --git a/GitDensity/GitDensity.csproj b/GitDensity/GitDensity.csproj index 07e01a4..66907d9 100644 --- a/GitDensity/GitDensity.csproj +++ b/GitDensity/GitDensity.csproj @@ -29,16 +29,16 @@ ..\bin\Debug\GitDensity.xml - AnyCPU + x64 pdbonly true ..\bin\Release\ TRACE prompt 4 - - + ..\bin\Release\GitDensity.xml true + false diff --git a/GitDensityTests/GitDensityTests.csproj b/GitDensityTests/GitDensityTests.csproj index b8d7c8f..c37b4bb 100644 --- a/GitDensityTests/GitDensityTests.csproj +++ b/GitDensityTests/GitDensityTests.csproj @@ -25,7 +25,7 @@ true full false - bin\Debug\ + ..\bin\Debug\ DEBUG;TRACE prompt 4 @@ -34,10 +34,11 @@ pdbonly true - bin\Release\ + ..\bin\Release\ TRACE prompt 4 + x64 diff --git a/GitHours/GitHours.csproj b/GitHours/GitHours.csproj index 087d00e..27f1c4a 100644 --- a/GitHours/GitHours.csproj +++ b/GitHours/GitHours.csproj @@ -28,15 +28,15 @@ false - AnyCPU + x64 pdbonly true ..\bin\Release\ TRACE prompt 4 - - + ..\bin\Release\GitHours.xml + false diff --git a/GitHoursTests/GitHoursTests.csproj b/GitHoursTests/GitHoursTests.csproj index 3c6f934..3cd4451 100644 --- a/GitHoursTests/GitHoursTests.csproj +++ b/GitHoursTests/GitHoursTests.csproj @@ -25,7 +25,7 @@ true full false - bin\Debug\ + ..\bin\Debug\ DEBUG;TRACE prompt 4 @@ -34,10 +34,11 @@ pdbonly true - bin\Release\ + ..\bin\Release\ TRACE prompt 4 + x64 diff --git a/GitMetrics/GitMetrics.csproj b/GitMetrics/GitMetrics.csproj index edb23aa..2424383 100644 --- a/GitMetrics/GitMetrics.csproj +++ b/GitMetrics/GitMetrics.csproj @@ -28,7 +28,7 @@ false - AnyCPU + x64 pdbonly true ..\bin\Release\ @@ -36,6 +36,7 @@ prompt 4 ..\bin\Release\GitMetrics.xml + false diff --git a/GitTools/GitTools.csproj b/GitTools/GitTools.csproj index 541537f..881cbee 100644 --- a/GitTools/GitTools.csproj +++ b/GitTools/GitTools.csproj @@ -28,13 +28,15 @@ false - AnyCPU + x64 pdbonly true - bin\Release\ + ..\bin\Release\ TRACE prompt 4 + ..\bin\Release\GitTools.xml + false diff --git a/Util/Util.csproj b/Util/Util.csproj index 1d20b6f..cf8928b 100644 --- a/Util/Util.csproj +++ b/Util/Util.csproj @@ -33,8 +33,8 @@ TRACE prompt 4 - - + ..\bin\Release\Util.xml + x64 diff --git a/UtilTests/UtilTests.csproj b/UtilTests/UtilTests.csproj index 726c4d5..87c2152 100644 --- a/UtilTests/UtilTests.csproj +++ b/UtilTests/UtilTests.csproj @@ -24,7 +24,7 @@ true full false - bin\Debug\ + ..\bin\Debug\ DEBUG;TRACE prompt 4 @@ -37,6 +37,7 @@ TRACE prompt 4 + x64 From b60d86c507715ea720aa96d0663325c5a0d3779b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Fri, 22 Feb 2019 18:02:04 +0100 Subject: [PATCH 03/10] Limit parallelism to 32 * Environment.ProcessCount in ExtendedAnalyzer, to prevent thread-congestion --- GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs index aabe546..5b014e5 100644 --- a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs +++ b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs @@ -90,6 +90,12 @@ public override IEnumerable AnalyzeCommits() { po.MaxDegreeOfParallelism = 1; } + else + { + // We do this to avoid thread-congestion while still achieving + // a respectable CPU usage, as the loop-callback is IO-bound. + po.MaxDegreeOfParallelism = Environment.ProcessorCount * 32; + } Parallel.ForEach(pairs, po, pair => { From 78177ba80a7bba5c692a06794840f1df946dfb36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Fri, 22 Feb 2019 18:02:41 +0100 Subject: [PATCH 04/10] Remove reference to Repository in SimpleCommitDetails and ExtendedCommitDetails (and do related refactorings) --- GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs | 5 ++--- .../Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs | 7 +++---- GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs | 4 ++-- GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs | 9 +-------- 4 files changed, 8 insertions(+), 17 deletions(-) diff --git a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs index 5b014e5..953529d 100644 --- a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs +++ b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs @@ -102,11 +102,10 @@ public override IEnumerable AnalyzeCommits() pair.ExecutionPolicy = ExecutionPolicy.Linear; // As we're probably running parallel in outer scope already var parents = pair.Child.Parents.ToList(); - String authorLabel, committerLabel; this.AuthorAndCommitterNominalForCommit( - pair.Child, out authorLabel, out committerLabel); + pair.Child, out var authorLabel, out var committerLabel); - var ecd = new ExtendedCommitDetails(this.RepoPathOrUrl, repo, pair.Child) + var ecd = new ExtendedCommitDetails(this.RepoPathOrUrl, pair.Child) { MinutesSincePreviousCommit = parents.Count == 0 ? -.1 : Math.Round( diff --git a/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs b/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs index 0c6f642..599cf91 100644 --- a/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs +++ b/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs @@ -26,13 +26,12 @@ namespace GitTools.Analysis.ExtendedAnalyzer public class ExtendedCommitDetails : SimpleCommitDetails { /// - /// Forwards constructor that only calls . + /// Forwards constructor that only calls . /// /// - /// /// - public ExtendedCommitDetails(String repoPathOrUrl, Repository repository, Commit commit) - : base(repoPathOrUrl, repository, commit) + public ExtendedCommitDetails(String repoPathOrUrl, Commit commit) + : base(repoPathOrUrl, commit) { } diff --git a/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs b/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs index 86c6b7b..2a3dd01 100644 --- a/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs +++ b/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs @@ -79,7 +79,7 @@ public override IEnumerable AnalyzeCommits() this.AuthorAndCommitterNominalForCommit( commit, out authorLabel, out committerLabel); - bag.Add(new SimpleCommitDetails(this.RepoPathOrUrl, repo, commit) + bag.Add(new SimpleCommitDetails(this.RepoPathOrUrl, commit) { AuthorNominalLabel = authorLabel, CommitterNominalLabel = committerLabel @@ -96,7 +96,7 @@ public override IEnumerable AnalyzeCommits() internal class SimpleProgressReporter where T: IAnalyzer { public static readonly ISet DefaultSteps - = new HashSet(Enumerable.Range(1, 20).Select(i => i * 5)); + = new HashSet(Enumerable.Range(1, 50).Select(i => i * 2)); protected readonly ILogger> logger; diff --git a/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs b/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs index 9096ae6..382d10b 100644 --- a/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs +++ b/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs @@ -33,11 +33,6 @@ public class SimpleCommitDetails : IAnalyzedCommit protected static readonly Regex RegexNewLines = new Regex("\r|\n", RegexOptions.ECMAScript | RegexOptions.Compiled); - /// - /// Keeps a reference to the . - /// - protected readonly Repository repository; - /// /// Keeps a reference to the . /// @@ -48,12 +43,10 @@ public class SimpleCommitDetails : IAnalyzedCommit /// and . /// /// - /// /// - public SimpleCommitDetails(String repoPathOrUrl, Repository repository, Commit commit) + public SimpleCommitDetails(String repoPathOrUrl, Commit commit) { this.RepoPathOrUrl = repoPathOrUrl; - this.repository = repository; this.commit = commit; var parents = this.commit.Parents.ToList(); From 76ec783c1387ac56fa8893d7f0c140aad61f3c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Fri, 22 Feb 2019 20:29:56 +0100 Subject: [PATCH 05/10] Add logging of degree of parallelism in ExtendedAnalyzer --- GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs index 953529d..ab54102 100644 --- a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs +++ b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs @@ -95,6 +95,7 @@ public override IEnumerable AnalyzeCommits() // We do this to avoid thread-congestion while still achieving // a respectable CPU usage, as the loop-callback is IO-bound. po.MaxDegreeOfParallelism = Environment.ProcessorCount * 32; + this.Logger.LogDebug($"Using maximum degree of parallelism = {po.MaxDegreeOfParallelism} in {nameof(ExtendedAnalyzer)}."); } Parallel.ForEach(pairs, po, pair => From de162bd5aead62bdfc7cb50043f9953595e2dc70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Thu, 16 Jan 2020 17:54:04 +0100 Subject: [PATCH 06/10] Update all packages and also add SSH.NET for newer versions of MySQL --- GitDensity/App.config | 56 +++++++++--- GitDensity/GitDensity.csproj | 117 +++++++++++++++---------- GitDensity/packages.config | 63 +++++++------ GitDensityTests/GitDensityTests.csproj | 12 +-- GitDensityTests/app.config | 44 ++++++++-- GitDensityTests/packages.config | 4 +- GitHours/App.config | 30 ++++++- GitHours/GitHours.csproj | 61 ++++++++----- GitHours/packages.config | 32 ++++--- GitHoursTests/GitHoursTests.csproj | 12 +-- GitHoursTests/app.config | 30 ++++++- GitHoursTests/packages.config | 4 +- GitMetrics/App.config | 44 ++++++++++ GitMetrics/packages.config | 30 ++++--- GitTools/App.config | 64 ++++++++++++++ GitTools/GitTools.csproj | 85 ++++++++++-------- GitTools/packages.config | 39 +++++---- Util/Util.csproj | 98 ++++++++++++--------- Util/app.config | 42 +++++++-- Util/packages.config | 55 ++++++------ UtilTests/UtilTests.csproj | 52 ++++++----- UtilTests/app.config | 34 ++++++- UtilTests/packages.config | 21 ++--- 23 files changed, 711 insertions(+), 318 deletions(-) diff --git a/GitDensity/App.config b/GitDensity/App.config index a036d04..5c2b433 100644 --- a/GitDensity/App.config +++ b/GitDensity/App.config @@ -1,8 +1,8 @@  -
+
@@ -19,8 +19,8 @@ - - + + @@ -31,7 +31,7 @@ - + @@ -43,11 +43,11 @@ - + - + @@ -55,15 +55,15 @@ - + - + - + @@ -73,12 +73,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + - \ No newline at end of file + + \ No newline at end of file diff --git a/GitDensity/GitDensity.csproj b/GitDensity/GitDensity.csproj index 66907d9..7aafbb5 100644 --- a/GitDensity/GitDensity.csproj +++ b/GitDensity/GitDensity.csproj @@ -1,5 +1,6 @@  + @@ -44,11 +45,14 @@ ..\packages\CommandLineParser.1.9.71\lib\net45\CommandLine.dll + + ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.dll + - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll + ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.SqlServer.dll - ..\packages\F23.StringSimilarity.3.0.0\lib\netstandard1.0\F23.StringSimilarity.dll + ..\packages\F23.StringSimilarity.3.1.0\lib\netstandard1.0\F23.StringSimilarity.dll ..\packages\FluentNHibernate.2.1.2\lib\net461\FluentNHibernate.dll @@ -59,47 +63,54 @@ ..\packages\LibGit2Sharp.0.26.0\lib\net46\LibGit2Sharp.dll - - ..\packages\Microsoft.Extensions.Configuration.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + + + ..\packages\Microsoft.Extensions.Configuration.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + + ..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - - ..\packages\Microsoft.Extensions.Configuration.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.Binder.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - - ..\packages\Microsoft.Extensions.Configuration.Binder.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.3.1.1\lib\net461\Microsoft.Extensions.DependencyInjection.dll - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - ..\packages\Microsoft.Extensions.Logging.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + ..\packages\Microsoft.Extensions.Logging.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - - ..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + ..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - - ..\packages\Microsoft.Extensions.Logging.Configuration.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Configuration.dll + + ..\packages\Microsoft.Extensions.Logging.Configuration.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Configuration.dll - - ..\packages\Microsoft.Extensions.Logging.Console.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Console.dll + + ..\packages\Microsoft.Extensions.Logging.Console.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Console.dll - - ..\packages\Microsoft.Extensions.Options.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + ..\packages\Microsoft.Extensions.Options.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll - - ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll + + ..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll - - ..\packages\Microsoft.Extensions.Primitives.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + ..\packages\Microsoft.Extensions.Primitives.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - ..\packages\NHibernate.5.1.3\lib\net461\NHibernate.dll + + ..\packages\NHibernate.5.2.6\lib\net461\NHibernate.dll ..\packages\Remotion.Linq.2.2.0\lib\net45\Remotion.Linq.dll @@ -107,11 +118,18 @@ ..\packages\Remotion.Linq.EagerFetching.2.2.0\lib\net45\Remotion.Linq.EagerFetching.dll + + ..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + ..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + ..\packages\System.Console.4.3.1\lib\net46\System.Console.dll @@ -121,17 +139,17 @@ True - - ..\packages\System.Data.SQLite.Core.1.0.109.1\lib\net46\System.Data.SQLite.dll + + ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net46\System.Data.SQLite.dll - - ..\packages\System.Data.SQLite.EF6.1.0.109.0\lib\net46\System.Data.SQLite.EF6.dll + + ..\packages\System.Data.SQLite.EF6.1.0.112.0\lib\net46\System.Data.SQLite.EF6.dll - - ..\packages\System.Data.SQLite.Linq.1.0.109.0\lib\net46\System.Data.SQLite.Linq.dll + + ..\packages\System.Data.SQLite.Linq.1.0.112.0\lib\net46\System.Data.SQLite.Linq.dll - - ..\packages\System.Diagnostics.DiagnosticSource.4.5.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.4.7.0\lib\net46\System.Diagnostics.DiagnosticSource.dll ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll @@ -143,8 +161,13 @@ ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll - - ..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll + + ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + True + True ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll @@ -153,11 +176,11 @@ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - ..\packages\System.Reflection.TypeExtensions.4.5.1\lib\net461\System.Reflection.TypeExtensions.dll + + ..\packages\System.Reflection.TypeExtensions.4.7.0\lib\net461\System.Reflection.TypeExtensions.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll @@ -170,6 +193,9 @@ ..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll + + ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + @@ -211,9 +237,12 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + + + - + + \ No newline at end of file diff --git a/GitDensity/packages.config b/GitDensity/packages.config index f7edcaf..d4873aa 100644 --- a/GitDensity/packages.config +++ b/GitDensity/packages.config @@ -2,41 +2,45 @@ - - + + - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + + + - - - - + + + + - + @@ -48,20 +52,20 @@ - - - + + + - + - - - + + + @@ -72,9 +76,10 @@ - + + diff --git a/GitDensityTests/GitDensityTests.csproj b/GitDensityTests/GitDensityTests.csproj index c37b4bb..0bd63a1 100644 --- a/GitDensityTests/GitDensityTests.csproj +++ b/GitDensityTests/GitDensityTests.csproj @@ -1,7 +1,7 @@  + - Debug AnyCPU @@ -45,10 +45,10 @@ ..\packages\LibGit2Sharp.0.26.0\lib\net46\LibGit2Sharp.dll - ..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + ..\packages\MSTest.TestFramework.2.0.0\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - ..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + ..\packages\MSTest.TestFramework.2.0.0\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll @@ -78,9 +78,9 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/GitDensityTests/app.config b/GitDensityTests/app.config index 3b091d1..67ab4d6 100644 --- a/GitDensityTests/app.config +++ b/GitDensityTests/app.config @@ -4,7 +4,7 @@ - + @@ -16,11 +16,11 @@ - + - + @@ -28,15 +28,15 @@ - + - + - + @@ -46,6 +46,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GitDensityTests/packages.config b/GitDensityTests/packages.config index 363185f..2835ae7 100644 --- a/GitDensityTests/packages.config +++ b/GitDensityTests/packages.config @@ -2,6 +2,6 @@ - - + + \ No newline at end of file diff --git a/GitHours/App.config b/GitHours/App.config index b79506c..334e8e1 100644 --- a/GitHours/App.config +++ b/GitHours/App.config @@ -12,7 +12,7 @@ - + @@ -24,11 +24,11 @@ - + - + @@ -38,6 +38,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GitHours/GitHours.csproj b/GitHours/GitHours.csproj index 27f1c4a..312485a 100644 --- a/GitHours/GitHours.csproj +++ b/GitHours/GitHours.csproj @@ -45,56 +45,69 @@ ..\packages\LibGit2Sharp.0.26.0\lib\net46\LibGit2Sharp.dll - - ..\packages\Microsoft.Extensions.Configuration.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - ..\packages\Microsoft.Extensions.Configuration.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - - ..\packages\Microsoft.Extensions.Configuration.Binder.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + ..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.Binder.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - - ..\packages\Microsoft.Extensions.Logging.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.3.1.1\lib\net461\Microsoft.Extensions.DependencyInjection.dll - - ..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - ..\packages\Microsoft.Extensions.Options.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + ..\packages\Microsoft.Extensions.Logging.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - - ..\packages\Microsoft.Extensions.Primitives.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + ..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\Microsoft.Extensions.Options.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\packages\Microsoft.Extensions.Primitives.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + ..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + ..\packages\System.Console.4.3.1\lib\net46\System.Console.dll True True - - ..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll + + ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - ..\packages\System.Reflection.TypeExtensions.4.5.1\lib\net461\System.Reflection.TypeExtensions.dll + + ..\packages\System.Reflection.TypeExtensions.4.7.0\lib\net461\System.Reflection.TypeExtensions.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll diff --git a/GitHours/packages.config b/GitHours/packages.config index ac73ebb..99790d9 100644 --- a/GitHours/packages.config +++ b/GitHours/packages.config @@ -3,30 +3,34 @@ - - - - - - - - - + + + + + + + + + + + + - + - + - - - + + + + \ No newline at end of file diff --git a/GitHoursTests/GitHoursTests.csproj b/GitHoursTests/GitHoursTests.csproj index 3cd4451..c1e3a87 100644 --- a/GitHoursTests/GitHoursTests.csproj +++ b/GitHoursTests/GitHoursTests.csproj @@ -1,7 +1,7 @@  + - Debug AnyCPU @@ -45,10 +45,10 @@ ..\packages\LibGit2Sharp.0.26.0\lib\net46\LibGit2Sharp.dll - ..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + ..\packages\MSTest.TestFramework.2.0.0\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - ..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + ..\packages\MSTest.TestFramework.2.0.0\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll @@ -78,9 +78,9 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + - + \ No newline at end of file diff --git a/GitHoursTests/app.config b/GitHoursTests/app.config index 1796750..6356835 100644 --- a/GitHoursTests/app.config +++ b/GitHoursTests/app.config @@ -4,7 +4,7 @@ - + @@ -16,11 +16,11 @@ - + - + @@ -30,6 +30,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GitHoursTests/packages.config b/GitHoursTests/packages.config index 363185f..2835ae7 100644 --- a/GitHoursTests/packages.config +++ b/GitHoursTests/packages.config @@ -2,6 +2,6 @@ - - + + \ No newline at end of file diff --git a/GitMetrics/App.config b/GitMetrics/App.config index b27bae5..3d87a32 100644 --- a/GitMetrics/App.config +++ b/GitMetrics/App.config @@ -14,6 +14,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GitMetrics/packages.config b/GitMetrics/packages.config index 083e06e..0599961 100644 --- a/GitMetrics/packages.config +++ b/GitMetrics/packages.config @@ -3,17 +3,21 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GitTools/App.config b/GitTools/App.config index c33caf0..d50e0cd 100644 --- a/GitTools/App.config +++ b/GitTools/App.config @@ -18,6 +18,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/GitTools/GitTools.csproj b/GitTools/GitTools.csproj index 881cbee..82cd2a8 100644 --- a/GitTools/GitTools.csproj +++ b/GitTools/GitTools.csproj @@ -54,63 +54,78 @@ ..\packages\LINQtoCSV.1.5.0.0\lib\net35\LINQtoCSV.dll - - ..\packages\Microsoft.Extensions.Configuration.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - ..\packages\Microsoft.Extensions.Configuration.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - - ..\packages\Microsoft.Extensions.Configuration.Binder.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + ..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.Binder.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - - ..\packages\Microsoft.Extensions.Logging.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.3.1.1\lib\net461\Microsoft.Extensions.DependencyInjection.dll - - ..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - ..\packages\Microsoft.Extensions.Options.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + ..\packages\Microsoft.Extensions.Logging.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - - ..\packages\Microsoft.Extensions.Primitives.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + ..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\Microsoft.Extensions.Options.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll - - ..\packages\NHibernate.5.1.3\lib\net461\NHibernate.dll + + ..\packages\Microsoft.Extensions.Primitives.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll - - ..\packages\Remotion.Linq.2.1.2\lib\net45\Remotion.Linq.dll + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - ..\packages\Remotion.Linq.EagerFetching.2.1.0\lib\net45\Remotion.Linq.EagerFetching.dll + + ..\packages\NHibernate.5.2.6\lib\net461\NHibernate.dll + + + ..\packages\Remotion.Linq.2.2.0\lib\net45\Remotion.Linq.dll + + + ..\packages\Remotion.Linq.EagerFetching.2.2.0\lib\net45\Remotion.Linq.EagerFetching.dll + + + ..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll - - ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + ..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + - - ..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll + + ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + - - ..\packages\System.ValueTuple.4.4.0\lib\net461\System.ValueTuple.dll - True + + ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll diff --git a/GitTools/packages.config b/GitTools/packages.config index a253642..29c16d0 100644 --- a/GitTools/packages.config +++ b/GitTools/packages.config @@ -6,21 +6,26 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Util/Util.csproj b/Util/Util.csproj index cf8928b..8a85194 100644 --- a/Util/Util.csproj +++ b/Util/Util.csproj @@ -1,5 +1,6 @@  + @@ -41,13 +42,13 @@ ..\packages\Antlr3.Runtime.3.5.1\lib\net40-client\Antlr3.Runtime.dll - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll + ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.dll - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll + ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.SqlServer.dll - ..\packages\F23.StringSimilarity.3.0.0\lib\netstandard1.0\F23.StringSimilarity.dll + ..\packages\F23.StringSimilarity.3.1.0\lib\netstandard1.0\F23.StringSimilarity.dll ..\packages\FluentNHibernate.2.1.2\lib\net461\FluentNHibernate.dll @@ -58,39 +59,45 @@ ..\packages\LibGit2Sharp.0.26.0\lib\net46\LibGit2Sharp.dll - - ..\packages\Microsoft.Extensions.Configuration.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - ..\packages\Microsoft.Extensions.Configuration.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - - ..\packages\Microsoft.Extensions.Configuration.Binder.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + ..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.Binder.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - - ..\packages\Microsoft.Extensions.Logging.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.3.1.1\lib\net461\Microsoft.Extensions.DependencyInjection.dll - - ..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - ..\packages\Microsoft.Extensions.Options.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + ..\packages\Microsoft.Extensions.Logging.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - - ..\packages\Microsoft.Extensions.Primitives.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + ..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Options.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\packages\Microsoft.Extensions.Primitives.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll True - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - ..\packages\NHibernate.5.1.3\lib\net461\NHibernate.dll + + ..\packages\NHibernate.5.2.6\lib\net461\NHibernate.dll ..\packages\Remotion.Linq.2.2.0\lib\net45\Remotion.Linq.dll @@ -98,6 +105,9 @@ ..\packages\Remotion.Linq.EagerFetching.2.2.0\lib\net45\Remotion.Linq.EagerFetching.dll + + ..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll + ..\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll @@ -106,6 +116,9 @@ ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + ..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + @@ -115,17 +128,17 @@ True - - ..\packages\System.Data.SQLite.Core.1.0.109.1\lib\net46\System.Data.SQLite.dll + + ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net46\System.Data.SQLite.dll - - ..\packages\System.Data.SQLite.EF6.1.0.109.0\lib\net46\System.Data.SQLite.EF6.dll + + ..\packages\System.Data.SQLite.EF6.1.0.112.0\lib\net46\System.Data.SQLite.EF6.dll - - ..\packages\System.Data.SQLite.Linq.1.0.109.0\lib\net46\System.Data.SQLite.Linq.dll + + ..\packages\System.Data.SQLite.Linq.1.0.112.0\lib\net46\System.Data.SQLite.Linq.dll - - ..\packages\System.Diagnostics.DiagnosticSource.4.5.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + ..\packages\System.Diagnostics.DiagnosticSource.4.7.0\lib\net46\System.Diagnostics.DiagnosticSource.dll ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll @@ -148,11 +161,12 @@ ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll True - - ..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll + + ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - ..\packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll + + ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + True True @@ -163,8 +177,8 @@ ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll @@ -187,6 +201,9 @@ True + + ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll + @@ -249,9 +266,12 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - + + + - + + \ No newline at end of file diff --git a/Util/app.config b/Util/app.config index 38d8724..a872c38 100644 --- a/Util/app.config +++ b/Util/app.config @@ -1,14 +1,14 @@  -
+
- + @@ -26,6 +26,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -39,10 +71,10 @@ - - + - \ No newline at end of file + + \ No newline at end of file diff --git a/Util/packages.config b/Util/packages.config index 9b422f7..eb7a7b6 100644 --- a/Util/packages.config +++ b/Util/packages.config @@ -1,38 +1,42 @@  - - + + - - - - - - - - - + + + + + + + + + + + - - + + + + - - - - + + + + - + @@ -44,9 +48,9 @@ - - - + + + @@ -54,9 +58,9 @@ - - - + + + @@ -67,9 +71,10 @@ - + + diff --git a/UtilTests/UtilTests.csproj b/UtilTests/UtilTests.csproj index 87c2152..76cfecd 100644 --- a/UtilTests/UtilTests.csproj +++ b/UtilTests/UtilTests.csproj @@ -1,6 +1,7 @@  - + + Debug AnyCPU @@ -44,41 +45,45 @@ ..\packages\Antlr3.Runtime.3.5.1\lib\net40-client\Antlr3.Runtime.dll - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.dll + ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.dll - ..\packages\EntityFramework.6.2.0\lib\net45\EntityFramework.SqlServer.dll + ..\packages\EntityFramework.6.4.0\lib\net45\EntityFramework.SqlServer.dll ..\packages\Iesi.Collections.4.0.4\lib\net461\Iesi.Collections.dll + - ..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll + ..\packages\MSTest.TestFramework.2.0.0\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll - ..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + ..\packages\MSTest.TestFramework.2.0.0\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - ..\packages\NHibernate.5.1.3\lib\net461\NHibernate.dll + + ..\packages\NHibernate.5.2.6\lib\net461\NHibernate.dll - - ..\packages\Remotion.Linq.2.1.2\lib\net45\Remotion.Linq.dll + + ..\packages\Remotion.Linq.2.2.0\lib\net45\Remotion.Linq.dll - - ..\packages\Remotion.Linq.EagerFetching.2.1.0\lib\net45\Remotion.Linq.EagerFetching.dll + + ..\packages\Remotion.Linq.EagerFetching.2.2.0\lib\net45\Remotion.Linq.EagerFetching.dll + + + ..\packages\SSH.NET.2016.1.0\lib\net40\Renci.SshNet.dll - - ..\packages\System.Data.SQLite.Core.1.0.109.1\lib\net46\System.Data.SQLite.dll + + ..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net46\System.Data.SQLite.dll - - ..\packages\System.Data.SQLite.EF6.1.0.109.0\lib\net46\System.Data.SQLite.EF6.dll + + ..\packages\System.Data.SQLite.EF6.1.0.112.0\lib\net46\System.Data.SQLite.EF6.dll - - ..\packages\System.Data.SQLite.Linq.1.0.109.0\lib\net46\System.Data.SQLite.Linq.dll + + ..\packages\System.Data.SQLite.Linq.1.0.112.0\lib\net46\System.Data.SQLite.Linq.dll @@ -104,10 +109,13 @@ This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - + + + + + - - + + + \ No newline at end of file diff --git a/UtilTests/app.config b/UtilTests/app.config index 438a738..860e016 100644 --- a/UtilTests/app.config +++ b/UtilTests/app.config @@ -8,7 +8,7 @@ - + @@ -26,6 +26,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/UtilTests/packages.config b/UtilTests/packages.config index 92cb729..fc5b3de 100644 --- a/UtilTests/packages.config +++ b/UtilTests/packages.config @@ -1,15 +1,16 @@  - + - - - - - - - - - + + + + + + + + + + \ No newline at end of file From 90e7956359be5aac724779a7f3620f8025ef56c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Thu, 16 Jan 2020 17:55:01 +0100 Subject: [PATCH 07/10] Fix path to the SolutionDirectory as tests won't run with the old one --- GitDensityTests/HunkTests.cs | 2 +- GitHoursTests/GitHoursAuthorSpanTests.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GitDensityTests/HunkTests.cs b/GitDensityTests/HunkTests.cs index d78e36d..7dc6958 100644 --- a/GitDensityTests/HunkTests.cs +++ b/GitDensityTests/HunkTests.cs @@ -34,7 +34,7 @@ namespace GitDensityTests public class HunkTests { public static DirectoryInfo SolutionDirectory - => new DirectoryInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Locati‌​on)).Parent.Parent.Parent; + => new DirectoryInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Locati‌​on)).Parent.Parent; [TestMethod] diff --git a/GitHoursTests/GitHoursAuthorSpanTests.cs b/GitHoursTests/GitHoursAuthorSpanTests.cs index 3456a9a..5bf855f 100644 --- a/GitHoursTests/GitHoursAuthorSpanTests.cs +++ b/GitHoursTests/GitHoursAuthorSpanTests.cs @@ -29,7 +29,7 @@ namespace GitHoursTests public class GitHoursAuthorSpanTests { public static DirectoryInfo SolutionDirectory - => new DirectoryInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Locati‌​on)).Parent.Parent.Parent; + => new DirectoryInfo(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Locati‌​on)).Parent.Parent; [TestMethod] public void TestAggregateHoursStats() From fbc97a0534d1727d5d6ac63bd40dce10b4f8c522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Thu, 16 Jan 2020 17:55:31 +0100 Subject: [PATCH 08/10] Fix a bug in how Density::GitDensity is initialized --- GitDensity/Program.cs | 1 + GitMetrics/GitMetrics.csproj | 65 +++++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 26 deletions(-) diff --git a/GitDensity/Program.cs b/GitDensity/Program.cs index 9c64cad..eb157a5 100644 --- a/GitDensity/Program.cs +++ b/GitDensity/Program.cs @@ -233,6 +233,7 @@ static void Main(string[] args) .Where(kv => options.ProgrammingLanguages.Contains(kv.Key)) .SelectMany(kv => kv.Value), options.TempDirectory, + options.SkipGitHoursAnalysis, options.SkipGitMetricsAnalysis)) { density.ExecutionPolicy = options.ExecutionPolicy; diff --git a/GitMetrics/GitMetrics.csproj b/GitMetrics/GitMetrics.csproj index 2424383..d2083d7 100644 --- a/GitMetrics/GitMetrics.csproj +++ b/GitMetrics/GitMetrics.csproj @@ -45,47 +45,60 @@ ..\packages\LibGit2Sharp.0.26.0\lib\net46\LibGit2Sharp.dll - - ..\packages\Microsoft.Extensions.Configuration.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll - - ..\packages\Microsoft.Extensions.Configuration.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - - ..\packages\Microsoft.Extensions.Configuration.Binder.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll + + ..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.Binder.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - - ..\packages\Microsoft.Extensions.Logging.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.3.1.1\lib\net461\Microsoft.Extensions.DependencyInjection.dll - - ..\packages\Microsoft.Extensions.Logging.Abstractions.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - ..\packages\Microsoft.Extensions.Options.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + ..\packages\Microsoft.Extensions.Logging.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - - ..\packages\Microsoft.Extensions.Primitives.2.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + ..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\Microsoft.Extensions.Options.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + + ..\packages\Microsoft.Extensions.Primitives.3.1.1\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + + ..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll - - ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + + ..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll + + - - ..\packages\System.Memory.4.5.1\lib\netstandard2.0\System.Memory.dll + + ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll - - ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.1\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll From e963fa828f6e7027f160f13d156afc8cddfe5e1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Thu, 16 Jan 2020 18:05:31 +0100 Subject: [PATCH 09/10] Extend functionality of GitCommitSpan and make use of it in the GitTools' Analysis; also refactor its SimpleAnalyzer and ExtendedAnalyzer --- GitDensity/Density/GitDensity.cs | 3 +- GitDensity/Similarity/TextBlock.cs | 4 +- GitTools/Analysis/BaseAnalyzer.cs | 52 ------------ .../ExtendedAnalyzer/ExtendedAnalyzer.cs | 56 +++++++++++- .../ExtendedAnalyzer/ExtendedCommitDetails.cs | 6 ++ .../Analysis/SimpleAnalyzer/SimpleAnalyzer.cs | 13 +-- .../SimpleAnalyzer/SimpleCommitDetails.cs | 6 -- GitTools/Program.cs | 28 ++++-- Util/GitCommitSpan.cs | 85 ++++++++++++++++--- 9 files changed, 163 insertions(+), 90 deletions(-) diff --git a/GitDensity/Density/GitDensity.cs b/GitDensity/Density/GitDensity.cs index 18da0d0..9e782fa 100644 --- a/GitDensity/Density/GitDensity.cs +++ b/GitDensity/Density/GitDensity.cs @@ -232,7 +232,7 @@ public GitDensityAnalysisResult Analyze() var dirOld = "old"; var dirNew = "new"; var repoEntity = this.Repository.AsEntity(this.GitCommitSpan); - var developers = this.GitCommitSpan.FilteredCommits.GroupByDeveloperAsSignatures(repoEntity); + var developers = this.GitCommitSpan.GroupByDeveloperAsSignatures(repoEntity); repoEntity.AddDevelopers(new HashSet(developers.Values)); var commits = this.GitCommitSpan.FilteredCommits.Select(commit => commit.AsEntity(repoEntity, developers[commit.Author])) @@ -308,6 +308,7 @@ public GitDensityAnalysisResult Analyze() var patchNew = pair.Patch[change.Path]; var patchOld = pair.Patch[change.OldPath]; var treeChangeEntity = change.AsEntity(pairEntity); + // As this is either a new (added) or old (deleted) file, there is only one Hunk. var hunk = Hunk.HunksForPatch(added ? patchNew : patchOld, oldDirectory, newDirectory).Single(); // We explicitly pass an empty enumerable for the clone-sets, as there possibly diff --git a/GitDensity/Similarity/TextBlock.cs b/GitDensity/Similarity/TextBlock.cs index cddaa27..9c37b6d 100644 --- a/GitDensity/Similarity/TextBlock.cs +++ b/GitDensity/Similarity/TextBlock.cs @@ -373,7 +373,7 @@ public static void CountLinesInPatch(PatchEntryChanges pec, out UInt32 linesAddedWithoutEmptyOrComments, out UInt32 linesDeletedWithoutEmptyOrComments) { - var hunks = Hunk.HunksForPatch(pec); + var hunks = Hunk.HunksForPatch(pec).ToList(); var tbsAdded = hunks.Select(hunk => new TextBlock(hunk, TextBlockType.New)).ToList(); var tbsDeleted = hunks.Select(hunk => new TextBlock(hunk, TextBlockType.Old)).ToList(); @@ -387,6 +387,8 @@ public static void CountLinesInPatch(PatchEntryChanges pec, linesDeletedWithoutEmptyOrComments = (UInt32)tbsDeleted .Select(tb => tb.RemoveEmptyLinesAndComments()) .Sum(tb => tb.LinesDeleted); + + hunks.ForEach(hunk => hunk.Clear()); } /// diff --git a/GitTools/Analysis/BaseAnalyzer.cs b/GitTools/Analysis/BaseAnalyzer.cs index 02e73b4..00b7534 100644 --- a/GitTools/Analysis/BaseAnalyzer.cs +++ b/GitTools/Analysis/BaseAnalyzer.cs @@ -17,13 +17,7 @@ using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; using Util; -using Util.Data.Entities; -using Util.Extensions; -using static Util.Extensions.RepositoryExtensions; -using Signature = LibGit2Sharp.Signature; namespace GitTools.Analysis { @@ -50,10 +44,6 @@ public abstract class BaseAnalyzer : /// public GitCommitSpan GitCommitSpan { get; protected set; } - private IReadOnlyDictionary authorSignatures; - - private IReadOnlyDictionary committerSignatures; - /// /// Base constructor that initalizes the repo-path and commits-span. /// @@ -63,49 +53,7 @@ public BaseAnalyzer(String repoPathOrUrl, GitCommitSpan span) { this.RepoPathOrUrl = repoPathOrUrl; this.GitCommitSpan = span; - this.InitializeNominalSignatures(); - } - - #region Nominal Signatures - /// - /// Will map each uniquely to a . - /// Then, for each entity, a unique ID (within the current repository) is assigned. The - /// IDs look like Excel columns. - /// - private void InitializeNominalSignatures() - { - this.Logger.LogInformation("Initializing developer identities for repository.."); - - this.authorSignatures = new ReadOnlyDictionary( - this.GitCommitSpan.GroupByDeveloperAsSignatures( - repository: null, useAuthorAndNotCommitter: true)); - this.committerSignatures = new ReadOnlyDictionary( - this.GitCommitSpan.GroupByDeveloperAsSignatures( - repository: null, useAuthorAndNotCommitter: false)); - - var set = new HashSet(this.authorSignatures.Select(kv => kv.Value) - .Concat(this.committerSignatures.Select(kv => kv.Value))); - - this.Logger.LogInformation($"Found {String.Format("{0:n0}", this.authorSignatures.Count + this.committerSignatures.Count)} signatures and mapped them to {String.Format("{0:n0}", set.Count)} distinct developer identities."); - } - - /// - /// Returns a unique nominal ID for a and - /// based on . - /// The label is guaranteed to start with a letter and to never be longer - /// than 16 characters. - /// - /// - /// - /// - protected void AuthorAndCommitterNominalForCommit(Commit commit, out string authorNominal, out string committerNominal) - { - authorNominal = - $"L{this.authorSignatures[commit.Author].SHA256Hash.Substring(0, 15)}"; - committerNominal = - $"L{this.committerSignatures[commit.Committer].SHA256Hash.Substring(0, 15)}"; } - #endregion #region ISupportsExecutionPolicy /// diff --git a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs index ab54102..1d23469 100644 --- a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs +++ b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs @@ -13,22 +13,22 @@ /// /// --------------------------------------------------------------------------------- /// -using GitDensity.Density; using GitDensity.Similarity; using LibGit2Sharp; using Microsoft.Extensions.Logging; using System; using System.Collections.Concurrent; using System.Collections.Generic; -using System.IO; +using System.Collections.ObjectModel; using System.Linq; using System.Threading; using System.Threading.Tasks; using Util; +using Util.Data.Entities; using Util.Density; using Util.Extensions; using Util.Logging; -using Util.Metrics; +using static Util.Extensions.RepositoryExtensions; namespace GitTools.Analysis.ExtendedAnalyzer { @@ -51,6 +51,10 @@ public class ExtendedAnalyzer : BaseAnalyzer /// public Boolean SkipSizeAnalysis { get; protected set; } + private IReadOnlyDictionary authorSignatures; + + private IReadOnlyDictionary committerSignatures; + /// /// This is a forwarding constructor that does not do any other /// initialization than . @@ -62,7 +66,49 @@ public ExtendedAnalyzer(String repoPathOrUrl, GitCommitSpan span, Boolean skipSi : base(repoPathOrUrl, span) { this.SkipSizeAnalysis = skipSizeAnalysis; + this.InitializeNominalSignatures(); + } + + #region Nominal Signatures + /// + /// Will map each uniquely to a . + /// Then, for each entity, a unique ID (within the current repository) is assigned. The + /// IDs look like Excel columns. + /// + private void InitializeNominalSignatures() + { + this.Logger.LogInformation("Initializing developer identities for repository.."); + + this.authorSignatures = new ReadOnlyDictionary( + this.GitCommitSpan.GroupByDeveloperAsSignatures( + repository: null, useAuthorAndNotCommitter: true)); + this.committerSignatures = new ReadOnlyDictionary( + this.GitCommitSpan.GroupByDeveloperAsSignatures( + repository: null, useAuthorAndNotCommitter: false)); + + var set = new HashSet(this.authorSignatures.Select(kv => kv.Value) + .Concat(this.committerSignatures.Select(kv => kv.Value))); + + this.Logger.LogInformation($"Found {String.Format("{0:n0}", this.authorSignatures.Count + this.committerSignatures.Count)} signatures and mapped them to {String.Format("{0:n0}", set.Count)} distinct developer identities."); + } + + /// + /// Returns a unique nominal ID for a and + /// based on . + /// The label is guaranteed to start with a letter and to never be longer + /// than 16 characters. + /// + /// + /// + /// + protected void AuthorAndCommitterNominalForCommit(Commit commit, out string authorNominal, out string committerNominal) + { + authorNominal = + $"L{this.authorSignatures[commit.Author].SHA256Hash.Substring(0, 15)}"; + committerNominal = + $"L{this.committerSignatures[commit.Committer].SHA256Hash.Substring(0, 15)}"; } + #endregion /// /// This method will use s for extracting @@ -94,7 +140,7 @@ public override IEnumerable AnalyzeCommits() { // We do this to avoid thread-congestion while still achieving // a respectable CPU usage, as the loop-callback is IO-bound. - po.MaxDegreeOfParallelism = Environment.ProcessorCount * 32; + po.MaxDegreeOfParallelism = Environment.ProcessorCount * 64; this.Logger.LogDebug($"Using maximum degree of parallelism = {po.MaxDegreeOfParallelism} in {nameof(ExtendedAnalyzer)}."); } @@ -132,6 +178,7 @@ public override IEnumerable AnalyzeCommits() var patch = pair.Patch[added ? change.Path : change.OldPath]; TextBlock.CountLinesInPatch(patch, out var add, out var del, out var addNoC, out var delNoC); + patch.Clear(setStringBuilderNull: true); if (added) { @@ -160,6 +207,7 @@ public override IEnumerable AnalyzeCommits() var patch = pair.Patch[change.Path]; TextBlock.CountLinesInPatch(patch, out var add, out var del, out var addNoC, out var delNoC); + patch.Clear(setStringBuilderNull: true); var fileAffected = addNoC > 0u || delNoC > 0u; if (modified) diff --git a/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs b/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs index 599cf91..4ae51c9 100644 --- a/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs +++ b/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs @@ -53,6 +53,12 @@ public override string Message [CsvColumn(FieldIndex = 7)] public double MinutesSincePreviousCommit { get; protected internal set; } = -.1; + [CsvColumn(FieldIndex = 11)] + public String AuthorNominalLabel { get; protected internal set; } = String.Empty; + + [CsvColumn(FieldIndex = 12)] + public String CommitterNominalLabel { get; protected internal set; } = String.Empty; + [CsvColumn(FieldIndex = 17)] public UInt32 NumberOfFilesAdded { get; protected internal set; } = 0u; diff --git a/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs b/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs index 2a3dd01..cc2b0f1 100644 --- a/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs +++ b/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs @@ -29,6 +29,9 @@ namespace GitTools.Analysis.SimpleAnalyzer /// /// An implementation of that maps each /// commit to an instance of . + /// The is very fast, as it does not + /// compute any properties or gather information by taking one or + /// more parents of a commit into account. /// public class SimpleAnalyzer : BaseAnalyzer { @@ -75,15 +78,7 @@ public override IEnumerable AnalyzeCommits() Parallel.ForEach(this.GitCommitSpan, po, commit => { - String authorLabel, committerLabel; - this.AuthorAndCommitterNominalForCommit( - commit, out authorLabel, out committerLabel); - - bag.Add(new SimpleCommitDetails(this.RepoPathOrUrl, commit) - { - AuthorNominalLabel = authorLabel, - CommitterNominalLabel = committerLabel - }); + bag.Add(new SimpleCommitDetails(this.RepoPathOrUrl, commit)); reporter.ReportProgress(Interlocked.Increment(ref done), total); }); diff --git a/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs b/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs index 382d10b..40e677e 100644 --- a/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs +++ b/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs @@ -82,12 +82,6 @@ public SimpleCommitDetails(String repoPathOrUrl, Commit commit) [CsvColumn(FieldIndex = 10)] public String CommitterEmail => this.commit.Committer.Email; - [CsvColumn(FieldIndex = 11)] - public String AuthorNominalLabel { get; protected internal set; } = String.Empty; - - [CsvColumn(FieldIndex = 12)] - public String CommitterNominalLabel { get; protected internal set; } = String.Empty; - /// /// This is a boolean field but we use 0/1 for compatibility reasons. /// diff --git a/GitTools/Program.cs b/GitTools/Program.cs index f26c6d8..0efdef4 100644 --- a/GitTools/Program.cs +++ b/GitTools/Program.cs @@ -27,7 +27,6 @@ using System.Globalization; using System.IO; using System.Linq; -using System.Text; using System.Threading; using Util; using Util.Data; @@ -129,7 +128,20 @@ static void Main(string[] args) repoTempPath, pullIfAlreadyExists: true)) { logger.LogInformation($"Repository is located in {repo.Info.WorkingDirectory}"); - var span = new GitCommitSpan(repo, options.Since, options.Until); + + ISet sha1IDs = null; + if (!String.IsNullOrEmpty(options.InputCommitIDs)) + { + sha1IDs = new HashSet( + File.ReadAllLines(Path.GetFullPath(options.InputCommitIDs)).Where(l => l.Length >= 40)); + } + + var span = new GitCommitSpan( + repo, options.Since, options.Until, options.Limit, sha1IDs); + if (span.SHA1Filter.Count > 0) + { + logger.LogTrace($"Using the following commit-IDs for the {nameof(GitCommitSpan)}: {String.Join(", ", span.SHA1Filter)}"); + } #region Check for commands if (options.CmdCountCommits) @@ -139,7 +151,7 @@ static void Main(string[] args) var commits = span.OrderBy(c => c.Author.When.UtcDateTime).ToList(); var json = JsonConvert.SerializeObject(new { - Count = commits.Count, + commits.Count, SHA1s = commits.Select(c => c.ShaShort()) }); @@ -258,10 +270,10 @@ public static void FixDeveloperNominalLabels(CommandLineOptions options) using (var repo = p.OpenRepository(options.TempDirectory, null, true)) { var span = new GitCommitSpan(repo, options.Since, options.Until); - var analyzer = new SimpleAnalyzer(options.RepoPath, span); + var analyzer = new ExtendedAnalyzer(options.RepoPath, span, skipSizeAnalysis: true); analyzer.ExecutionPolicy = ExecutionPolicy.Parallel; - var commits = new HashSet(analyzer.AnalyzeCommits()); + var commits = new HashSet(analyzer.AnalyzeCommits()); using (var sess = DataFactory.Instance.OpenSession()) { @@ -367,6 +379,12 @@ internal class CommandLineOptions [JsonConverter(typeof(StringEnumConverter))] public ExecutionPolicy ExecutionPolicy { get; set; } = ExecutionPolicy.Parallel; + [Option('i', "input-ids", Required = false, DefaultValue = null, HelpText = "Optional. A path to a file with SHA1's of commits to analyze (one SHA1 per line). If given, then only those commits will be analyzed and all others will be skipped. Can be used in conjunction with --limit.")] + public String InputCommitIDs { get; set; } + + [Option("limit", Required = false, DefaultValue = null, HelpText = "Optional. A positive integer to limit the amount of commits analyzed. Can be used in conjunction with any other options (such as -i).")] + public UInt32? Limit { get; set; } + [Option('l', "log-level", Required = false, DefaultValue = LogLevel.Information, HelpText = "Optional. The Log-level can be one of (highest/most verbose to lowest/least verbose) Trace, Debug, Information, Warning, Error, Critical, None.")] [JsonConverter(typeof(StringEnumConverter))] public LogLevel LogLevel { get; set; } = LogLevel.Information; diff --git a/Util/GitCommitSpan.cs b/Util/GitCommitSpan.cs index 474086b..60c17f7 100644 --- a/Util/GitCommitSpan.cs +++ b/Util/GitCommitSpan.cs @@ -13,6 +13,7 @@ /// /// --------------------------------------------------------------------------------- /// +using Iesi.Collections.Generic; using LibGit2Sharp; using Newtonsoft.Json; using System; @@ -49,23 +50,36 @@ public class GitCommitSpan : IDisposable, IEnumerable [JsonIgnore] public Repository Repository { get; private set; } + private Lazy> lazyAllCommits; + + /// + /// Gets a collection with all of the wrapped repository's commits (i.e. no + /// filters or since/until is applied here). The underlying linked list is + /// ordered by 's utc time, oldest + /// to newest. + /// + [JsonIgnore] + public LinkedList AllCommits => this.lazyAllCommits.Value; + private Lazy> lazyFilteredCommits; /// - /// Get a collection of commits to consider according to the since/until values. + /// Gets a collection of commits to consider according to the since/until values. + /// When using this as , + /// an of the filtered commits is returned. /// [JsonIgnore] public LinkedList FilteredCommits => this.lazyFilteredCommits.Value; - [JsonProperty(NullValueHandling = NullValueHandling.Ignore, Order = 1)] + [JsonProperty(NullValueHandling = NullValueHandling.Include, Order = 1)] public DateTime? SinceDateTime { get; private set; } - [JsonProperty(NullValueHandling = NullValueHandling.Ignore, Order = 3)] + [JsonProperty(NullValueHandling = NullValueHandling.Include, Order = 3)] public DateTime? UntilDateTime { get; private set; } - [JsonProperty(NullValueHandling = NullValueHandling.Ignore, Order = 2)] + [JsonProperty(NullValueHandling = NullValueHandling.Include, Order = 2)] public String SinceCommitSha { get; private set; } - [JsonProperty(NullValueHandling = NullValueHandling.Ignore, Order = 4)] + [JsonProperty(NullValueHandling = NullValueHandling.Include, Order = 4)] public String UntilCommitSha { get; private set; } [JsonIgnore] @@ -78,16 +92,35 @@ public class GitCommitSpan : IDisposable, IEnumerable this.UntilDateTime.HasValue ? this.UntilDateTime.ToString() : "#" + this.UntilCommitSha.Substring(0, Math.Min(this.UntilCommitSha.Length, 8)); + /// + /// Can be set to limit the amount of commits that are returned. When combined + /// with since/until, this can be a powerful tool to retrieve a certain amount + /// of commits using offsets. Note that the limit is applied after the filter. + /// + [JsonProperty(NullValueHandling = NullValueHandling.Include, Order = 5)] + public UInt32? Limit { get; private set; } + + [JsonIgnore] + private readonly ReadOnlySet sha1Filter; + /// + /// A set of SHA1 that can be set to limit this even + /// beyond any since/until constraints. Defaults to an empty set. + /// + [JsonProperty(NullValueHandling = NullValueHandling.Include, Order = 6)] + public ReadOnlySet SHA1Filter => this.sha1Filter; + /// /// Constructs a new using two s /// to delimit the range. Both s will be included in the span. /// - /// . + /// . /// /// /// - public GitCommitSpan(Repository repository, Commit sinceCommit, Commit untilCommit) - : this(repository, sinceCommit.Sha, untilCommit.Sha) + /// + /// + public GitCommitSpan(Repository repository, Commit sinceCommit, Commit untilCommit, UInt32? limit = null, ISet sha1IDs = null) + : this(repository, sinceCommit.Sha, untilCommit.Sha, limit, sha1IDs) { } @@ -105,9 +138,15 @@ public GitCommitSpan(Repository repository, Commit sinceCommit, Commit untilComm /// date/time (according to ). This offset is the /// inclusive end of the span. Defaults to null. If null, will assume /// for . - public GitCommitSpan(Repository repository, String sinceDateTimeOrCommitSha = null, String untilDatetimeOrCommitSha = null) + /// + /// + public GitCommitSpan(Repository repository, String sinceDateTimeOrCommitSha = null, String untilDatetimeOrCommitSha = null, UInt32? limit = null, ISet sha1IDs = null) { this.Repository = repository; + this.Limit = limit; + this.sha1Filter = new ReadOnlySet(new HashSet( + (sha1IDs ?? Enumerable.Empty()).Select(v => v.Trim().ToLower()))); + var ic = CultureInfo.InvariantCulture; if (sinceDateTimeOrCommitSha == null) @@ -144,9 +183,27 @@ public GitCommitSpan(Repository repository, String sinceDateTimeOrCommitSha = nu } } + this.lazyAllCommits = new Lazy>(() => + { + return new LinkedList( + this.Repository.GetAllCommits() + .OrderBy(commit => commit.Committer.When.UtcDateTime)); + }); + this.lazyFilteredCommits = new Lazy>(() => { - var orderedOldToNew = this.Repository.GetAllCommits().OrderBy(commit => commit.Committer.When.UtcDateTime).ToList(); + IEnumerable ie = this.AllCommits; + if (this.SHA1Filter.Count > 0) + { + ie = ie.Where(c => this.SHA1Filter.Contains(c.Sha)); + } + if (this.Limit.HasValue) + { + ie = ie.Take((Int32)this.Limit.Value); + } + + var orderedOldToNew = new List(ie); + var idxSince = orderedOldToNew.FindIndex(commit => { if (this.SinceDateTime.HasValue) @@ -212,7 +269,10 @@ public void Dispose() #region IEnumerable Support /// - /// Returns an enumerator for . + /// Returns an enumerator for . This enumerator may + /// be further limited if and were + /// applied. Note that any additional limitation will result in fewer elements + /// returned, respectively. /// /// An public IEnumerator GetEnumerator() @@ -221,7 +281,8 @@ public IEnumerator GetEnumerator() } /// - /// Returns an enumerator for . + /// Returns an enumerator for . This is a wrapper + /// and returns the enumerator from . /// /// An IEnumerator IEnumerable.GetEnumerator() From 2627cf3ef31590e0f50a8d3df1dc024e6fa905dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20H=C3=B6nel?= Date: Thu, 16 Jan 2020 18:33:58 +0100 Subject: [PATCH 10/10] Update years, copyright, readme.me to 2020 and prepare for new release --- .../CloneDensity/CloneDetectionWrapper.cs | 2 +- GitDensity/Density/CloneDensity/ClonesXml.cs | 2 +- GitDensity/Density/GitDensity.cs | 2 +- .../Density/GitDensityAnalysisResult.cs | 2 +- GitDensity/Density/Hunk.cs | 2 +- GitDensity/Program.cs | 2 +- GitDensity/Properties/AssemblyInfo.cs | 4 +-- GitDensity/Similarity/Line.cs | 2 +- GitDensity/Similarity/Similarity.cs | 2 +- GitDensity/Similarity/TextBlock.cs | 2 +- GitDensityTests/HunkTests.cs | 2 +- GitDensityTests/Properties/AssemblyInfo.cs | 5 ++- GitDensityTests/TextBlockTests.cs | 2 +- GitHours/Hours/GitHours.cs | 2 +- GitHours/Hours/GitHoursAnalysisResult.cs | 2 +- GitHours/Hours/GitHoursAuthorSpan.cs | 2 +- GitHours/Hours/GitHoursAuthorSpanDetailed.cs | 2 +- GitHours/Hours/GitHoursAuthorStat.cs | 2 +- GitHours/Program.cs | 2 +- GitHours/Properties/AssemblyInfo.cs | 4 +-- GitHoursTests/EstimationTests.cs | 2 +- GitHoursTests/GitHoursAuthorSpanTests.cs | 2 +- GitHoursTests/Properties/AssemblyInfo.cs | 4 +-- GitMetrics/Program.cs | 2 +- GitMetrics/Properties/AssemblyInfo.cs | 5 ++- .../QualityAnalyzer/IMetricsAnalyzer.cs | 2 +- .../QualityAnalyzer/MetricsAnalysisResult.cs | 2 +- .../QualityAnalyzer/RepositoryAnalyzer.cs | 2 +- .../VizzAnalyzer/JsonEntity.cs | 2 +- .../VizzAnalyzer/JsonMetrics.cs | 2 +- .../VizzAnalyzer/JsonOutput.cs | 2 +- .../VizzAnalyzer/VizzMetricsAnalyzer.cs | 2 +- GitTools/Analysis/AnalysisType.cs | 2 +- GitTools/Analysis/BaseAnalyzer.cs | 2 +- .../ExtendedAnalyzer/ExtendedAnalyzer.cs | 2 +- .../ExtendedAnalyzer/ExtendedCommitDetails.cs | 2 +- GitTools/Analysis/IAnalyzedCommit.cs | 2 +- GitTools/Analysis/IAnalyzer.cs | 2 +- .../Analysis/SimpleAnalyzer/SimpleAnalyzer.cs | 2 +- .../SimpleAnalyzer/SimpleCommitDetails.cs | 2 +- GitTools/Program.cs | 2 +- GitTools/Properties/AssemblyInfo.cs | 3 +- Util/ColoredConsole.cs | 2 +- Util/Configuration.cs | 2 +- Util/Data/DataFactory.cs | 2 +- Util/Data/Entities/BaseEntity.cs | 2 +- Util/Data/Entities/CommitEntity.cs | 2 +- .../Entities/CommitMetricsStatusEntity.cs | 2 +- Util/Data/Entities/CommitPairEntity.cs | 2 +- Util/Data/Entities/DeveloperEntity.cs | 2 +- Util/Data/Entities/FileBlockEntity.cs | 2 +- Util/Data/Entities/HoursEntity.cs | 2 +- Util/Data/Entities/HoursTypeEntity.cs | 2 +- Util/Data/Entities/MetricEntity.cs | 2 +- Util/Data/Entities/MetricTypeEntity.cs | 2 +- Util/Data/Entities/ProjectEntity.cs | 2 +- Util/Data/Entities/RepositoryEntity.cs | 2 +- Util/Data/Entities/SimilarityEntity.cs | 2 +- Util/Data/Entities/TreeEntryChangesEntity.cs | 2 +- .../Entities/TreeEntryChangesMetricsEntity.cs | 2 +- .../Entities/TreeEntryContributionEntity.cs | 2 +- Util/Data/ForeignKeyConvention.cs | 32 +------------------ Util/Data/Indexed.cs | 2 +- Util/Data/StringEnumMapper.cs | 2 +- Util/Density/CommitPair.cs | 2 +- Util/Extensions/DirectoryInfoExtensions.cs | 2 +- Util/Extensions/EntityExtensions.cs | 2 +- Util/Extensions/IEnumerableExtensions.cs | 2 +- Util/Extensions/RepositoryExtensions.cs | 2 +- Util/Extensions/StringExtensions.cs | 2 +- Util/GitCommitSpan.cs | 2 +- Util/ISupportsExecutionPolicy.cs | 2 +- Util/Logging/BaseLogger.cs | 2 +- Util/Logging/ColoredConsoleLogger.cs | 2 +- Util/Metrics/SimpleLOC.cs | 2 +- Util/Properties/AssemblyInfo.cs | 4 +-- .../DefaultNoSimilarityMeasurement.cs | 2 +- Util/Similarity/SimilarityComparisonType.cs | 2 +- Util/Similarity/SimilarityMeasurementType.cs | 2 +- UtilTests/DataFactoryTests.cs | 2 +- UtilTests/Properties/AssemblyInfo.cs | 4 +-- UtilTests/SimpleLocTests.cs | 2 +- readme.md | 18 ++++++----- 83 files changed, 99 insertions(+), 130 deletions(-) diff --git a/GitDensity/Density/CloneDensity/CloneDetectionWrapper.cs b/GitDensity/Density/CloneDensity/CloneDetectionWrapper.cs index a9f405a..2a2f7ad 100644 --- a/GitDensity/Density/CloneDensity/CloneDetectionWrapper.cs +++ b/GitDensity/Density/CloneDensity/CloneDetectionWrapper.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensity/Density/CloneDensity/ClonesXml.cs b/GitDensity/Density/CloneDensity/ClonesXml.cs index f0d4901..3d53881 100644 --- a/GitDensity/Density/CloneDensity/ClonesXml.cs +++ b/GitDensity/Density/CloneDensity/ClonesXml.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensity/Density/GitDensity.cs b/GitDensity/Density/GitDensity.cs index 9e782fa..e2f6e6a 100644 --- a/GitDensity/Density/GitDensity.cs +++ b/GitDensity/Density/GitDensity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensity/Density/GitDensityAnalysisResult.cs b/GitDensity/Density/GitDensityAnalysisResult.cs index 78e54bc..70f7b3b 100644 --- a/GitDensity/Density/GitDensityAnalysisResult.cs +++ b/GitDensity/Density/GitDensityAnalysisResult.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensity/Density/Hunk.cs b/GitDensity/Density/Hunk.cs index 97c74bd..5885778 100644 --- a/GitDensity/Density/Hunk.cs +++ b/GitDensity/Density/Hunk.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensity/Program.cs b/GitDensity/Program.cs index eb157a5..8c327f5 100644 --- a/GitDensity/Program.cs +++ b/GitDensity/Program.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensity/Properties/AssemblyInfo.cs b/GitDensity/Properties/AssemblyInfo.cs index 56ff834..39ce1b4 100644 --- a/GitDensity/Properties/AssemblyInfo.cs +++ b/GitDensity/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// @@ -25,7 +25,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("GitDensity")] -[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2019")] +[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2020")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/GitDensity/Similarity/Line.cs b/GitDensity/Similarity/Line.cs index d4bb2c2..5b7221b 100644 --- a/GitDensity/Similarity/Line.cs +++ b/GitDensity/Similarity/Line.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensity/Similarity/Similarity.cs b/GitDensity/Similarity/Similarity.cs index d6d6b73..429a934 100644 --- a/GitDensity/Similarity/Similarity.cs +++ b/GitDensity/Similarity/Similarity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensity/Similarity/TextBlock.cs b/GitDensity/Similarity/TextBlock.cs index 9c37b6d..f2c1852 100644 --- a/GitDensity/Similarity/TextBlock.cs +++ b/GitDensity/Similarity/TextBlock.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensityTests/HunkTests.cs b/GitDensityTests/HunkTests.cs index 7dc6958..8f8168e 100644 --- a/GitDensityTests/HunkTests.cs +++ b/GitDensityTests/HunkTests.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitDensityTests/Properties/AssemblyInfo.cs b/GitDensityTests/Properties/AssemblyInfo.cs index 1426d44..6b50349 100644 --- a/GitDensityTests/Properties/AssemblyInfo.cs +++ b/GitDensityTests/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// @@ -14,7 +14,6 @@ /// --------------------------------------------------------------------------------- /// using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("GitDensityTests")] @@ -22,7 +21,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("GitDensityTests")] -[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2019")] +[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2020")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/GitDensityTests/TextBlockTests.cs b/GitDensityTests/TextBlockTests.cs index cce32a9..350b10c 100644 --- a/GitDensityTests/TextBlockTests.cs +++ b/GitDensityTests/TextBlockTests.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHours/Hours/GitHours.cs b/GitHours/Hours/GitHours.cs index 52234f9..b7b14c5 100644 --- a/GitHours/Hours/GitHours.cs +++ b/GitHours/Hours/GitHours.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHours/Hours/GitHoursAnalysisResult.cs b/GitHours/Hours/GitHoursAnalysisResult.cs index e86d22e..6e19845 100644 --- a/GitHours/Hours/GitHoursAnalysisResult.cs +++ b/GitHours/Hours/GitHoursAnalysisResult.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHours/Hours/GitHoursAuthorSpan.cs b/GitHours/Hours/GitHoursAuthorSpan.cs index a4fc405..259637a 100644 --- a/GitHours/Hours/GitHoursAuthorSpan.cs +++ b/GitHours/Hours/GitHoursAuthorSpan.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHours/Hours/GitHoursAuthorSpanDetailed.cs b/GitHours/Hours/GitHoursAuthorSpanDetailed.cs index 5d01db3..c4ebf6a 100644 --- a/GitHours/Hours/GitHoursAuthorSpanDetailed.cs +++ b/GitHours/Hours/GitHoursAuthorSpanDetailed.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHours/Hours/GitHoursAuthorStat.cs b/GitHours/Hours/GitHoursAuthorStat.cs index 462a44a..15fcb98 100644 --- a/GitHours/Hours/GitHoursAuthorStat.cs +++ b/GitHours/Hours/GitHoursAuthorStat.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHours/Program.cs b/GitHours/Program.cs index 4194a12..884498e 100644 --- a/GitHours/Program.cs +++ b/GitHours/Program.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHours/Properties/AssemblyInfo.cs b/GitHours/Properties/AssemblyInfo.cs index f887c98..a356128 100644 --- a/GitHours/Properties/AssemblyInfo.cs +++ b/GitHours/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// @@ -25,7 +25,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("GitHours")] -[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2019")] +[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2020")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/GitHoursTests/EstimationTests.cs b/GitHoursTests/EstimationTests.cs index 1e79df1..35f885b 100644 --- a/GitHoursTests/EstimationTests.cs +++ b/GitHoursTests/EstimationTests.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHoursTests/GitHoursAuthorSpanTests.cs b/GitHoursTests/GitHoursAuthorSpanTests.cs index 5bf855f..26f6cab 100644 --- a/GitHoursTests/GitHoursAuthorSpanTests.cs +++ b/GitHoursTests/GitHoursAuthorSpanTests.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitHoursTests/Properties/AssemblyInfo.cs b/GitHoursTests/Properties/AssemblyInfo.cs index e5f0746..aed7fd5 100644 --- a/GitHoursTests/Properties/AssemblyInfo.cs +++ b/GitHoursTests/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// @@ -22,7 +22,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("GitHoursTests")] -[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2019")] +[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2020")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/GitMetrics/Program.cs b/GitMetrics/Program.cs index 0869cb0..e02407c 100644 --- a/GitMetrics/Program.cs +++ b/GitMetrics/Program.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitMetrics/Properties/AssemblyInfo.cs b/GitMetrics/Properties/AssemblyInfo.cs index 3b6c4ee..e82eeee 100644 --- a/GitMetrics/Properties/AssemblyInfo.cs +++ b/GitMetrics/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// @@ -14,7 +14,6 @@ /// --------------------------------------------------------------------------------- /// using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -25,7 +24,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("GitMetrics")] -[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2019")] +[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2020")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/GitMetrics/QualityAnalyzer/IMetricsAnalyzer.cs b/GitMetrics/QualityAnalyzer/IMetricsAnalyzer.cs index 596e11b..33d43b8 100644 --- a/GitMetrics/QualityAnalyzer/IMetricsAnalyzer.cs +++ b/GitMetrics/QualityAnalyzer/IMetricsAnalyzer.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitMetrics/QualityAnalyzer/MetricsAnalysisResult.cs b/GitMetrics/QualityAnalyzer/MetricsAnalysisResult.cs index e7ad0a1..498af09 100644 --- a/GitMetrics/QualityAnalyzer/MetricsAnalysisResult.cs +++ b/GitMetrics/QualityAnalyzer/MetricsAnalysisResult.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitMetrics/QualityAnalyzer/RepositoryAnalyzer.cs b/GitMetrics/QualityAnalyzer/RepositoryAnalyzer.cs index 588f66f..b66076f 100644 --- a/GitMetrics/QualityAnalyzer/RepositoryAnalyzer.cs +++ b/GitMetrics/QualityAnalyzer/RepositoryAnalyzer.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonEntity.cs b/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonEntity.cs index f4c5420..5e25278 100644 --- a/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonEntity.cs +++ b/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonMetrics.cs b/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonMetrics.cs index ee2ca32..0d815b8 100644 --- a/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonMetrics.cs +++ b/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonMetrics.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonOutput.cs b/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonOutput.cs index 3d356b2..7ba1b82 100644 --- a/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonOutput.cs +++ b/GitMetrics/QualityAnalyzer/VizzAnalyzer/JsonOutput.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitMetrics/QualityAnalyzer/VizzAnalyzer/VizzMetricsAnalyzer.cs b/GitMetrics/QualityAnalyzer/VizzAnalyzer/VizzMetricsAnalyzer.cs index 4c04855..7c95da2 100644 --- a/GitMetrics/QualityAnalyzer/VizzAnalyzer/VizzMetricsAnalyzer.cs +++ b/GitMetrics/QualityAnalyzer/VizzAnalyzer/VizzMetricsAnalyzer.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Analysis/AnalysisType.cs b/GitTools/Analysis/AnalysisType.cs index 2a1f96a..a7e703d 100644 --- a/GitTools/Analysis/AnalysisType.cs +++ b/GitTools/Analysis/AnalysisType.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Analysis/BaseAnalyzer.cs b/GitTools/Analysis/BaseAnalyzer.cs index 00b7534..836622c 100644 --- a/GitTools/Analysis/BaseAnalyzer.cs +++ b/GitTools/Analysis/BaseAnalyzer.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs index 1d23469..f2a528c 100644 --- a/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs +++ b/GitTools/Analysis/ExtendedAnalyzer/ExtendedAnalyzer.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs b/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs index 4ae51c9..0642ef8 100644 --- a/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs +++ b/GitTools/Analysis/ExtendedAnalyzer/ExtendedCommitDetails.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Analysis/IAnalyzedCommit.cs b/GitTools/Analysis/IAnalyzedCommit.cs index 1097d33..92fc84b 100644 --- a/GitTools/Analysis/IAnalyzedCommit.cs +++ b/GitTools/Analysis/IAnalyzedCommit.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Analysis/IAnalyzer.cs b/GitTools/Analysis/IAnalyzer.cs index c8322fd..3b8d813 100644 --- a/GitTools/Analysis/IAnalyzer.cs +++ b/GitTools/Analysis/IAnalyzer.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs b/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs index cc2b0f1..962ebe6 100644 --- a/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs +++ b/GitTools/Analysis/SimpleAnalyzer/SimpleAnalyzer.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs b/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs index 40e677e..19dd0ef 100644 --- a/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs +++ b/GitTools/Analysis/SimpleAnalyzer/SimpleCommitDetails.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Program.cs b/GitTools/Program.cs index 0efdef4..d128c36 100644 --- a/GitTools/Program.cs +++ b/GitTools/Program.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/GitTools/Properties/AssemblyInfo.cs b/GitTools/Properties/AssemblyInfo.cs index 8686362..59bb2ad 100644 --- a/GitTools/Properties/AssemblyInfo.cs +++ b/GitTools/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -10,7 +9,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("GitTools")] -[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2020")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/Util/ColoredConsole.cs b/Util/ColoredConsole.cs index 14fd57e..cbd2cf8 100644 --- a/Util/ColoredConsole.cs +++ b/Util/ColoredConsole.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Configuration.cs b/Util/Configuration.cs index 11890eb..24fab28 100644 --- a/Util/Configuration.cs +++ b/Util/Configuration.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/DataFactory.cs b/Util/Data/DataFactory.cs index dec722f..9c736be 100644 --- a/Util/Data/DataFactory.cs +++ b/Util/Data/DataFactory.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/BaseEntity.cs b/Util/Data/Entities/BaseEntity.cs index a4083d2..59e8124 100644 --- a/Util/Data/Entities/BaseEntity.cs +++ b/Util/Data/Entities/BaseEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/CommitEntity.cs b/Util/Data/Entities/CommitEntity.cs index dda8ab5..e53645f 100644 --- a/Util/Data/Entities/CommitEntity.cs +++ b/Util/Data/Entities/CommitEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/CommitMetricsStatusEntity.cs b/Util/Data/Entities/CommitMetricsStatusEntity.cs index 6ef71b2..40f4a4c 100644 --- a/Util/Data/Entities/CommitMetricsStatusEntity.cs +++ b/Util/Data/Entities/CommitMetricsStatusEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/CommitPairEntity.cs b/Util/Data/Entities/CommitPairEntity.cs index 1418f25..050fdd5 100644 --- a/Util/Data/Entities/CommitPairEntity.cs +++ b/Util/Data/Entities/CommitPairEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/DeveloperEntity.cs b/Util/Data/Entities/DeveloperEntity.cs index 3dc65eb..74f5ac1 100644 --- a/Util/Data/Entities/DeveloperEntity.cs +++ b/Util/Data/Entities/DeveloperEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/FileBlockEntity.cs b/Util/Data/Entities/FileBlockEntity.cs index 66293b7..4bda612 100644 --- a/Util/Data/Entities/FileBlockEntity.cs +++ b/Util/Data/Entities/FileBlockEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/HoursEntity.cs b/Util/Data/Entities/HoursEntity.cs index a796197..d81711a 100644 --- a/Util/Data/Entities/HoursEntity.cs +++ b/Util/Data/Entities/HoursEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/HoursTypeEntity.cs b/Util/Data/Entities/HoursTypeEntity.cs index 0db9614..d851c8e 100644 --- a/Util/Data/Entities/HoursTypeEntity.cs +++ b/Util/Data/Entities/HoursTypeEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/MetricEntity.cs b/Util/Data/Entities/MetricEntity.cs index b8ecb81..3cc4e0f 100644 --- a/Util/Data/Entities/MetricEntity.cs +++ b/Util/Data/Entities/MetricEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/MetricTypeEntity.cs b/Util/Data/Entities/MetricTypeEntity.cs index d72f714..8309ed0 100644 --- a/Util/Data/Entities/MetricTypeEntity.cs +++ b/Util/Data/Entities/MetricTypeEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/ProjectEntity.cs b/Util/Data/Entities/ProjectEntity.cs index 6c7b9fd..7b83a82 100644 --- a/Util/Data/Entities/ProjectEntity.cs +++ b/Util/Data/Entities/ProjectEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/RepositoryEntity.cs b/Util/Data/Entities/RepositoryEntity.cs index 7951746..5e4dd6c 100644 --- a/Util/Data/Entities/RepositoryEntity.cs +++ b/Util/Data/Entities/RepositoryEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/SimilarityEntity.cs b/Util/Data/Entities/SimilarityEntity.cs index 8a2cdcc..be3c1d8 100644 --- a/Util/Data/Entities/SimilarityEntity.cs +++ b/Util/Data/Entities/SimilarityEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/TreeEntryChangesEntity.cs b/Util/Data/Entities/TreeEntryChangesEntity.cs index 903dc74..bc2ec7b 100644 --- a/Util/Data/Entities/TreeEntryChangesEntity.cs +++ b/Util/Data/Entities/TreeEntryChangesEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/TreeEntryChangesMetricsEntity.cs b/Util/Data/Entities/TreeEntryChangesMetricsEntity.cs index 2d4a957..85dab9e 100644 --- a/Util/Data/Entities/TreeEntryChangesMetricsEntity.cs +++ b/Util/Data/Entities/TreeEntryChangesMetricsEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/Entities/TreeEntryContributionEntity.cs b/Util/Data/Entities/TreeEntryContributionEntity.cs index 11fa394..21bf54b 100644 --- a/Util/Data/Entities/TreeEntryContributionEntity.cs +++ b/Util/Data/Entities/TreeEntryContributionEntity.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/ForeignKeyConvention.cs b/Util/Data/ForeignKeyConvention.cs index f75259c..8e7a982 100644 --- a/Util/Data/ForeignKeyConvention.cs +++ b/Util/Data/ForeignKeyConvention.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// @@ -14,36 +14,6 @@ /// --------------------------------------------------------------------------------- /// using FluentNHibernate.Conventions.Instances; -/// --------------------------------------------------------------------------------- -/// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] -/// -/// https://github.com/MrShoenel/git-density -/// -/// This file is part of the project Util. All files in this project, -/// if not noted otherwise, are licensed under the MIT-license. -/// -/// --------------------------------------------------------------------------------- -/// -/// Permission is hereby granted, free of charge, to any person obtaining a -/// copy of this software and associated documentation files (the "Software"), -/// to deal in the Software without restriction, including without limitation -/// the rights to use, copy, modify, merge, publish, distribute, sublicense, -/// and/or sell copies of the Software, and to permit persons to whom the -/// Software is furnished to do so, subject to the following conditions: -/// -/// The above copyright notice and this permission notice shall be included in all -/// copies or substantial portions of the Software. -/// -/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -/// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -/// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -/// -/// --------------------------------------------------------------------------------- -/// using System; using System.Linq; using Util.Extensions; diff --git a/Util/Data/Indexed.cs b/Util/Data/Indexed.cs index b1e6ce7..d12321e 100644 --- a/Util/Data/Indexed.cs +++ b/Util/Data/Indexed.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Data/StringEnumMapper.cs b/Util/Data/StringEnumMapper.cs index 0f294d3..e3ebe46 100644 --- a/Util/Data/StringEnumMapper.cs +++ b/Util/Data/StringEnumMapper.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Density/CommitPair.cs b/Util/Density/CommitPair.cs index cb6a278..2fee369 100644 --- a/Util/Density/CommitPair.cs +++ b/Util/Density/CommitPair.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Extensions/DirectoryInfoExtensions.cs b/Util/Extensions/DirectoryInfoExtensions.cs index d56d1d9..7453524 100644 --- a/Util/Extensions/DirectoryInfoExtensions.cs +++ b/Util/Extensions/DirectoryInfoExtensions.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Extensions/EntityExtensions.cs b/Util/Extensions/EntityExtensions.cs index 0d9d858..37a0174 100644 --- a/Util/Extensions/EntityExtensions.cs +++ b/Util/Extensions/EntityExtensions.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Extensions/IEnumerableExtensions.cs b/Util/Extensions/IEnumerableExtensions.cs index c4d5271..79a79b5 100644 --- a/Util/Extensions/IEnumerableExtensions.cs +++ b/Util/Extensions/IEnumerableExtensions.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Extensions/RepositoryExtensions.cs b/Util/Extensions/RepositoryExtensions.cs index 94ef188..12806e5 100644 --- a/Util/Extensions/RepositoryExtensions.cs +++ b/Util/Extensions/RepositoryExtensions.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Extensions/StringExtensions.cs b/Util/Extensions/StringExtensions.cs index c622453..a19f19e 100644 --- a/Util/Extensions/StringExtensions.cs +++ b/Util/Extensions/StringExtensions.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/GitCommitSpan.cs b/Util/GitCommitSpan.cs index 60c17f7..c61525b 100644 --- a/Util/GitCommitSpan.cs +++ b/Util/GitCommitSpan.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/ISupportsExecutionPolicy.cs b/Util/ISupportsExecutionPolicy.cs index 8d29e07..f6eecce 100644 --- a/Util/ISupportsExecutionPolicy.cs +++ b/Util/ISupportsExecutionPolicy.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Logging/BaseLogger.cs b/Util/Logging/BaseLogger.cs index 25bedf9..2c37aa0 100644 --- a/Util/Logging/BaseLogger.cs +++ b/Util/Logging/BaseLogger.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Logging/ColoredConsoleLogger.cs b/Util/Logging/ColoredConsoleLogger.cs index aeff000..808e26c 100644 --- a/Util/Logging/ColoredConsoleLogger.cs +++ b/Util/Logging/ColoredConsoleLogger.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Metrics/SimpleLOC.cs b/Util/Metrics/SimpleLOC.cs index 363bb01..3ab6417 100644 --- a/Util/Metrics/SimpleLOC.cs +++ b/Util/Metrics/SimpleLOC.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Properties/AssemblyInfo.cs b/Util/Properties/AssemblyInfo.cs index 5688cd7..f9f7504 100644 --- a/Util/Properties/AssemblyInfo.cs +++ b/Util/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// @@ -25,7 +25,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Util")] -[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2019")] +[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2020")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/Util/Similarity/DefaultNoSimilarityMeasurement.cs b/Util/Similarity/DefaultNoSimilarityMeasurement.cs index 7cc2122..7773b1a 100644 --- a/Util/Similarity/DefaultNoSimilarityMeasurement.cs +++ b/Util/Similarity/DefaultNoSimilarityMeasurement.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Similarity/SimilarityComparisonType.cs b/Util/Similarity/SimilarityComparisonType.cs index cf50b64..e5805b9 100644 --- a/Util/Similarity/SimilarityComparisonType.cs +++ b/Util/Similarity/SimilarityComparisonType.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/Util/Similarity/SimilarityMeasurementType.cs b/Util/Similarity/SimilarityMeasurementType.cs index 2c79820..c6b8b03 100644 --- a/Util/Similarity/SimilarityMeasurementType.cs +++ b/Util/Similarity/SimilarityMeasurementType.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/UtilTests/DataFactoryTests.cs b/UtilTests/DataFactoryTests.cs index c1a628e..6bc3dcd 100644 --- a/UtilTests/DataFactoryTests.cs +++ b/UtilTests/DataFactoryTests.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/UtilTests/Properties/AssemblyInfo.cs b/UtilTests/Properties/AssemblyInfo.cs index 2a15f4c..ef6d654 100644 --- a/UtilTests/Properties/AssemblyInfo.cs +++ b/UtilTests/Properties/AssemblyInfo.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// @@ -21,7 +21,7 @@ [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("UtilTests")] -[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2019")] +[assembly: AssemblyCopyright("Copyright © Sebastian Hönel 2020")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/UtilTests/SimpleLocTests.cs b/UtilTests/SimpleLocTests.cs index 5c29ab1..b7cb2bc 100644 --- a/UtilTests/SimpleLocTests.cs +++ b/UtilTests/SimpleLocTests.cs @@ -1,6 +1,6 @@ /// --------------------------------------------------------------------------------- /// -/// Copyright (c) 2019 Sebastian Hönel [sebastian.honel@lnu.se] +/// Copyright (c) 2020 Sebastian Hönel [sebastian.honel@lnu.se] /// /// https://github.com/MrShoenel/git-density /// diff --git a/readme.md b/readme.md index 194391b..adece0a 100644 --- a/readme.md +++ b/readme.md @@ -33,12 +33,12 @@ Git Density is a solution that currently features these three applications: * Has its own command-line interface and supports online/offline repos and parallelization. * Supports two methods currently: _Simple_ and _Extended_ (default) extraction. * Does not require tools for clone-detection or metrics, as these are not extracted. - * Extracts __26__ features (__13__ in _Simple_-mode): `"SHA1","RepoPathOrUrl","AuthorName","CommitterName","AuthorTime","CommitterTime","MinutesSincePreviousCommit","Message","AuthorEmail","CommitterEmail","IsInitialCommit","IsMergeCommit","NumberOfParentCommits","ParentCommitSHA1s","NumberOfFilesAdded","NumberOfLinesAddedByAddedFilesNoComments","NumberOfLinesAddedByAddedFilesGross","NumberOfFilesDeleted","NumberOfLinesDeletedByDeletedFilesNoComments","NumberOfLinesDeletedByDeletedFilesGross","NumberOfFilesModified","NumberOfFilesRenamed","NumberOfLinesAddedByModifiedFiles","NumberOfLinesDeletedByModifiedFiles","NumberOfLinesAddedByRenamedFiles","NumberOfLinesDeletedByRenamedFiles"` + * Extracts __38__ features (__13__ in _Simple_-mode): `"SHA1", "RepoPathOrUrl", "AuthorName", "CommitterName", "AuthorTime", "CommitterTime", "Message", "AuthorEmail", "CommitterEmail", "IsInitialCommit", "IsMergeCommit", "NumberOfParentCommits", "ParentCommitSHA1s"` __plus 25 in extended:__ `"MinutesSincePreviousCommit", "AuthorNominalLabel", "CommitterNominalLabel", "NumberOfFilesAdded", "NumberOfFilesAddedNet", "NumberOfLinesAddedByAddedFiles", "NumberOfLinesAddedByAddedFilesNet", "NumberOfFilesDeleted", "NumberOfFilesDeletedNet", "NumberOfLinesDeletedByDeletedFiles", "NumberOfLinesDeletedByDeletedFilesNet", "NumberOfFilesModified", "NumberOfFilesModifiedNet", "NumberOfFilesRenamed", "NumberOfFilesRenamedNet", "NumberOfLinesAddedByModifiedFiles", "NumberOfLinesAddedByModifiedFilesNet", "NumberOfLinesDeletedByModifiedFiles", "NumberOfLinesDeletedByModifiedFilesNet", "NumberOfLinesAddedByRenamedFiles", "NumberOfLinesAddedByRenamedFilesNet", "NumberOfLinesDeletedByRenamedFiles", "NumberOfLinesDeletedByRenamedFilesNet", "Density", "AffectedFilesRatioNet"` All applications can be run standalone, but may also be included as references, as they all feature a public API. ## Caveats -If using `MySQL`, the latest 5.7.x GA-releases work, while some of the 8.x versions appear to cause problems in conjunction with Fluent NHibernate. You may also use other types of databases, as Git Density supports these: `MsSQL2000`, `MsSQL2005`, `MsSQL2008`, `MsSQL2012`, `MySQL`, `Oracle10`, `Oracle9`, `PgSQL81`, `PgSQL82`, `SQLite`, `SQLiteTemp` (temporary database that is discarded after the analysis, mainly for testing). +If using `MySQL`, the latest 5.7.x GA-releases work, while some of the 8.x versions appear to cause problems in conjunction with Fluent NHibernate (this should be fixed in version 2020.1). You may also use other types of databases, as Git Density supports these: `MsSQL2000`, `MsSQL2005`, `MsSQL2008`, `MsSQL2012`, `MySQL`, `Oracle10`, `Oracle9`, `PgSQL81`, `PgSQL82`, `SQLite`, `SQLiteTemp` (temporary database that is discarded after the analysis, mainly for testing). ___ @@ -46,14 +46,14 @@ ___ # Citing Please use the following BibTeX to cite __`GitDensity`__:
-@article{honel2019gitdensity,
-  title={Git Density (2019.1): Analyze git repositories to extract the Source Code Density and other Commit Properties},
-  DOI={10.5281/zenodo.2565239},
-  url={http://doi.org/10.5281/zenodo.2565239},
+@article{honel2020gitdensity,
+  title={Git Density (2020.1): Analyze git repositories to extract the Source Code Density and other Commit Properties},
+  DOI={10.5281/zenodo.2565238},
+  url={https://doi.org/10.5281/zenodo.2565238},
   publisher={Zenodo},
   author={Sebastian Hönel},
-  year={2019},
-  month={Feb},
+  year={2020},
+  month={Jan},
   abstractNote={Git Density (git-density) is a tool to analyze git-repositories with the goal of detecting the source code density. It was developed during the research phase of the short technical paper and poster "A changeset-based approach to assess source code density and developer efficacy" and has since been extended to support extended analyses.},
 }
 
@@ -67,3 +67,5 @@ ___ [2] Git hours. "Estimate time spent on a Git repository." https://github.com/kimmobrunfeldt/git-hours [3] QTools Clone Detection. http://qtools.se/ + +[4] Hönel, S., Ericsson, M., Löwe, W. and Wingkvist, A., 2019. Importance and Aptitude of Source code Density for Commit Classification into Maintenance Activities. In The 19th IEEE International Conference on Software Quality, Reliability, and Security.