获取repo中子文件夹的提交计数

时间:2013-06-08 12:02:22

标签: c# git ngit

我正在使用带有C#的NGit从我们的仓库中获取数据

我正在试图弄清楚如何从当前分支获取repo中子文件夹的提交计数。

类似(但有子文件夹支持)

  

git rev-list --count HEAD

编辑:这有效,但感觉必须有更好更快的方式。对于大型回购,这需要时间来完成

var git = Git.Open(@"repoPath");
var allCommits = git.Log().Call().OrderBy(c => c.CommitTime);

var commit = git.Log().AddPath("SubPath").Call().OrderByDescending(c => c.CommitTime).First();

var index = allCommits
    .Select((c, i) => new {Commit = c, Index = i})
    .First(c => c.Commit.Id.Name == commit.Id.Name)
    .Index;

1 个答案:

答案 0 :(得分:0)

我真的不知道 NGit ,但你不能直接计算commits而不是allCommits吗?

var commits = git.Log().AddPath("SubPath").Call().OrderByDescending(c => c.CommitTime);
var index = commits
.Select((c, i) => new {Commit = c, Index = i})
.Index;