Eclipse 自动SVN版本号?
我使用Eclipse+ADT插件编写Android的东西。对于VCS,我使用SVN 我想完成的是:让我的程序在“关于”屏幕上显示它的SVN版本号。显然,这最好是自动的。我们不能假设程序在运行时可以访问网络,因此必须在编译时知道这些信息 今天我一直在研究这个话题,似乎这个看似普通的场景其实并不容易做到,或者我错过了一些东西。让我们看看: 1) 第一种方法:编写一个“pre-commit”SVN脚本,在每次提交时更新一个小文件,该文件名为“revision”,位于项目的根目录中。然后编写一个函数来打开这个文件,读取修订号并将其放在“About”屏幕上,这将是一件微不足道的事情 由于文件将在服务器端更新,因此这不太有效。所以想象一下这个场景:我检查rev。3708,修改、提交、预提交创建“修订版”,其中包含“3709”。我构建-我的本地“修订版”仍然包含“3708”。不太好 2) 我听说()SVN有一个聪明的特性,它能够替换文件中的各种魔术字符串,如果在SVN控制下的项目中的所有文件上设置适当的SVN元数据,那么其中一个就是“修订” 由于用户“Smashery”在上面的链接中提到的问题,这种方法不再有效——也就是说,SVN将只替换上次提交期间更改的文件中的“Revision”魔术字符串 3) 编写一个“预构建”Eclipse脚本,让它运行“sversion/path/to/your/project”,并将此脚本的输出保存在/path/to/your/project/revision中 这不太管用了——我的意思是,我已经尝试过了,写这样的脚本实际上非常容易。如果我在一台计算机上工作,它对我来说是可行的——但不幸的是,我在两台计算机上工作,一台在家里的Linux计算机和另一台在工作的Windows计算机。我每天都在换机器(白天在Windows上,晚上在家里) Eclipse的问题在于:只要添加“预构建”脚本,它就会在项目文件夹(.externalToolBuilders)中创建一个新的隐藏目录,其中包含要运行的脚本的绝对路径(显然)。在我的两台机器(Linux和Windows)上,此路径不能相同。为了使事情自动化,我需要将其签入SVN,一旦我签入,事情将只在我的一台机器上工作,除非我每天手动更正路径 有什么想法吗?第三种方法(稍加修饰)是正确的方法,如果你想探索一些东西的话Eclipse 自动SVN版本号?,eclipse,svn,Eclipse,Svn,我使用Eclipse+ADT插件编写Android的东西。对于VCS,我使用SVN 我想完成的是:让我的程序在“关于”屏幕上显示它的SVN版本号。显然,这最好是自动的。我们不能假设程序在运行时可以访问网络,因此必须在编译时知道这些信息 今天我一直在研究这个话题,似乎这个看似普通的场景其实并不容易做到,或者我错过了一些东西。让我们看看: 1) 第一种方法:编写一个“pre-commit”SVN脚本,在每次提交时更新一个小文件,该文件名为“revision”,位于项目的根目录中。然后编写一个函数来打
- 工作场所特定的设置必须不共享并存储在存储库中:忽略
,但根据您的需要和设置对Eclipse进行不同的配置。两个位置上的externalToolBuilders
- 除了所有操作系统都相同之外(不要忘记忽略
,因为构建工件不能成为存储库的一部分),您可能希望在预构建事件中使用更强大的功能(在Win box上)和(在Linux box上)-svnrev还包含一些有用的阅读资料/path/to/your/project/revision