SVN存储库结构和共享程序集

时间:2009-06-05 00:58:05

标签: svn deployment assemblies repository

我们正在尝试重构我们的SVN存储库,并在主干下包含一个lib文件夹来容纳项目所依赖的程序集。

我很想知道你们是如何处理共享程序集的?你有多个副本,跨越不同的主干lib文件夹?您是否有某种构建过程会在构建该程序集时自动更新lib文件夹?

你们是如何处理它的?

谢谢!

2 个答案:

答案 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!