回答
不要在挂钩中完成此操作 - 在单独的更改中执行此操作,以便该分支的其他用户可以将其拖放到其工作副本中。它并不需要比这更复杂(在伪代码):
- 脚本从信息库中的工作拷贝到本地目录
- 脚本修改文件
- 脚本承诺具有良好的提交信息文件“例如,‘foo脚本:添加校验和’
它的情况并不少见构建脚本(在cron下运行,或通过一个Makefile触发)的基础上的其他文件进行定期修订的库,例如再生文件有时这些。被检入到存储库中有时它们不是,取决于谁使用这些文件以及如何使用这些文件。
这就是*我正在做的事情。问题在于何时更合适。在post_commit似乎是合理的原因,我不是“变形”的实际交易,只添加sometinhg后:)。 而且,是的,脚本应该在自己的回购工作副本上执行。 TNX – 2009-11-20 11:04:15
您可能需要阅读SVN书的this chapter。在它的尽头,有一个漂亮的红色方块以下警告:
虽然钩子脚本几乎可以做任何事情,有一个维度中,钩子脚本作者应该表现出克制:不修改提交事务使用钩子脚本。虽然使用钩子脚本自动纠正提交文件中存在的错误,缺陷或策略违规可能很诱人,但这样做可能会导致问题。 Subversion保留了某些数据库数据的客户端缓存,并且如果以这种方式更改提交事务,这些缓存将变得无法检测。这种不一致会导致令人惊讶和意外的行为。您不应该修改事务,而应该简单地在预提交挂钩中验证事务,并在它不符合所需要求时拒绝提交。作为奖励,您的用户将会学习到认真遵守法规的工作习惯的价值。
谢谢,我读过它..但是我问(主要是我自己)是否可以实施一些工作 - 阿罗努。 这样一个post_commit钩子可以调用脚本: 1.在repo的工作副本上发出svn更新 2.相应地应用其更改(校验和等) 3.发出svn commit -m“校验加bla bla ...“ 你认为这是可行的/合适的吗? – 2009-11-19 13:35:38
也许,我不知道。坦率地说,我会在SVN邮件列表中提问。 – sbi 2009-11-19 16:29:06
你可以在post commit hook中做你所说的话,只要知道它会在repository中添加一个额外的修订版本,并且原来的committer也需要进行更新以获取更改。 – 2009-11-19 18:09:40
在post commit钩子中做你的建议没有问题,但要知道它会向存储库添加一个新的修订版本,并且原始提交者在看到更改之前需要进行更新剧本。 它还会在提交操作返回之前运行后提交速度变慢。
- 1. 替代SVN钩子,修改
- 2. SVN钩子脚本冲突
- 3. Shell脚本来计算在svn repo中修改的文件数
- 4. 预先提交svn钩子以修改要在c中提交的文件#
- 5. 修改SVN的:记录与的pre-revprop-change钩子
- 6. SVN挂钩修改文件和提交后同步
- 7. 钩脚本将SVN文件从本地移动到远程
- 8. Python脚本中的SVN钩子环境问题
- 9. 在PHP钩子中将文本消息修改为html
- 10. svn钩子文件位于哪里?
- 11. svn在本地副本中修改的文件列表
- 12. 在visual svn服务器中处理钩子脚本
- 13. Bazaar插件:预提交钩子上的修改文件列表
- 14. 用SVN管理SVN钩子?
- 15. 我的SVN钩子脚本有什么问题----- pre-commit.bat?
- 16. 有关颠覆(svn)钩子脚本的帮助
- 17. ruby脚本没有成功调用svn的post commit钩子脚本
- 18. 修改Powershell脚本以修改所选目录中子文件夹的“上次修改日期”
- 19. SVN错误 - 保留本地修改或版本的文件,
- 20. 使用Ruby脚本修改csv文件
- 21. bash脚本,修改一个文件
- 22. 使用Python脚本修改文件名
- 23. 与PHP脚本修改YAML文件
- 24. 与Python脚本修改XML文件
- 25. 修改文件使用脚本
- 26. Git挂钩,修改提交文件
- 27. SVN钩子复制提交的文件和文件夹?
- 28. 由于.NET,svn钩子读取vbs,ruby,...脚本吗?
- 29. PERL脚本作为预提交钩子在SVN
- 30. 如何编写一个svn钩子脚本
好吧,也许post_commit钩子是不适合做这种修改的地方...但也许在pre_commit? – 2009-11-19 13:22:42
@Carlo:预先提交肯定是错误的,因为您不得更改正在签入的文件。请参阅我的答案。 – sbi 2009-11-20 09:20:13