使用PerlTidy进行颠覆Perl repo?

时间:2011-04-29 15:53:27

标签: svn refactoring perl-tidy

我想清理包含格式错误的Perl代码的现有subversion存储库。 由于我不确定是否需要与相当旧的代码进行某些比较,理想情况下我希望对所有修订版具有相同的格式。

另一方面,通过检查所有旧版本创建一个新的repo,重新格式化perltidy并签入将必须保留原始日志消息。

有没有工具/食谱可以做到?

2 个答案:

答案 0 :(得分:4)

对于将来,我建议svn pre-commit hook运行Test::PerlTidy的脚本,以强制每个人保持代码整洁。

您可以考虑使用自定义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

答案 1 :(得分:3)

你到底想做什么?清理所有旧版本?

不要这样做。你将破坏你的历史记录,即使你应该生成相同的Perl脚本(刚刚整理完),你最终可能会对之前发布的一些版本进行改进。此外,这不值得努力。

我建议您检查当前的修订版,运行Perl Tidy,然后检查您的更改。你不会改变你的旧代码,但从现在开始它将为你提供干净的东西。

当然,如果您的Perl代码格式太差,以至于您想要使用Perl整理来运行整个事情,那么您会遇到更多问题。什么阻止某人再次弄乱代码?

我还建议您查看Jenkins作为持续构建过程的一部分。您没有编译 Perl代码,但您可以使用Jenkins运行测试以确保任何新的Perl脚本和对Perl脚本的任何修改都已整理完毕。如果Perl脚本格式错误,您将失败构建并自行发送电子邮件和开发人员。

在检查新的Perl代码之前,开发人员将很快学会使用Perl Tidy面对公众对构建失败的尴尬。

顺便说一句,您的开发团队的其他成员是否支持您的工作?如果没有,你要做的第一件事是说服他们好的Perl格式化可以帮助减少错误,并为他们提供有助于自动化格式化工作的工具。