Golang Go语言 推荐工具 go-diff

发布于 1周前 作者 yuanlaile 来自 Go语言

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

3 回复

可以试试看。我们现在的 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的详细推荐:

  1. 功能特点

    • 文本比较:能够高效地比较两段文本,并返回它们之间的差异。
    • 模糊匹配:支持文本的模糊匹配,适用于需要处理不完全匹配文本的场景。
    • 补丁应用:可以根据差异信息生成补丁,并应用到目标文本上。
  2. 使用场景

    • 代码差异分析:在版本控制系统中,go-diff可以帮助开发者快速分析代码变更。
    • 文本同步:在需要同步文本内容的场景中,go-diff可以确保内容的准确性和一致性。
    • 文档处理:对于Markdown或其他文本格式的文档更新,go-diff可以快速提取和呈现修改内容。
  3. 优势

    • 高效:作为纯Go实现的库,go-diff具有良好的运行效率。
    • 易用:API设计直观,允许快速集成到现有的Go项目中。
    • 社区支持:拥有一定的活跃度,遇到问题可以通过GitHub上的Issue跟踪解决。

综上所述,go-diff是一个值得Golang开发者尝试的高质量工具,它能够帮助开发者在处理文本差异时更加高效和准确。

回到顶部