我们有一个包含存储库当前全局版本的构建属性文件。这个文件是在有人标记项目之前手动更新的。
我的想法是编写一个ant任务来更新属性文件中的修订号,并在eclipse中设置一个项目构建器来执行该任务。但问题是,您只能选择在清理之前或之后运行任务,或者在手动或自动构建中运行任务。
是否有一种方法可以在提交之前执行目标,以确保版本号总是更新?
让您的版本控制工具完成工作,这是它的部分。
下面是一个构建文件头的示例,它在使用cvs或cvsnt时使用了cvs关键字。
您可能在以前的几个源代码中看到过这种情况,因为这是一种很好的实践。
其他版本控制工具,如subversion ..等都有类似的功能,只需查看它们的手册,
参考Subversion,关键字替换
<?xml version="1.0" encoding="UTF-8"?>
<!--+
| $Author:$
| $Date:$
| $Revision:$
|
| Description :
| bla bla bla
| bla bla
| bla
|
+-->
<project name="..." default="...">
<description>
description
</description>
...
CVS元信息在每次提交时自动更新,您不能忘记。
将这些关键字放入编辑器的文件模板中,就完成了
但是要注意,您的difftool将显示每个文件的差异,即使只有版本号因为分支而改变。我使用的是Eclipse,它们的difftool不够聪明,无法忽略关键字
等特定部分(还在等待插件来修复这个问题…)。但过一段时间你就会习惯;-)
当在团队中工作时,必须在由于差异问题而发生冲突之前就是否使用关键字达成一致。