java - 自 jGit 中的某些提交以来,如何获取所有更改的文件?
问题描述
TreeWalk 允许在单个提交或整个存储库中获取所有更改,并检查每个提交的更改文件(通过 RevWalk)工作非常慢,大约 2 分钟。有什么方法可以遍历更改的文件并检查上次更改的提交?还是其他更快的解决方案?这是我从提交中获取更改文件的代码:
TreeWalk treeWalk = prepareTreeWalk(commit, git.getRepository());
List<String> files = new ArrayList<>();
while (treeWalk.next()) {
if (!hasSimilar(treeWalk)) {
files.add(treeWalk.getPathString());
}
}
并用于选择提交(因为有些特殊):
return Lists.reverse(StreamSupport.stream(
git.log()
.add(git.getRepository().resolve(branch.getName()))
.call()
.spliterator(), false)
.filter(since(sinceCommit::equals))
.collect(Collectors.toList()));
解决方案
我知道下面的命令行,它将在 ms 内打印输出
git format-patch 初始提交 --stdout > output.patch
推荐阅读
- react-native - 组件重新渲染 onChangeText
- soap - HTTP 请求未经客户端身份验证方案“匿名”授权。从服务器收到的身份验证标头是“协商”
- c# - 如何使用 Serilog 忽略基于类类型的日志属性
- javascript - 经典 ASP:如何将下拉列表中的选定值传递给 onchange 事件的 SELECT 查询
- jenkins - Jenkins 的加速时间不会降低 tps
- python - 如何修复 class_names 中超出范围的列表索引以绘制分类树
- f# - 无法在 F# Dapper 中将相关表记录作为列表获取
- python - 如何在 Python 库函数中使用并行化?
- r - 在 R 中展开电子邮件数据集的标题
- sql-server - “distributor_admin”未定义为服务器上的远程登录,用户“distributor_admin”登录失败