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