eclipse 3小时前 · 2026-10-04 22:20:04 · 10 阅读
Eclipse JGit 7.8.0 版本发布:新增 Blame 忽略选项与 Commit Graph 性能优化
新特性
- DfsPackSource:新增 GC_PART 和 GC_REST_PART 扩展
- #181 Blame:新增忽略指定修订版本(revision)的选项
- RevWalk:新增 RevFilterStats 类,用于存储 RevFilter 的统计指标
- 为 RevWalk 遍历新增协作式取消机制
- repo:解析并记录 .gitattributes 中的远程评审主机,使工具能够将 submodule 关联到对应的 Gerrit 评审主机。
性能改进
- BlameGenerator:引入基于 Commit Graph 的性能优化,可通过 setUseCommitGraphOptimizations() 启用
- TreeRevFilter:支持为 merge commit 提供 bloom filter
- PackedBatchRefUpdate:在整个 pack 阶段持有 inProcessPackedRefsLock
- #266 ResolveMerger:三方合并时改为延迟获取 Attributes
- #250 RevCommit:允许 RevCommit 和 RevWalk 的子类使用 commit graph 中存储的信息
- RevWalk:若存在 commit-graph 文件,则改用增量式拓扑排序算法
- BitmappedObjectReachabilityChecker:优化过滤逻辑
Bug 修复
- #279 IndexDiffFilter:不再丢弃与已跟踪变更无关的未跟踪文件夹
- #285 修复无内容可 fetch 时 close() 抛出 NPE 的问题
- PackedBatchRefUpdate:按加锁的相反顺序释放锁
- #281 RefDirectory:修复 pack() 过早释放已持有锁的问题
- TopoSortPendingGenerator:在 RevWalk.reset() 时释放 flags
- UploadPack 将协商耗时计入总耗时
- #267 DirCacheEntry:修复 mightBeRacilyClean() 的时间差计算
- 确保 SnapshottingRefDirectory 共享同一个 packedRefsRefresher
- Checkout:临时文件名截断上限由 200 字符降为 50 字符,以避免超出文件系统对文件名长度的限制
构建与发布工程
依赖更新
- bouncycastle 升级至 1.85
- org.bouncycastle:bcprov-jdk18on 升级至 1.85.2
- bytebuddy 升级至 1.18.12
- 升级 commons-codec 至 1.22.1
- 升级 commons-logging 至 1.4.0
- 升级 jetty 至 12.1.12
- 升级 jna 至 5.19.1
- 升级 org.apache.sshd 至 2.19.0
更新 orbit 依赖
- 升级 org.objenesis 至 3.6.0
Bazel 构建
- 添加 EE8 Servlet 桥接目标
- junit.http:提取 AppServerBase 以去重 EE8 AppServer 覆盖层
- 将 //lib:servlet-api 重命名为 //lib:jakarta-servlet-api
- 升级至 Bazel 9.0.1
其他
- 将 org.tukaani.xz 声明为归档库的依赖项
- 针对 Eclipse IDE 2026-06 (4.40) 切换至 releases p2 仓库
- 针对 Eclipse IDE 2026-09 添加目标平台 4.41
- 将 org.apache.commons.commons-logging 1.4.0 打包至 p2 仓库
- 记录 JGit 发布版 SBOM 的获取位置
- 使 Jetty 环境与 Servlet API 6.1 保持一致
- 添加由法律文档生成器生成的 NOTICE.md
原始来源: eclipse