我试图将 java checkstyle 添加到一个 Hugh 项目中,并遇到了大约 7000 个错误,我认为formatting整个项目将消除 5000 个错误。问题是我的团队拒绝审查这个提交(在 git 上),因为这是一个巨大的变化。有没有一种方法/脚本可以轻松确定两次提交是否仅在代码格式上有所不同,并且没有逻辑差异。
3 回答
不负相思意
TA贡献1777条经验 获得超10个赞
您可以首先使用一些选项检查差异来减少一些差异,例如
git diff --ignore-all-space --allow-indentation-change --ignore-blank-lines HEAD^
它不会忽略更复杂的重构,但有争议的是,大量的样式更改只会影响空格和缩进。
慕标琳琳
TA贡献1830条经验 获得超9个赞
解决方案1
将一个修订签入一个目录,将另一修订签入另一个目录。对两个目录应用相同的格式。无论您应用什么特定格式,两个目录都应该相同。
然后使用您选择的 diff 工具(例如 Meld、WinMerge、Diffinity)比较目录。如果它们没有显示出差异,那么实际上两个修订版除了格式之外没有任何差异。
解决方案2
更简单的方法是不比较修订版本,而只是格式化代码:恢复提交,检查“基线”修订版本,格式化代码,提交。然后您将确保除了格式之外没有任何更改。
翻阅古今
TA贡献1780条经验 获得超5个赞
一种解决方案是比较构建结果(即编译项目并构建 JAR 或 WAR 或其他工件)。如果仅更改格式,则生成的字节码将与前一个字节码相同。因此,简单的逐位比较将告诉您格式更改是否没有破坏任何功能。
另一个解决方案是仅使用您拥有的任何自动化测试并运行它们。尽管根据您团队的反应,我认为您没有广泛的测试覆盖范围。
添加回答
举报
0/150
提交
取消