3
当我们做git log --shortstat
时,我们得到插入,删除和更改的行数。例如:如何统计JGit中插入/删除的行数
1 file changed, 9 insertions(+), 3 deletions(-)
请帮助我获取插入,删除和更改的行数。
我正在做一个存储库克隆,以获得本地计算机上的git项目。下面是相同的代码:
RepoClone repoClone=new RepoClone(); repoClone.repoCloner(); repository = builder.setGitDir(repoClone.repoDir).setMustExist(true).build();
我甚至能得到一个
TreeWalk
:TreeWalk treeWalk=getCommitsTreeWalk();
我能够检索文件名,每个文件,LOC提交的数量计数,并每个xml/java文件的开发人员数量。
while (treeWalk.next()) { if (treeWalk.getPathString().endsWith(".xml") || treeWalk.getPathString().endsWith(".java")) { jsonDataset = new JSONObject(); countDevelopers = new HashSet <String>(); count = 0; logs = new Git(repository).log().addPath(treeWalk.getPathString()).call(); for (RevCommit rev: logs) { countDevelopers.add(rev.getAuthorIdent().getEmailAddress()); count++; } jsonDataset.put("FileName", treeWalk.getPathString()); jsonDataset.put("CountDevelopers", countDevelopers.size()); jsonDataset.put("CountCommits", count); jsonDataset.put("LOC", countLines(treeWalk.getPathString())); commitDetails.put(jsonDataset); } }
现在,我想检索为每个文件插入和删除的行数。
请帮忙。 预先感谢。
非常感谢!我将尝试使用此代码来获取--shortstat类型的结果。对于这种比较,是否可以从文件存储库获取以前的提交并进行比较?我想比较“在一个月内”提交并产生插入和删除的行数。 – SJ03 2015-02-25 20:31:57
这里的困难部分可能是找到给定月份中的第一次和最后一次提交。如果你从一个月的最后一次提交开始,你可以将其父母移到第一个。但是,如果合并提交(两个父母提交)介于两者之间,则需要遵循_path_的策略。 – 2015-02-26 19:54:39
Ohk。就我而言,我只有一个分支,即“主”分支。如果我想比较单个分支中的提交,是否有可能。谢谢! – SJ03 2015-02-26 21:35:49