我想清理包含格式错误的Perl代码的现有subversion存储库。由于我不确定是否有必要与相当旧的代码进行比较,理想情况下,我希望所有修订都具有相同的格式。
另一方面,通过检出所有旧版本来创建新的repo,使用perltidy重新格式化和检入将不得不保留原始日志消息。
有什么工具/食谱来做吗?
对于未来,我建议在运行Test::PerlTidy的脚本上添加svn预提交钩子,以强制每个人保持他们的代码整洁。
当您想要与旧版本进行比较时,您可以考虑使用自定义svn diff
命令,而不是尝试更改以前的所有提交。比如:
#!/bin/bash
# tidydiff.sh for tidying code before diffing
perltidy "$1" > "/tmp/$1"
perltidy "$2" > "/tmp/$2"
diff "$1" "$2"
rm "/tmp/$1" "/tmp/$2"
,然后使用svn diff --diff-cmd=tidydiff.sh
,当你想看旧版本
你到底想做什么?清理所有旧版本?
别这么做。您将破坏您的历史记录,并且即使您应该生成相同的Perl脚本(刚刚整理好),您也可能最终破坏以前发布的一些修订版本。此外,不值得花力气。
我建议您签出当前的版本,运行Perl Tidy,然后签入您的更改。你不会改变你的旧代码,但它会给你从现在开始工作的干净的东西。
当然,如果您的Perl代码格式很差,以至于您希望用Perl整齐地运行整个程序,那么您就会遇到更多的问题。什么能防止有人再次把代码弄得一团糟呢?
我还建议您将Jenkins视为持续构建过程的一部分。您不需要编译 Perl代码,但是您可以使用Jenkins来运行测试,以确保任何新的Perl脚本和对Perl脚本的任何修改都已被整理。如果Perl脚本格式不好,您将失败构建并给自己和开发人员发电子邮件。
开发人员将在签入新的Perl代码之前快速学会使用Perl Tidy,从而避免因构建失败而面临公共尴尬。
顺便问一下,你的开发团队的其他成员支持你的工作吗?如果没有,您必须做的第一件事就是说服他们,好的Perl格式化可以帮助减少错误,并为他们提供工具,帮助他们自动化格式化工作。