我想知道是否有人曾尝试使用SmushIt,PunyPNG或任何优化脚本在提交之前使用预先提交的SVN挂钩“smush”图像。
我试着在谷歌上看,但看起来没有人试过这样做。
我需要建议和/或反馈。
谢谢!
答案 0 :(得分:2)
预提交挂钩不应修改即将提交的事务。来自svn book:
虽然钩子脚本几乎可以做到 什么,有一个维度 哪个钩子脚本作者应该显示 约束:不要修改提交 使用钩子脚本的事务。而 使用钩子可能很诱人 脚本自动更正 错误,缺点或政策 存在于文件中的违规行为 承诺,这样做可能会导致 问题。 Subversion保持客户端 某些存储库的缓存 数据,如果您更改提交 这样的事务,那些缓存 变得难以察觉陈旧。这个 不一致可能导致令人惊讶 和意外的行为。代替 修改交易,你应该 只需验证中的交易 预提交挂钩并拒绝提交 如果它不符合要求 要求。作为奖励,您的用户 会学到细心的价值, 合规的工作习惯。
更安全的替代方法是简单地检查预提交钩子中的图像,如果不满足条件则拒绝提交。 (你的项目中仍然可能有一个“模糊”的脚本,提交者只需要记住在每次涉及图像的提交之前手动运行它。)
如果您确定您真的想要动态修改提交,您仍然可以在客户端安全地进行修改。例如,TortoiseSVN有client-side hook scripts。
答案 1 :(得分:1)
我会承认,我并没有完全回答这个问题,但我正试图引导你走上更好的道路。你真的不应该在start-commit或pre-commit钩子中搞乱提交的内容。此外,您不希望在存储库中保留原始未更改的图形,以防“smush”操作破坏图像或不符合您的喜好,您始终可以将原始文件从存储库中取出并再次编辑它吗?
现在在你的情况下,我建议设置一个后提交脚本来检测图形文件已经提交,然后如果图像不符合某些标准则调用你的“smush”工具(大小)等)。一旦图像应用了“smush”,然后将其提交回存储库。