首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取方法的作者,如codelens

获取方法的作者,如codelens
EN

Stack Overflow用户
提问于 2015-06-04 23:54:50
回答 2查看 280关注 0票数 0

我需要得到方法列表的作者。

我尝试过使用LibGit2Sharp来比较方法名和补丁内容,但是它太长了,有很多提交。

我想快点做,就像代码镜头一样。

现在我正在尝试通过自己的VS插件来获得它,也许有一些更容易的方法。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-06-05 00:08:15

看看git blame filename的输出。看起来LibGit2Sharp supports这个。如果你知道方法开始和结束的行号,你可以为特定的方法运行它,例如,通过运行git blame -L 1,10 filename,你将看到谁最后更改了文件中的第1-10行。

票数 0
EN

Stack Overflow用户

发布于 2015-06-06 00:04:55

下面是一个通过指责进行搜索的代码示例:

代码语言:javascript
运行
复制
var blames = repo.Blame(parameters.FilePath.Replace(_repository, ""));
var commitDate = DateTime.Now;
foreach (var blame in blames)
{
    if (blame.InitialCommit.Sha != (blame.InitialCommit.Parents.FirstOrDefault() == null ? blame.InitialCommit.Sha : blame.InitialCommit.Parents.First().Sha) &&
        (!blame.InitialCommit.Message.ToLower().Contains("merge")))
    {
        Tree commitTree1 = repo.Lookup<LibGit2Sharp.Commit>(blame.InitialCommit.Sha).Tree;
        Tree commitTree2 = repo.Lookup<LibGit2Sharp.Commit>(blame.InitialCommit.Parents.FirstOrDefault() == null ? blame.InitialCommit.Sha : blame.InitialCommit.Parents.First().Sha).Tree;
        string content = repo.Diff.Compare<Patch>(commitTree1, commitTree2).Content;
        if (content.Contains(parameters.TestName))
        {
            if (commitDate.CompareTo(blame.InitialSignature.When.Date) > 0)
            {
                commitDate = blame.InitialSignature.When.Date;
                author = string.Format("Email: {0}; Name: {1}", blame.InitialCommit.Author.Email, blame.InitialCommit.Author.Name);
            }
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30648574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档