Cox*_*oxy 5 svn version-control externals
我正在为我的公司研究svn externals,看起来这对我们来说是一个很好的功能.我们有几种产品经常引用共享组件,但有一个坏习惯,即落后于旧版本甚至不同的分支代码库.
我已经读了很多关于他们现在如何工作的内容,我想我理解这个概念.我不是100%肯定的是多个存储库的不同修订如何链接在一起.
假设我有一个产品和一个库.产品是针对库构建的,因此其repo具有链接到库源的svn:externals属性.在svn:externals定义中没有特定版本的情况下,当我查看产品的HEAD时,我也得到了HEAD of Library.
多年来,我构建了多个版本的Product,每次都引用了最新版本的Library.有一天,我必须通过手动选择正确的版本返回并查看产品版本1.当我这样做时,我会得到哪个版本的库,HEAD还是我第一次构建它时使用的版本?
希望我是一名优秀的开发人员,并记得标记我发布的每个版本的产品.当我将我的标签'Product-1-0-0'应用到存储库时,库存储库的正确版本是否也被标记了?如果我稍后根据标签'Product-1-0-0'检查产品,是否可以使用它检查库的正确版本?
您需要注意的svn:externals是,如果您需要除trunk之外的其他内容,则需要明确指定修订版本. 谷歌"钉住svn:externals"了解细节.如果您使用相当现代的版本,1.5或更新的IIRC,那么至少支持相对的外部.旧版本,像我目前使用的一个,需要我们用明确引脚修订-rNNNNN的选项svn:externals属性每一个该死的文件夹.
我们最终使用了一个名为svncopy.pltigris.org 的perl脚本的修改来完成所有的分支和标记.它并没有那么糟糕,但我希望我们知道在我们决定如此大量使用它们之前需要做多少工作.
您可以使用日期说明符来确保在更新时获得相应的修订.
我们已经完成了一个运行PC-Lint的工具; 我们喜欢在每个版本上运行它,以便我们可以区分结果.
它的实施有点令人讨厌 - 我们:
svnversion)svn info)svn log)svn update -r {sometimestamp})(复杂性值得Rube Goldberg,不是吗?对任何能提出更好解决方案的人都表示赞赏和不懈的感激.)
您可能也对svn书中关于Peg和Operative Revisions的部分感兴趣,我刚刚发现 - 这似乎是一个相对较新的补充.
| 归档时间: |
|
| 查看次数: |
756 次 |
| 最近记录: |