我当前的svn服务器路径是
但我想使用svn协议而不是http
svn:// file / repo / test进行SVN同步
我需要做什么。
请帮忙。
我尝试过以下命令: svn switch --relocate http://file.com/repo/testproj svn://file.com/repo/testproj 但它给出了错误: svn:'。'不是工作副本
答案 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