我应该如何更改为svn协议而不是http

时间:2012-01-04 05:40:19

标签: svn

我当前的svn服务器路径是

http://file.com/repo/testproj

但我想使用svn协议而不是http

svn:// file / repo / test进行SVN同步

我需要做什么。

请帮忙。

我尝试过以下命令: svn switch --relocate http://file.com/repo/testproj svn://file.com/repo/testproj 但它给出了错误: svn:'。'不是工作副本

1 个答案:

答案 0 :(得分:2)

您可能正在通过HTTP服务器提供文件,例如Apache等。您需要停止这样做并使用svnserve服务器进行服务。这将对svn://svn+ssh://协议做出反应。

基本上,正如医生所说,

  

最简单的选择是将svnserve作为独立的“守护程序”进程运行。使用-d选项
  为此:

     

$ svnserve -d
  $ # svnserve is now running, listening on port 3690

     

在守护进程模式下运行svnserve时,您可以使用--listen-port--listen-host选项自定义要“绑定”的确切端口和主机名。

     

如前所述,成功启动svnserve后,它会使您系统上的每个存储库都可供网络使用。客户端需要在存储库URL中指定绝对路径。例如,如果存储库位于/var/svn/project1,则客户端将通过svn://host.example.com/var/svn/project1与其联系。为了提高安全性,您可以将-r选项传递给svnserve,这会将其限制为仅导出该路径下的存储库。例如:

     

$ svnserve -d -r /var/svn...

     

使用-r选项可以有效地修改程序视为远程文件系统空间根目录的位置。然后,客户端使用从其中删除该路径部分的URL,留下更短(并且更不显示)的URL:

     

$ svn checkout svn://host.example.com/project1

阅读本手册:http://svnbook.red-bean.com/en/1.7/svn.serverconfig.svnserve.html