我如何发布一个Subversion版本库到本地IIS?

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

将这些Subversion版本库发布到本地IIS的简单方法是什么?

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

echo off setlocal :: Localize the working copy where IIS points) pushd E:\wwwroot\yourapp\trunk :: Update your working copy svn update endlocal exit 

Solutions Collecting From Web of "我如何发布一个Subversion版本库到本地IIS?"

  1. 只要将Web服务器的文件区域保存为一个工作副本,并且每当你想“发布”,就在其中执行一个svn。 配置它隐藏的.svn文件夹的内容,如果他们似乎凌乱(我不明确如何做到这一点,但我认为这是可以做到的)。 他们已经有了隐藏的文件系统,可能会照顾到这一点。

  2. 如果你希望它真的是自动的(只要有人提交就更新),在SVN服务器上使用post-commit钩子脚本来启动第一个进程。

其他人在评论中建议使用导出而不是结帐。 这也可以工作,避免了.svn混乱,但有两个缺点。 一,它必须每次重新下载整个内容,而不仅仅是修改过的文件(因为它没有保留.svn目录记住它是什么)。 如果你有很多文件,这将会慢很多。 二,更新以原子方式替换文件(在.svn / tmp中写入新版本,然后将其移至原位)。 导出时将文件逐渐写入目标。 这意味着导出可能会在不正确的时间向不正确的浏览者发送不完整的文件。

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

这里有SVN FAQ条目 , Vertigo软件博客上的这篇博文可能也有帮助。

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

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

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

干杯保罗

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

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

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