~nhaehnle/diff-modulo-base - 差异模基工具

主要观点:在一个注重干净提交历史的项目中审查大型拉取请求时,作者强制推送新版本导致差异充满无关变化,此时 Diff modulo Base 可发挥作用。
关键信息:

  • diff-modulo-basegit-diff-modulo-base两个二进制文件,可用于比较基于 Git 的分支的相关更改。
  • 能通过给定三个输入差异来比较重新定位分支的两个版本的相关更改,输出更易读,可帮助回答关于拉取请求更改的两个问题。
  • 输出是两个差异的交错,包含目标差异和相关基础差异部分,有<>开头的行被视为不重要的更改。
  • 有高级 Git 用法,如比较两个单独的提交,在 GitHub 上可自动获取拉取请求分支。也可在原始差异上使用,通过特定命令实现相同效果。
  • diff-modulo-base基于可重用库 crate 实现,算法将差异视为不关心扩展字符 ASCII,具体细节可能会改变。
  • 欢迎贡献,可通过邮件发送补丁,项目遵循 MIT 许可证。
  • 待办事项有更智能地对齐“基础”和“目标”更改。
    重要细节:
  • cargo buildcargo install使用稳定 Rust 版本安装两个二进制文件。
  • 示例中展示了如何使用git diff-modulo base命令及输出结果。
  • 高级 Git 用法中提到可比较单个提交及在 GitHub 上的相关设置。
  • 处理差异时要求使用 UTF-8 编码且 ASCII 字符使用标准单字节编码。
  • 算法步骤包括解析基础和目标差异以获取序列,检查目标差异中的块是否相对于基础版本更改等。
阅读 14
0 条评论