为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查两次提交是否仅代码格式不同

如何检查两次提交是否仅代码格式不同

慕勒3428872 2023-09-20 17:32:37
我试图将 java checkstyle 添加到一个 Hugh 项目中,并遇到了大约 7000 个错误,我认为formatting整个项目将消除 5000 个错误。问题是我的团队拒绝审查这个提交(在 git 上),因为这是一个巨大的变化。有没有一种方法/脚本可以轻松确定两次提交是否仅在代码格式上有所不同,并且没有逻辑差异。
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

您可以首先使用一些选项检查差异来减少一些差异,例如

git diff --ignore-all-space --allow-indentation-change --ignore-blank-lines HEAD^

它不会忽略更复杂的重构,但有争议的是,大量的样式更改只会影响空格和缩进。


查看完整回答
反对 回复 2023-09-20
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

解决方案1

将一个修订签入一个目录,将另一修订签入另一个目录。对两个目录应用相同的格式。无论您应用什么特定格式,两个目录都应该相同。

然后使用您选择的 diff 工具(例如 Meld、WinMerge、Diffinity)比较目录。如果它们没有显示出差异,那么实际上两个修订版除了格式之外没有任何差异。

解决方案2

更简单的方法是不比较修订版本,而只是格式化代码:恢复提交,检查“基线”修订版本,格式化代码,提交。然后您将确保除了格式之外没有任何更改。


查看完整回答
反对 回复 2023-09-20
?
翻阅古今

TA贡献1780条经验 获得超5个赞

一种解决方案是比较构建结果(即编译项目并构建 JAR 或 WAR 或其他工件)。如果仅更改格式,则生成的字节码将与前一个字节码相同。因此,简单的逐位比较将告诉您格式更改是否没有破坏任何功能。

另一个解决方案是仅使用您拥有的任何自动化测试并运行它们。尽管根据您团队的反应,我认为您没有广泛的测试覆盖范围。


查看完整回答
反对 回复 2023-09-20
  • 3 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信