使用svn:externals更新多个项目

时间:2010-10-06 14:39:12

标签: visual-studio svn tortoisesvn visualsvn visualsvn-server

概述

我在Visual Studio中使用VisualSVN,在Windows上使用VisualSVN Server,当然还有TortoiseSVN。我想知道在多个解决方案中共享多个项目的最佳方法是什么,以及是否有更好的方法。

布局

我的存储库看起来像这样(不是它们的真实姓名):

Library.Common
Library.Web
Library.DB
Library.CMS
Customer1.Site
Customer2.Site

过程

创建包含常见项目的新网站:

  1. 在SVN-Server中创建存储库,例如“Customer3.Site”

  2. 使用名为“Customer3.Site”的Visual Studio 2008创建网站,VisualSVN用于提交在步骤(1)中创建的存储库。

  3. 编辑Customer3.Site的属性并将必要的项目指定为svn:externals,例如: “Library.Common”,“Library.DB”等

  4. 执行更新,获取这些外部项目,并将它们添加到我在Visual Studio中的解决方案中,向Customer3.Site Web项目添加必要的引用并点击构建。

  5. 到目前为止一切顺利。

    问题

    所有这一切都很好,我很高兴如果我必须修改任何核心库项目,我可以在同一环境中这样做,并将它们提交到存储库。随着越来越多的客户站点被构建,我将不得不跟踪我已经完成的工作并记住SVN更新并重建那些看起来非常冗长的任务的网站。

    有更好的方法可以做到这一点,这是一种更好的解决方案吗?我是否通过这种方式破坏任何基本的SVN法律?我想找到一个不花费太多时间的好解决方案,也不会过于复杂。

1 个答案:

答案 0 :(得分:0)

我一直面临着类似的问题......我正在为WordPress设置一个基本安装包,我们将用它来快速获取网站设置,它包含wordpress的核心+一组基线插件,两者都是我们创建的第三方和定制的。一切都来自SVN。

不同的插件有不同的版本/标签,并且设置一个svn外部指向每个项目的特定标记版本将是一场噩梦...然后只需要进入每个项目并进行属性调整然后更新

将要实施的是根据需要具有特定版本的供应商分支。我所要做的就是更新客户端站点,因为它们总是指向最新版本(在我的控制下,在供应商分支中)。

关于你的问题,以及我的情况:我可能会编写一个提交脚本,以便在更新供应商分支中的某些内容时自动更新所有项目。