svn和svn + ssh的Subversion路径差异

Modified on: Sun, 25 Aug 2019 08:20:02 +0800

[02:48] [root @ server:〜] ps ax | grep svn
    23986? Ss 0:00 / usr / bin / svnserve -d -r / srv / svn
正如你从参数中看到的那样,我的svn root dir是/ srv / svn。

现在,来自远程机器的一些魔力......

这有效:

> svn co svn://svn-user@domain.com/test-repo

但这不是:

> svn co svn+ssh://svn-user@<putty-session-name>/test-repo 'No repository found in 'svn+ssh://svn-user@<putty-session-name>/test-repo'

玩了几个小时我发现看起来很如果我使用ssh隧道,我可以使用以下内容获取我的回购:

> svn co svn+ssh://svn-user@<putty-session-name>/srv/svn/test-repo

...这意味着我应该指定回购的完整物理路径。
咦?

最佳答案

正如womble所说,确实这是svn超过ssh的'特征'。

我有svn + ssh在没有指定存储库的完整路径的情况下工作,因为svn服务器有一个svnserve包装器脚本代替原始的svnserve二进制文件。之后,在subversion更新期间,此脚本被原始二进制文件覆盖。

解决方案:强>

  1. 将svnserve重命名为bin

    mv /usr/bin/svnserve /usr/bin/svnserve.bin
    
  2. 将此脚本另存为/ usr / bin / svnserve:


    #!/bin/sh exec /usr/bin/svnserve.bin -r /srv/svn "$@"
  3. 更新权限

    #!/bin/sh
    exec /usr/bin/svnserve.bin -r /srv/svn "$@"
    
  4. 醇>

相关问答

添加新评论