我試圖將 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
提交
取消