2011-08-30 46 views
0

我们有一个包含当前版本库全局修订版本的构建属性文件。此文件是在某人为项目添加标签之前手动更新的。在eclipse中提交之前有没有办法执行一个ant目标?

我的想法是编写一个ant任务,它更新属性文件中的修订号并在eclipse中设置一个项目生成器来执行任务。但问题是,您只能选择在清理之前或之后或在手动或自动构建之后运行任务。

有没有办法在提交之前执行目标,以确保修订版本号始终更新?

+0

您使用的存储库服务器是什么? – Adelave

+0

@Adelave:我不知道我们使用哪个svn服务器。我更喜欢一个解决方案,它执行ant目标在提交之前在eclipse中本地更新修订号。 –

回答

1

让您的版本控制工具完成工作,这是他的一部分。
以下是使用cvs或cvsnt时使用cvs keywords的构建文件头的示例。
您可能在几个来源中看到过这一点,因为这是很好的做法。
其他版本控制工具,如Subversion ..等都有类似的功能,只需查看他们的手册,
f.e.看到Subversion, keyword substitution

<?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将显示每个文件的差异,哪怕只是版本号已经因为分支的变化。 F.E.我使用Eclipse和他们的difftool不够聪明,忽略像这些关键字
(仍然在等待插件来解决这个问题..)的具体部分。但过了一段时间后,您将习惯于;-)
在团队中工作时,由于该差异问题,在发生冲突之前必须就使用关键字达成一致。

+0

感谢您的建议。我已经考虑过这种方法,但在SVN中,关键字'$ Revision $'代表文件的本地修订版本。我需要此文件中的全局修订版(它只包含修订版号,用于多个内部处理)。 –

+0

哦,我以为svn是想成为CVS的继任者;-)好吧,有点研究想出了http://stackoverflow.com/questions/438398/subversion-as-version-incrementor-at-each-commit/438429#438429后提交与svnversion结合听起来不错 – Rebse

相关问题