【发布时间】:2012-01-04 14:49:01
【问题描述】:
我当前的svn服务器路径是
但我想使用 svn 协议而不是 http
svn://file/repo/test 进行 SVN 同步
我需要做什么。
请帮忙。
我尝试过使用以下命令:svn switch --relocate http://file.com/repo/testprojsvn://file.com/repo/testproj 但它给出了错误: svn: '.'不是工作副本
【问题讨论】:
标签: svn
我当前的svn服务器路径是
但我想使用 svn 协议而不是 http
svn://file/repo/test 进行 SVN 同步
我需要做什么。
请帮忙。
我尝试过使用以下命令:svn switch --relocate http://file.com/repo/testprojsvn://file.com/repo/testproj 但它给出了错误: svn: '.'不是工作副本
【问题讨论】:
标签: svn
您可能正在通过 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
【讨论】: