我们正在尝试重构我们的SVN存储库,并在主干下包含一个lib文件夹来容纳项目所依赖的程序集。
我很想知道你们是如何处理共享程序集的?你有多个副本,跨越不同的主干lib文件夹?您是否有某种构建过程会在构建该程序集时自动更新lib文件夹?
你们是如何处理它的?
谢谢!
答案 0 :(得分:1)
对于共享相同库的不同存储库,我使用对托管lib的存储库的外部引用,以便它们共享相同的代码。如果在同一个存储库中有多个需要libs编译的项目,那么构建过程会根据需要从顶级libs文件夹复制到每个项目子文件夹。
答案 1 :(得分:1)
我们对所有核心库进行了版本化。
例如,SVN看起来像这样:
/回购/ LIB1 /中继/
/repo/lib1/tags/1.0
/repo/lib1/tags/1.1
/回购/ LIB1 /分支
...
这可以避免破坏BC,或其他的情况,并且需要更新使用该库的其他三个项目。
此外,我们利用svn:externals
将这些库链接到项目中。
/repo/project1/tags/1.0
/回购/ PROJECT1 /中继/文库
...
svn propedit svn:externals /repo/project1/trunk/library
输入以下内容:
lib1 svn://host/repo/lib1/tags/1.1
...并提交更改。
Project1本身也遵循约定(发布的标签等)。
根据您选择的语言,当然还有其他选择。让我知道你是否可以详细说明,我看看能否扩展我的答案。但总而言之,它就是那么简单。不需要其他构建工具。
我们直接从subversion(通过capistrano)完成所有部署。它基本上只是检查标签,并完成。甚至允许热固定它。如果你允许我拉皮条我自己的blog - 我已经在这个主题上写了很多文章(“从svn部署”)。
HTH!