预提交SVN Hook +图像优化脚本

时间:2010-12-20 14:01:14

标签: svn optimization image-processing

我想知道是否有人曾尝试使用SmushIt,PunyPNG或任何优化脚本在提交之前使用预先提交的SVN挂钩“smush”图像。

我试着在谷歌上看,但看起来没有人试过这样做。

我需要建议和/或反馈。

谢谢!

2 个答案:

答案 0 :(得分:2)

预提交挂钩不应修改即将提交的事务。来自svn book

  

虽然钩子脚本几乎可以做到   什么,有一个维度   哪个钩子脚本作者应该显示   约束:不要修改提交   使用钩子脚本的事务。而   使用钩子可能很诱人   脚本自动更正   错误,缺点或政策   存在于文件中的违规行为   承诺,这样做可能会导致   问题。 Subversion保持客户端   某些存储库的缓存   数据,如果您更改提交   这样的事务,那些缓存   变得难以察觉陈旧。这个   不一致可能导致令人惊讶   和意外的行为。代替   修改交易,你应该   只需验证中的交易   预提交挂钩并拒绝提交   如果它不符合要求   要求。作为奖励,您的用户   会学到细心的价值,   合规的工作习惯。

更安全的替代方法是简单地检查预提交钩子中的图像,如果不满足条件则拒绝提交。 (你的项目中仍然可能有一个“模糊”的脚本,提交者只需要记住在每次涉及图像的提交之前手动运行它。)

如果您确定您真的想要动态修改提交,您仍然可以在客户端安全地进行修改。例如,TortoiseSVN有client-side hook scripts

答案 1 :(得分:1)

我会承认,我并没有完全回答这个问题,但我正试图引导你走上更好的道路。你真的不应该在start-commit或pre-commit钩子中搞乱提交的内容。此外,您不希望在存储库中保留原始未更改的图形,以防“smush”操作破坏图像或不符合您的喜好,您始终可以将原始文件从存储库中取出并再次编辑它吗?

现在在你的情况下,我建议设置一个后提交脚本来检测图形文件已经提交,然后如果图像不符合某些标准则调用你的“smush”工具(大小)等)。一旦图像应用了“smush”,然后将其提交回存储库。