SVN网页界面

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

我希望能够控制一个SVN结帐,而不用SSH进去。意思是,我将能够运行svn update和stat,而不用SSH到服务器。 是否有某种types的networking界面,可以让我做到这一点? 或者这只是我需要写的一次性?

谢谢。

更新:

好的,这是场景。 这可能有助于澄清我的需求。

  • X公司在他们的服务器上托pipewww.foo.com
  • 富公司 拥有代码,并希望承载SVN回购。
  • X公司不想给Foo公司。 为安全起见,将SSH安装到服务器中。

Foo如何? X公司将代码推广到X公司的服务器上? X公司是一个简单的例子,我不知道如何让Foo公司。 我知道我可以用系统调用写一些自定义脚本,但是我希望有一个打包的解决scheme。

再次感谢。 阅读伟大的东西迄今。

完全可以在SVN书中得到彻底的logging

编辑:详细阐述一下:Subversion提供了一个Apache模块mod_dav_svn ,它与Apache的mod_dav一起可以被configuration为通过http / 1.1给你的任何或所有的仓库提供非常灵活和可configuration的访问 – 即svn list https://svn.my.domain/

如果你只是想查看一个仓库,像上面提到的websvn这样的简单工具可能会诀窍。 但是,如果您希望通过从Web浏览器提交或提取新代码来pipe理结帐,则可以通过cgi应用程序在perl中使用类似系统调用的简单操作。 代码可以像在cgi中填充一样简单:

 #! /usr/bin/perl -w my @args = ("svn", "update", '/path/to/checkout'); system(@args) == 0 or die "system @args failed: $?"; 

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

  • http / https:需要使用Apache 2和mod_dav_svn模块
  • 文件:需要对存储库文件系统进行“直接”访问(如果性能较差,networking文件系统应该没问题)
  • svn:一个svn专有协议,需要你运行svnserve进程。 有一个名为svn + ssh的变体,通过SSH连接按需运行守护程序,但这不符合您的要求

如果您想执行结帐,您必须select上述之一。 所有这些都要求你的客户端系统上有一个SVN客户端(命令行界面或像TortoiseSVN这样的GUI)

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

还有一个post-commit钩子选项,它可以将一个存储库的签出副本保存在一个镜像目录中,您可以通过networking服务器公开这个镜像目录,但这实际上只是一个穷人版本的CGI应用程序。

您可能可以使用像PHP Shell( http://phpshell.sourceforge.net/ )这样的东西。 这真的取决于用例。 如果你想要一个安全的方式让其他用户能够在工作副本上执行命令,你最好的select可能是一次性脚本。 但是,如果这仅仅是为了自己的使用,而且您愿意忍受PHP Shell,并且必须input您希望运行的命令,就好像您已经使用SSH一样,那么应该完成这项工作。

你也应该调查使用svn仓库钩子来完成你想要的(取决于你的用例)。 使用post-commit钩子可以例如在对特定分支进行提交时更新结账。 (只需使用svn look来查看是​​否有来自该分支的任何文件被修改,如果是这样的话,在你的仓库上运行svn就可以了,因为钩子作为你的web服务器或svnserve用户运行,你可能必须使用sudo来获得权限。颠覆手册是学习更多关于这个的好资源。

这非常有用。

http://tortoisesvn.tigris.org/

我很困惑你想做什么。 你想查看存储库吗? 查看内容,查看历史logging,查看日志? 如果你真的想处理一个结帐,而不是一个存储库,为什么? 它将用于什么? 你没有提到正在编辑结帐,这使得数据有点没有意义。 我怀疑还有其他的方式来做你想做的事情。 更新你的问题与你想要做什么,我会尽力给予更具体的帮助。

尝试DoctorSVN,它没有一个适当的版本,是一个小错误,但有一些调整,你可以得到它的工作。 希望有所帮助。