diff --git a/src/JiraTimeBot.v3.ncrunchsolution b/src/JiraTimeBot.v3.ncrunchsolution new file mode 100644 index 0000000..10420ac --- /dev/null +++ b/src/JiraTimeBot.v3.ncrunchsolution @@ -0,0 +1,6 @@ + + + True + True + + \ No newline at end of file diff --git a/src/JiraTimeBot/RepositoryProviders/MercurialLog.cs b/src/JiraTimeBot/RepositoryProviders/MercurialLog.cs index 30d1d65..3d3fe8d 100644 --- a/src/JiraTimeBot/RepositoryProviders/MercurialLog.cs +++ b/src/JiraTimeBot/RepositoryProviders/MercurialLog.cs @@ -7,8 +7,10 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; +using System.ServiceModel.Channels; using System.Text; using System.Threading; +using System.Windows.Forms; namespace JiraTimeBot.RepositoryProviders { @@ -72,49 +74,58 @@ namespace JiraTimeBot.RepositoryProviders AdditionalArguments = { "--encoding=utf-8" }, }; - var log = repo.Log(logCommand); - - foreach (var changeset in log) + try { - if (cancellationToken.IsCancellationRequested) - { - return new List(); - } + var log = repo.Log(logCommand); - var commitMessage = FixEncoding(changeset.CommitMessage); - if (_commitSkipper.IsNeedToSkip(changeset.Branch, commitMessage)) + foreach (var changeset in log) { - continue; - } - commitMessage = _technicalInfoSkipper.StripTechnicalInfo(commitMessage); - - var task = new TaskTimeItem(changeset.Branch, - commitMessage, - directoryInfo.Name, - changeset.Timestamp, - TimeSpan.Zero, - 1, - changeset.PathActions.Count, - "", - GetCommitType(changeset.Branch)); - - if (task.Type == CommitType.Release && task.Description.StartsWith("Merge with", StringComparison.CurrentCultureIgnoreCase)) - { - var description = task.Description; - if (description.Contains("\n")) + if (cancellationToken.IsCancellationRequested) { - description = description.Split('\n')[0]; + return new List(); } - var branch = description.Replace("Merge with", "").Replace(" ", ""); - var release = task.Branch.Replace("release", ""); - task.Branch = branch; - task.Description = $"Подготовка и публикация версии {task.Project} {release}."; - task.ReleaseVersion = release; + var commitMessage = FixEncoding(changeset.CommitMessage); + if (_commitSkipper.IsNeedToSkip(changeset.Branch, commitMessage)) + { + continue; + } + commitMessage = _technicalInfoSkipper.StripTechnicalInfo(commitMessage); + + var task = new TaskTimeItem(changeset.Branch, + commitMessage, + directoryInfo.Name, + changeset.Timestamp, + TimeSpan.Zero, + 1, + changeset.PathActions.Count, + "", + GetCommitType(changeset.Branch)); + + if (task.Type == CommitType.Release && task.Description.StartsWith("Merge with", StringComparison.CurrentCultureIgnoreCase)) + { + var description = task.Description; + if (description.Contains("\n")) + { + description = description.Split('\n')[0]; + } + var branch = description.Replace("Merge with", "").Replace(" ", ""); + var release = task.Branch.Replace("release", ""); + + task.Branch = branch; + task.Description = $"Подготовка и публикация версии {task.Project} {release}."; + task.ReleaseVersion = release; + } + workTasks.Add(task); + _log?.Trace($" - Найден changeset: {changeset.Timestamp} - {changeset.Branch} - {changeset.AuthorEmailAddress} - {commitMessage}"); } - workTasks.Add(task); - _log?.Trace($" - Найден changeset: {changeset.Timestamp} - {changeset.Branch} - {changeset.AuthorEmailAddress} - {commitMessage}"); } + catch (Exception e) + { + MessageBox.Show($"Oops something went wrong in repo {repoDirectory}"); + throw; + } + } if (!workTasks.Any()) {