我在这里有一个场景,我希望那里有一些工具可以做到这一点。
我希望能够在不通过 SSH 登录的情况下控制 SVN 结帐。意思是,我可以在不通过 SSH 登录服务器的情况下运行 svn update 和 stat。是否有某种类型的网络界面可以让我这样做?或者这只是我需要写的一次性?
谢谢。
更新:
好的,这是场景。这可能有助于澄清我的需求。
- X 公司在其服务器上托管 www.foo.com
- 富公司 拥有代码并希望托管 SVN 存储库。
- X 公司不想给 Foo inc. 出于安全原因,通过 SSH 连接到他们的服务器。
Foo Inc. 怎么样?X 公司将代码推广到 X 公司的服务器?X 公司是个简单的案例,我只是不知道如何让 Foo Inc 加入。我知道我可以编写一些带有系统调用的自定义脚本,但我希望有一个打包的解决方案。
再次感谢。到目前为止阅读很棒的东西。
SVN 书中完全可行且非常详尽地记录了
编辑:详细说明一下:Subversion 附带一个 apache 模块,可以将
mod_dav_svn
其与 apache 一起mod_dav
配置为通过 http/1.1 提供对任何或所有存储库的非常灵活和可配置的访问 - 即svn list https://svn.my.domain/
。如果您只是想查看存储库,那么上面提到的 websvn 之类的简单工具就可以解决问题。但是,如果您希望通过从 Web 浏览器提交或提取新的代码副本来管理结帐,您可以使用一些简单的方法,例如通过 cgi 应用程序在 perl 中进行系统调用。代码可以像将其填充到 cgi 中一样简单:
Subversion 支持多种访问方法,支持对存储库的完全操作:
如果要执行结帐,则必须选择上述之一。所有这些都要求您的客户端系统上有一个 SVN 客户端(命令行界面或类似 TortoiseSVN 的 GUI)
一些人建议的其他选项(WebSVN 等)通常是 PHP 或 Perl CGI 应用程序,它们提供存储库的只读视图。有些会允许您导出整个目录,但它们不会让您执行正确的签出,以便您随后将更改签入。
还有一个 post-commit 钩子选项,它将存储库的签出副本保存在一个镜像目录中,您可以通过您的网络服务器公开该目录,但这实际上只是所提到的 CGI 应用程序的一个穷人版本。
您可以使用 PHP Shell ( http://phpshell.sourceforge.net/ ) 之类的东西来执行此操作。这实际上取决于用例。如果您想要一种安全的方式让其他用户能够在工作副本上执行命令,那么最好的选择可能是一次性脚本。但是,如果这只是供您自己使用,并且您愿意忍受 PHP Shell 并且必须输入您想要运行的命令,就好像您是 SSH 一样,那么它应该可以完成工作。
您还应该研究使用 svn 存储库挂钩来完成您想要的(取决于您的用例)。使用 post-commit 钩子,您可以例如在对特定分支进行提交时更新结帐。(只需使用 svn 查看该分支中的任何文件是否已更改,如果是,则在您的存储库上运行 svn up。您可能必须使用
sudo
以获得正确的权限,因为该挂钩以您的 Web 服务器或 svnserve 用户身份运行。)手册是了解更多相关信息的好资源。这非常有用。
http://tortoisesvn.tigris.org/
我对你想做什么感到困惑。您要查看存储库吗?查看内容,查看历史,查看日志?如果您真的想处理结帐而不是存储库,为什么?它将用于什么?您没有提到要编辑结帐,这使 stat 有点毫无意义。我怀疑还有其他方法可以做你想做的事。用您正在尝试做的事情更新您的问题,我会尝试提供更具体的帮助。
试试 DoctorSVN,它没有适当的版本,而且有一点问题,但通过一些调整,你可以让它工作。希望有帮助。