From 553f581537b41e1d6ba94a17780b9ce2157c7a2c Mon Sep 17 00:00:00 2001 From: "d.kislov" Date: Mon, 30 Mar 2020 22:17:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=87=D0=B8=D1=82=D0=B0=D0=B5=D0=BC=20?= =?UTF-8?q?=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JiraTimeBot/Mercurial/GitLog.cs | 58 ++++++----------------------- 1 file changed, 12 insertions(+), 46 deletions(-) diff --git a/src/JiraTimeBot/Mercurial/GitLog.cs b/src/JiraTimeBot/Mercurial/GitLog.cs index 08b320e..fae84b3 100644 --- a/src/JiraTimeBot/Mercurial/GitLog.cs +++ b/src/JiraTimeBot/Mercurial/GitLog.cs @@ -99,6 +99,7 @@ namespace JiraTimeBot.Mercurial continue; } commitMessage = _technicalInfoSkipper.StripTechnicalInfo(commitMessage); + var files = FilesToMerge(commit, repo); var task = new TaskTimeItem(branch, commitMessage, @@ -106,51 +107,13 @@ namespace JiraTimeBot.Mercurial commit.Committer.When.DateTime, TimeSpan.Zero, 1, - 1, //changeset.PathActions.Count, + files.Length, //changeset.PathActions.Count, "", GetCommitType(branch)); workTasks.Add(task); _log?.Trace($" - Найден commit: {commit.Committer.When.DateTime} - {branch} - {commit.Author.Email} - {commitMessage}"); } - - //foreach (var changeset in log) - //{ - - // 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}"); - //} } if (!workTasks.Any()) { @@ -165,16 +128,19 @@ namespace JiraTimeBot.Mercurial return branch.StartsWith("release") ? CommitType.Release : CommitType.Task; } - private string FixEncoding(string source) + public String[] FilesToMerge(Commit commit, Repository repo) { - //перекодируем сообщение - ибо оно криво забирается в 1252 - Encoding srcEncodingFormat = Encoding.GetEncoding("windows-1252"); - byte[] originalByteString = srcEncodingFormat.GetBytes(source); - var commitMessage = Encoding.UTF8.GetString(originalByteString); - return commitMessage; + var fileList = new List(); + foreach (var parent in commit.Parents) + { + foreach (TreeEntryChanges change in repo.Diff.Compare(parent.Tree, commit.Tree)) + { + fileList.Add(change.Path); + } + } + return fileList.ToArray(); } - private IEnumerable ListBranchesContaininingCommit(Repository repo, string commitSha) { bool directBranchHasBeenFound = false;