SVN 网页界面

SVN 网页界面

我这里有一个场景,我希望有一些工具可以做到这一点。

我希望能够控制 SVN 签出,而无需通过 SSH 登录。也就是说,我能够运行 svn update 和 stat,而无需通过 SSH 登录服务器。是否有某种类型的 Web 界面可以让我做到这一点?或者这只是我需要编写的一次性功能?

谢谢。

更新:

好的,情况如下。这可能有助于澄清我的需求。

  • X 公司在其服务器上托管 www.foo.com
  • Foo inc. 拥有代码并希望托管 SVN 存储库。
  • 出于安全原因,X 公司不想让 Foo inc. SSH 进入他们的服务器。

Foo inc. 和 X 公司如何将代码推广到 X 公司的服务器?X 公司是一个简单的案例,我只是不知道如何让 Foo inc 这样做。我知道我可以用系统调用编写一些自定义脚本,但我希望有一个打包的解决方案。

再次感谢。到目前为止读到的内容很棒。

答案1

完全可行,并且记录得非常详尽SVN 书籍

编辑:详细说明一下:Subversion 附带一个 apache 模块mod_dav_svn,该模块与 apache 一起mod_dav可以配置为通过 http/1.1 提供对任何或所有存储库的非常灵活和可配置的访问 - 即svn list https://svn.my.domain/

答案2

如果您只是希望查看存储库,上述 websvn 等简单工具可能就足够了。但是,如果您希望通过提交或从 Web 浏览器提取新代码副本来管理签出,则可以使用一些简单方法,例如通过 cgi 应用程序在 perl 中进行系统调用。代码可以简单到只需将其塞入 cgi 中即可:

#! /usr/bin/perl -w

my @args = ("svn", "update", '/path/to/checkout');
system(@args) == 0 or die "system @args failed: $?";

答案3

Subversion 支持多种支持完全操作存储库的访问方法:

  • http/https:需要使用带有 mod_dav_svn 模块的 Apache 2
  • 文件:需要“直接”访问存储库文件系统(如果性能较差,网络文件系统应该也可以)
  • svn:svn 专有协议,要求您运行 svnserve 进程。有一种变体称为 svn+ssh,它通过 SSH 连接按需运行守护进程,但这不符合您的要求

如果您要执行签出,则必须选择上述方法之一。所有这些都要求您在客户端系统上安装 SVN 客户端(命令行界面或 TortoiseSVN 等 GUI)

一些人建议的其他选项(WebSVN 等)通常是提供存储库只读视图的 PHP 或 Perl CGI 应用程序。有些会让您导出整个目录,但它们不会让您执行随后可以签入更改的正确签出。

还有提交后挂钩选项,它会将存储库的签出副本保存在镜像目录中,您可以通过 Web 服务器公开该目录,但这实际上只是提到的 CGI 应用程序的穷人版本。

答案4

这非常有用。

http://tortoisesvn.tigris.org/

相关内容