首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式在C#中执行"Git -w“

以编程方式在C#中执行"Git -w“
EN

Stack Overflow用户
提问于 2016-03-30 13:23:02
回答 3查看 1.2K关注 0票数 7

我需要以编程的方式使用C#获取Git历史记录中特定行的最后一个作者。我试过使用libgit2sharp

代码语言:javascript
复制
var repo = new LibGit2Sharp.Repository(gitRepositoryPath);
string relativePath = MakeRelativeSimple(filename);
var blameHunks = repo.Blame(relativePath);
// next : find the hunk which overlap the desired line number

但这相当于命令

git blame <file>

事实上我需要

git blame -w <file> (比较时忽略空格)

Libgit2sharp不设置-w开关,也不提供任何参数/选项来设置它。我有什么选择?您知道与-w命令的blame开关兼容的其他库吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-06 06:08:09

当我遇到类似的高级场景时,git lib并没有对其进行裁剪,我只需在实际的git命令行中使用start进程就可以了。不性感,但效果很好。

票数 4
EN

Stack Overflow用户

发布于 2016-04-04 09:11:34

也许使用NGIT库会有帮助。这是java库的直接(自动)端口。通过nuget软件包安装,然后:

代码语言:javascript
复制
    static void Main() {
        var git = Git.Init().SetDirectory("C:\\MyGitRepo").Call();            
        string relativePath = "MyFolder/MyFile.cs";            
        var blameHunks = git.Blame().SetFilePath(relativePath).SetTextComparator(RawTextComparator.WS_IGNORE_ALL).Call();
        blameHunks.ComputeAll();
        var firstLineCommit = blameHunks.GetSourceCommit(0);
        // next : find the hunk which overlap the desired line number
        Console.ReadKey();
    }

注: SetTextComparator(RawTextComparator.WS_IGNORE_ALL)部分。

票数 3
EN

Stack Overflow用户

发布于 2018-01-07 05:32:59

不幸的是,libgit2sharp提取错误的速度太慢,在实际场景中使用此特性是不切实际的。所以,我认为最好的方法是使用Powershell脚本来使用底层的超高速本地git。然后将结果重定向到应用程序。

代码语言:javascript
复制
git blame -l -e -c {commit-sha} -- "{file-path}" | where { $_ -match '(?<sha>\w{40})\s+\(<(?<email>[\w\.\-]+@[\w\-]+\.\w{2,3})>\s+(?<datetime>\d\d\d\d-\d\d-\d\d\s\d\d\:\d\d:\d\d\s-\d\d\d\d)\s+(?<lineNumber>\d+)\)\w*' } | 
foreach { new-object PSObject –prop @{  Email = $matches['email'];lineNumber = $matches['lineNumber'];dateTime = $matches['dateTime'];Sha = $matches['sha']}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36310172

复制
相关文章

相似问题

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