【问题标题】:How can I publish a subversion repository to a local IIS?如何将 subversion 存储库发布到本地 IIS?
【发布时间】:2009-12-14 18:32:17
【问题描述】:

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

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

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

echo off
setlocal

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

endlocal
exit

【问题讨论】:

    标签: windows svn iis tortoisesvn continuous-integration


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

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

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

    【讨论】:

    • 这样就可以了。我可能会更进一步,创建一个 NANT 脚本来为您完成这项工作,可能会执行 SVN 导出而不是结帐。
    • 我喜欢将 Nant 脚本存储为项目的一部分。查看dimecasts.net/Casts/ByTag/NAnt
    • 关于出口的好点。我从来没有在实践中那样使用它(我让 Nant 做所有的脏活),但我认为值得一提。我要补充一点,导出还需要您先清除现有文件,而更新将为您完成这项工作。
    【解决方案2】:

    SVN 不支持 IIS;但是,您可以run the standalone svnserve server as a windows service

    有关于它的SVN FAQ entryVertigo Software blog 上的这篇博文也可能会有所帮助。

    更新: 在您澄清之后,我发现您正在寻找的是一种在签入后自动更新服务器上代码的方法。查看CruiseControl.NET,在查看subversion integration tutorial 之后,它看起来应该做你想做的事.

    更新 2:本教程描述了integrating Subversion, CruiseControl.NET and Nant

    【讨论】:

    • 除非我误解,@jdecuyper 正在寻找一种方法来发布他的存储库的内容,而不是一种托管它的方法。
    • 啊,我想我误会了。在那种情况下,@puetzk 的回答是绝对正确的。您还可以为此使用持续集成工具包;我将其添加到我的回复中。
    【解决方案3】:

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

    干杯 保罗

    【讨论】:

    • svnforum.org/2017/… Paolo - 这个论坛的人说 svnisapi.com 从 Windows 网站 (sublimesvn.com) 上的另一个 SVN 中提取了内容。您可能想反驳该评论并澄清您与公司的关系。请注意,我不隶属于这些产品中的任何一个,只是研究我们自己的 svn 安装的可能性。
    【解决方案4】:

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

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

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

    【讨论】:

    • 我们实际上是在使用 Visual-SVN 服务器(顺便说一句很棒)并且可以通过 HTTP(端口 8443)访问我们的文件。但是不提供 aspx 文件(仅以纯文本形式显示),我们需要对它们进行处理。
    猜你喜欢
    • 2011-12-09
    • 2016-09-03
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 2013-01-20
    • 2017-03-07
    • 1970-01-01
    • 2016-04-17
    相关资源
    最近更新 更多