2010-12-20 27 views
1

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

我试着在谷歌上看,但看起来像没有人试图做到这一点。

我需要建议和/或反馈。

谢谢!

回答

1

我承认,我并没有完全回答这个问题,但我试图让你走上一条更好的道路。你真的不应该在开始提交或预先提交钩子中混淆提交的内容。此外,您是否不希望在存储库中保留原始未更改的图形,以防万一“sm”“操作会破坏图像或不符合您的喜好,您可以始终将原始图像从回购库中取出并重新编辑?

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

2

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

虽然钩子脚本几乎可以做任何事情 ,存在 一名维其中钩子脚本的作者应该表现出克制 :不要修改使用钩子脚本提交 交易。虽然 它可能是很有诱惑力的使用钩子 脚本来自动修正错误 ,不足之处,或政策出现在被 承诺,这样的文件 违规可能会导致 问题。 Subversion保留客户端 数据库中某些位的缓存,并且如果以这种方式更改提交 事务,则这些缓存 会变得无法检测到陈旧。这种不一致可能导致令人惊讶的 和意外的行为。而不是 修改交易,你应该 简单地验证 预先提交钩子中的交易,如果它不符合所需的 要求,则拒绝提交 。作为奖励,您的用户 将学会谨慎的,遵守标准的工作习惯的价值。

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

如果您确定要真正修改即时修改提交,您仍然可以在客户端安全地执行此操作。例如,TortoiseSVN有client-side hook scripts