回答
不要在挂钩中完成此操作 - 在单独的更改中执行此操作,以便该分支的其他用户可以将其拖放到其工作副本中。它并不需要比这更复杂(在伪代码):
- 脚本从信息库中的工作拷贝到本地目录
- 脚本修改文件
- 脚本承诺具有良好的提交信息文件“例如,‘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. SVN挂钩脚本执行
- 4. 钩脚本将SVN文件从本地移动到远程
- 5. Python脚本中的SVN钩子环境问题
- 6. 在PHP钩子中将文本消息修改为html
- 7. svn在本地副本中修改的文件列表
- 8. Bazaar插件:预提交钩子上的修改文件列表
- 9. 用SVN管理SVN钩子?
- 10. 我的SVN钩子脚本有什么问题----- pre-commit.bat?
- 11. 有关颠覆(svn)钩子脚本的帮助
- 12. ruby脚本没有成功调用svn的post commit钩子脚本
- 13. 与Python脚本修改XML文件
- 14. 修改文件使用脚本
- 15. 使用Python脚本修改文件名
- 16. SVN错误 - 保留本地修改或版本的文件,
- 17. SVN钩子复制提交的文件和文件夹?
- 18. 如何编写一个svn钩子脚本
- 19. PERL脚本作为预提交钩子在SVN
- 20. 修改脚本
- 21. Groovy颠覆钩子脚本
- 22. 钩子脚本教程?
- 23. 修改脚本以从文本文件中读取
- 24. 如何才能检出在SVN修订版本中修改过的文件?
- 25. PHP脚本修改文件位置的文本
- 26. SVN post-commit hook修改外部文件
- 27. Ant脚本来修改一个罐子
- 28. PostCommit在Jenkins/SVN中的钩子
- 29. 如何通过sh脚本修改environment.rb? (即通过脚本修改文件中的行)
- 30. SVN pre-commit钩子编码
好吧,也许post_commit钩子是不适合做这种修改的地方...但也许在pre_commit? – 2009-11-19 13:22:42
@Carlo:预先提交肯定是错误的,因为您不得更改正在签入的文件。请参阅我的答案。 – sbi 2009-11-20 09:20:13