8

在工作中,我们有一个安装了 IIS 和 Subversion 的 windows server 2003。我们使用它在本地发布和测试我们的 ASP.NET 网站。每个程序员都在他的 PC 上安装了 Tortoise,并且可以更新/提交内容到服务器。托管存储库工作正常。但是保存在这些存储库中的文件需要复制到我们的本地 IIS(虚拟目录)。

将这些颠覆存储库发布到我们本地 IIS 的简单方法是什么?

编辑:
感谢puetzk,我添加了一个简单的 bat 文件,每次提交时都会执行该文件(查看关于钩子的颠覆文档)。我的 bat 文件只包含:

echo off
setlocal

:: Localize the working copy where IIS points)
pushd E:\wwwroot\yourapp\trunk
:: Update your working copy
svn update

endlocal
exit
4

4 回答 4

12
  1. 只需将 Web 服务器的文件区域保留为工作副本,并在您想要“发布”时在其中执行 svn up。配置它以隐藏 .svn 文件夹的内容,如果它们看起来不整洁(我不具体知道如何执行此操作,但我认为可以完成)。他们将已经拥有文件系统隐藏位,这可能会解决这个问题。

  2. 如果您希望它真正自动(一旦有人提交就更新),请使用 SVN 服务器上的提交后挂钩脚本来启动第一个进程。

评论中的其他人建议使用导出而不是结帐。这也可以工作,并避免 .svn 混乱,但有两个缺点。一,它每次都必须重新下载整个内容,而不仅仅是修改过的文件(因为它没有保留 .svn 目录来记住它有什么)。如果你有很多文件,这会慢得多。第二,更新自动替换文件(将新版本写入 .svn/tmp,然后将其移动到位)。导出将文件在下载时逐渐写入其目的地。这意味着导出可能会将不完整的文件传递给在错误时间浏览它的人。

于 2008-09-22T23:39:46.147 回答
6

SVN 不支持 IIS;但是,您可以将独立的 svnserve 服务器作为 Windows 服务运行

有关于它的SVN 常见问题解答条目, Vertigo Software 博客上的这篇博文也可能会有所帮助。

更新:在您澄清之后,我看到您正在寻找的是一种在签入后自动更新服务器上代码的方法。查看CruiseControl.NET,在查看了颠覆集成教程之后,它看起来应该做什么你要。

更新 2:本教程描述了集成 Subversion、CruiseControl.NET 和 Nant

于 2008-09-22T23:31:24.390 回答
2

也许 SVNIsapi 可以解决这个问题(http://www.svnisapi.com)。因为它只使用 IIS 安装,因此您不需要 APACHE 服务器或 SVNSERVER 服务。其次,应该可以将 ASP.NET ISAPI 插件堆叠到 SVNISAPI 的处理上,以便在从存储库读取后解释 ASP.NET (.aspx) 页面。

干杯保罗

于 2009-12-14T10:32:17.690 回答
1

使用可以使用免费的Visual-SVN Server快速安装带有 Apache 前端的 Subversion。它还有一个很好的 MMC 管理单元,用于管理服务器和存储库。

您将能够使用 HTTP 或 HTTPS 访问 subversion,但端口号必须与本地 IIS 使用的端口号不同(Visual-SVN 服务器的默认端口是 8080)。

如果您确实需要使用本地 IIS 端口 80 访问存储库,您可以尝试使用SVN-IIS,它充当 IIS 和 Apache 之间的桥梁。我自己还没有尝试过这个。

于 2008-09-22T23:56:07.093 回答