从Subversion部署网站

时间:2009-11-30 21:20:33

标签: svn

我是颠覆新手,我想知道你如何从发展转向分期再生产?

我认为我掌握了为版本创建分支的概念detailed here。但是我如何实际部署分支?

理想情况下,我可以设置一个新网站并从分支机构复制文件,但我担心将任何svn绑定复制到生产环境中。

如果它是相关的,这是一个Visual Studio网站项目,我使用VisualSVN服务器,TortoiseSVN和Ankh与Visual Studio集成。

8 个答案:

答案 0 :(得分:11)

svn export

导出文件,不包括所有subversion cruft

答案 1 :(得分:5)

你在这里遗漏了一块,基本上 - 你不应该单独使用subversion来部署测试和生产。你最好的选择是使用某种类型的脚本来从subversion中提取构建(如果使用svn导出,它不会带来subversion文件钩子),构建任何必要的文件(使用MSBuild,可以编写脚本),删除不必要的文件(例如.aspx.cs文件,因为你已经构建了这个文件),并将其复制到你的环境中。

在本地,我们使用powershell将所有内容粘合在一起,并使用命令行中的svn命令行,MSBuild和nUnit的组合来执行构建。

答案 2 :(得分:4)

您想要svn export。这将在没有.svn目录的情况下导出代码。

答案 3 :(得分:4)

听起来你会想要对“发布”分支进行SVN导出。有关详细信息,请参阅the Subversion Book's Export documentation

答案 4 :(得分:3)

除非您要在不同的分支机构上开发,否则我只会使用tag来标记版本。

然后,您需要对该标记执行svn export,这样您就不会拥有所有额外的.svn个文件夹。

答案 5 :(得分:0)

我处理它的方式是使用构建工具(例如ant + ivy或maven)来自动化从subversion中检查代码的过程,构建工件,然后部署到任何需要的地方。

我在java方面工作得更多,所以不熟悉.net工具,也许你可以使用nmaven?

答案 6 :(得分:0)

旧线程,但由于SVN在项目的根目录中只有一个.svn文件,所以现在改变了一点吗?您还可以将Apache设置为忽略.svn请求,以便以这种方式部署更可行吗?

答案 7 :(得分:-2)

您需要在构建系统中使用某种“部署”目标,忽略名为.svn的文件夹 - 即所有颠覆信息都存在的文件夹。