Way*_*yne 5 svn versioning revision repository auto-versioning
考虑在两个单独的存储库Pub和Priv中分发的软件。Pub存储库是公共的。私有已关闭。当任何一方发生更改时,连续集成服务器都会同时构建Pub和Priv。然后,它会从Priv创建可下载的二进制文件,供Pub用户使用。这些二进制文件在内部以及带有Subversion修订版的文件名上标记。
问题是:如何使从Pub生成的程序知道正确的,对应的Priv版本号,以便它们可以自动下载并运行?
当前的解决方案是让构建服务器修改Pub中的文件,以设置Priv的修订号并将这些更改提交给Pub。但是,这带来了两个重大问题:
该构建需要花费很长时间,因此,如果有人在构建期间将更改提交到Pub(或Priv),则会产生冲突。可以强制解决该问题,但是日志历史记录看起来很奇怪,好像这些修订使它进入了该内部版本一样。
Subversion日志中有许多条目,例如“自动构建更新了版本”。从每次构建运行开始都会污染本来有益的Subversion日志。
因此,我们可以通过不需要更改存储库的方式来做到这一点。
真诚的韦恩
我可以想出几种方法来做到这一点。我认为由于某种原因不可能使修订号直接相互对应,这将是明显且最简单的解决方案。
一种方法是使用 Pub 的提交消息来包含指向相应 Priv 修订版的指针,例如“对应于 Priv r1234”。
另一种方法是将对应关系存储在存储库之外的一些简单数据库甚至文本文件中,每当 Priv 的提交被推送到 Pub 时就会更新。
另一种方法是不像您目前所做的那样进行单独的提交来记录 Priv 修订版,而是将该更改添加到应该记录的提交中。
| 归档时间: |
|
| 查看次数: |
881 次 |
| 最近记录: |