Golang Go语言 推荐工具 go-diff
Golang Go语言 推荐工具 go-diff
声明
非作者,纯推荐
背景
最近有个优化 CI 测试速度的需求,目前 CI 是全量跑项目下所有 packages 的 test ,量大且慢
想的方案是找出一个 GitHub PR 代码改动涉及的 packages 以及相关连的 packages
结果
随后面向 Google 一番努力编程💪,成功找到 go-diff
完全满足我的需求
基本用法
# file 协议
go-diff -repo file://[git_repo_path] -from [from_commit_hash] -to [to_commit_hash]
# git/https 协议
go-diff -repo [git_repo_url] -branch [branch_name] -from [from_commit_hash] -to [to_commit_hash]
工具对比了 2 个 commit 之间的代码改动涉及的 packages ,并打印到 stdout
更详细的用法就去看 README 或者源码
这次参数都可以在 GitHub PR 内找到,具体看大家用的 CI 系统是什么
希望能帮助到需要的人🙏
更多关于Golang Go语言 推荐工具 go-diff的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
可以试试看。我们现在的 ci 测试太久了都
更多关于Golang Go语言 推荐工具 go-diff的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
额。。看两个 hash 的 diff
git diff 不可以满足 LZ 的要求吗?
关于Go语言推荐工具go-diff的回复
go-diff是一个专为Golang开发者设计的开源工具,它基于Neil Fraser的google-diff-match-patch库的Go语言版本,提供了文本比较、模糊匹配和补丁应用等强大功能。以下是对go-diff的详细推荐:
-
功能特点:
- 文本比较:能够高效地比较两段文本,并返回它们之间的差异。
- 模糊匹配:支持文本的模糊匹配,适用于需要处理不完全匹配文本的场景。
- 补丁应用:可以根据差异信息生成补丁,并应用到目标文本上。
-
使用场景:
- 代码差异分析:在版本控制系统中,go-diff可以帮助开发者快速分析代码变更。
- 文本同步:在需要同步文本内容的场景中,go-diff可以确保内容的准确性和一致性。
- 文档处理:对于Markdown或其他文本格式的文档更新,go-diff可以快速提取和呈现修改内容。
-
优势:
- 高效:作为纯Go实现的库,go-diff具有良好的运行效率。
- 易用:API设计直观,允许快速集成到现有的Go项目中。
- 社区支持:拥有一定的活跃度,遇到问题可以通过GitHub上的Issue跟踪解决。
综上所述,go-diff是一个值得Golang开发者尝试的高质量工具,它能够帮助开发者在处理文本差异时更加高效和准确。