我在这里有一个场景,我希望有一些工具可以做到这一点。
我希望能够控制一个SVN结帐,而不用SSH进去。意思是,我将能够运行svn update和stat,而不用SSH到服务器。 是否有某种types的networking界面,可以让我做到这一点? 或者这只是我需要写的一次性?
谢谢。
更新:
好的,这是场景。 这可能有助于澄清我的需求。
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支持多种访问方法,支持对存储库的全面操作:
如果您想执行结帐,您必须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来获得权限。颠覆手册是学习更多关于这个的好资源。
我很困惑你想做什么。 你想查看存储库吗? 查看内容,查看历史logging,查看日志? 如果你真的想处理一个结帐,而不是一个存储库,为什么? 它将用于什么? 你没有提到正在编辑结帐,这使得数据有点没有意义。 我怀疑还有其他的方式来做你想做的事情。 更新你的问题与你想要做什么,我会尽力给予更具体的帮助。
尝试DoctorSVN,它没有一个适当的版本,是一个小错误,但有一些调整,你可以得到它的工作。 希望有所帮助。