2009-01-13 62 views
2

我想在每次提交后将(修订版本号)更新到Subversion版本库中的文件。颠覆作为版本增量在每次提交?

我想到了一个svn版本关键字,但是如果特定文件被更改,这只会得到更新吗?

即我有一个文件version.php在那里我有版本/版本号,但只有在更新anotherfile.php我的承诺 - 这是不会改变的版本/修订信息version.php具有。

提交钩子是我唯一的选择吗?如果是的话,任何例子?

回答

5

听起来就像你想要某种$ GlobalRev $来获取全局修订号到你的文件中。

你可能想看看会svnversion

你可以使用它作为post-commit钩子或在构建/部署过程创建或修改全球版本文件的适当的工具。

另请参阅“Where $ GlobalRev $?”在this page

+1

这种方法的问题在于它是客户端解决方案。我们真正需要的是服务器端脚本... – Gili 2009-02-17 21:11:33

0

Subversion使用版本库范围内的版本编号系统(请参阅“全局版本号”侧栏here),因此您的文件已经被碰撞。

+0

不幸的是,* file * revision(** $ Rev $ **等)仅在* file *被提交时才会被碰撞。 – 2014-06-12 07:33:30

2

我们不这样做,我们这样做是我们部署过程的一部分。部署将最新的代码(或特定的修订版)与SVN修订版号一起提交,将版本放入relvent位置(AssemblyInfo,PHP版本文件等),然后将其部署到测试/ UAT/live/whatever。

1

钩脚本是唯一的选择。您有两种选择来完成该任务:或者按照subversion handbook的建议,验证version.php是否为预先提交的脚本中的最新版本,或者在post-commit脚本中启动另一次提交更新版本文件。您不应该像手册中指出的那样修改挂钩中的提交文件。