2

我刚刚在我的本地机器和托管我们网站的服务器上设置了 VisualSVN。我在安装软件时使用了标准的默认设置,但我有点困惑如何在我们的设置中使用它。

我已经测试了安装,一切似乎都正常。在 Visual Studio 2008 中,我可以使用“服务器/svn/域名文件夹的 IP”成功连接到网站文件并将其提交到服务器。如果我将浏览器指向 URL“服务器/svn/域名文件夹的 IP”并输入我的用户名和密码,我会看到一个文件夹树,其中包含我刚刚上传的所有文件。所以这些位工作正常。

我的问题是我们如何测试我刚刚上传的网站?在我们的服务器上,我们所有的网站都存储在“C:\sites\domainname”文件夹中。在 IIS 中,我们将该文件夹映射到域名,因此当有人输入 domainname.com 时,他们会获得正确的网站。如何配置 Visual SVN 服务器设置以允许我使用我们当前拥有的“C:\sites\domainname”设置?

任何帮助将不胜感激,因为我对此感到完全困惑。

4

6 回答 6

2

我认为您对 VisualSVN 是什么感到困惑:

VisualSVN Server 是一个包,其中包含您在 Windows 平台上为您的团队安装、配置和管理 Subversion 服务器所需的一切。它包括 Subversion、Apache 和一个管理控制台。

它是一个漂亮的包,包含在 Windows 机器上运行 Subversion 源代码控制服务器所需的一切。我喜欢它。通常,您不会将它安装在同时托管网站的机器上,我绝对不会在托管面向公众的网站的机器上安装它。

Subversion 只是一个源代码控制系统。它不会改变您部署站点的方式。

于 2009-03-12T13:49:46.680 回答
2

在我的公司,我们通过以下解决方案实现了这一点:

  • 设置一个hudson CI 服务器,通过轮询 SVN 定期构建我们的产品
  • 在项目配置的构建步骤中,构建工件被复制到 c:\artifacts 之类的文件夹中。
  • 然后我们在 C:\Program Files\VisualSVN Server\conf\httpd-custom.conf 中创建了一个自定义 apache 配置文件(不要修改 httpd.conf;它在更新等过程中会被覆盖)

然后我们将以下内容添加到 httpd-custom.conf:

LoadModule alias_module bin/mod_alias.so
<Directory "C:/artifacts">
    Options Indexes
    AllowOverride None
</Directory>

<IfModule alias_module>
    Alias /artifacts C:/artifacts
</IfModule>

现在http://svn.example.com/artifacts/充当测试站点,并在任何开发人员向 SVN 提交代码时自动更新。

于 2009-03-12T13:50:28.020 回答
0

听起来你需要检查这些网站从颠覆到网络服务器。将 IIS 中的虚拟驱动器映射到这些文件夹。

为清晰起见进行了编辑。

于 2009-03-12T13:05:24.527 回答
0

我从未使用过 VisualSVN,但我认为通常使用 SVN 和网络服务器,您可以将适当的代码检出到 C:\sites\domainname 中。

然后,当您想将代码推送到服务器上时,您可以在该目录上运行 SVN 更新(假设已将适当的更改推送到 subversion)。显然,我会事先使用一个测试域和另一个目录来测试它(或者只是用 IIS 浏览一个测试目录)。

不过就个人而言,由于我使用 asp.net 和 C# 并使用 Web 部署项目进行预编译,因此我通常只是自己移动构建,而不是在网络服务器上弄乱 SVN。使用 PHP 之类的解释型语言会更直接。

我在 Windows 上的 svn 客户端是 ToirtoiseSVN

于 2009-03-12T13:05:31.997 回答
0

你可以做一个post-commit hook,将 SVN EXPORT 服务器到部署路径。

于 2009-03-12T13:38:58.143 回答
0

问题是 subversion 无法正常将文件存储在硬盘上。它使用数据库或虚拟文件系统来存储文件。这是对它们进行版本控制所必需的。完成这项工作的最简单方法是使用 subversion 命令行客户端并编写一个小批处理文件,该文件检查您的 subversion 存储库的头版本并将文件复制到您的 IIS 文件夹。您可以通过 cronjob 定期调用批处理文件。

于 2009-03-12T13:46:59.980 回答