svn无法打开ra_local会话

时间:2011-03-17 06:42:45

标签: svn

我在我的Linux服务器上设置了我的svn。我使用以下命令创建了一个REPOSITORY:

# svnadmin create /var/svn/REPOSITORY_NAME

然后我在此文件中设置用户访问权限:

# vi /var/svn/REPOSITORY_NAME/conf/svnserve.conf

接下来,我在第20行取消注释password-db行并添加用户访问权限

# vi /var/svn/REPOSITORY_NAME/conf/passwd

我在这里添加用户名和密码。

然后我用命令# killall svnserve杀死svn 并使用命令# svnserve -d -r /var/svn/

重新启动它

稍后当我使用命令svn co file:///var/www/html/easton访问它时 我收到以下错误:

svn: Unable to open an ra_local session to URL
svn: Unable to open repository 'file:///var/www/html/easton'

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

请看下面的文档,你可以成功安装svn / websvn(我的平台是ubuntu 12.04 LTS)

安装所需的包

apt-get install subversion libapache2-svn 

创建一个根目录来存储svn存储库

mkdir /var/sourcecontrol/svn 

创建一个svn存储库“newrepo”

svnadmin create /var/sourcecontrol/svn/newrepo 

创建一个组“subversion”

groupadd subversion

将用户和“www-data”用户添加到群组

chown username:subversion -R /var/sourcecontrol/svn/newrepo 

访问方法

1.for'file'访问存储库

svn co file:///var/sourcecontrol/svn/newrepo/
  1. 用于http访问存储库

    vim /etc/apache2/mods-available/dav_svn.conf

  2. 在最后添加以下条目

    <Location /newrepo>    
    DAV svn 
    SVNPath /var/sourcecontrol/svn/newrepo 
    AuthType Basic 
    AuthName "Subversion repository repositoryName" 
    </Location> 
    

    重启apache     /etc/init.d/apache2 restart

    现在,您可以使用http

    将存储库“newrepo”签出到本地文件夹

    例如:

    svn co http://<serverip>/newrepo /home/user/Desktop/
    

    您可以使用http://<serverip>/newrepo

    在浏览器中验证存储库
    1. 用于svn访问存储库

      svnserve / var / sourcecontrol / svn /

      vim /var/sourcecontrol/svn/newrepo/conf/svnserve.conf

    2. 在文件末尾添加以下内容

      [general]
      anon-access = none 
      auth-access = write 
      password-db = passwd
      realm = My First Repository
      

      添加身份验证

      vim /var/sourcecontrol/svn/newrepo/conf/passwd
      

      在文件末尾添加用户和密码

          username = password
      

      现在,您可以使用svn

      将存储库“newrepo”签出到本地文件夹

      例如:

      svn co svn://<serverip>/newrepo /home/user/Desktop/
      

      WEBSVN界面

      apt-get install websvn 
      apt-get install enscript 
      

      (在安装之前,在根文件夹中创建一个示例存储库)

      安装时

      在提示时给出现有存储库的路径。

      将websvn目录复制到apache根文件夹

      cp -r /usr/share/websvn /var/www/
      
      vim /etc/apache2/mods-available/dav_svn.conf
      

      在最后添加这些条目(不要删除我们之前创建的现有条目)

      <Location /websvn/> 
      Options FollowSymLinks 
      order allow,deny 
      allow from all 
      AuthType Basic 
      AuthName "Subversion Repository"    
      </Location> 
      

      对于websvn中的存储库管理,我们可以使用两种方法

      1. dpkg-reconfigure websvn

        enter the path of all repositories separated by a comma (when prompted)
        

        OR

        1. vim /etc/websvn/svn_deb_conf.inc
      2. 例如:

        <?php 
        // please edit /etc/websvn/config.php 
        // or use dpkg-reconfigure websvn 
        $config->parentPath("/var/sourcecontrol/svn/newrepo"); 
        $config->parentPath("/var/sourcecontrol/svn/myrepo"); 
        $config->parentPath("/var/sourcecontrol/svn/myproject"); 
        $config->addRepository("newrepo", "file:///var/sourcecontrol/svn/newrepo"); 
        $config->addRepository("myrepo", "file:///var/sourcecontrol/svn/myrepo"); 
        $config->addRepository("myproject", "file:///var/sourcecontrol/svn/myproject"); 
        $config->setEnscriptPath("/usr/bin"); 
        $config->setSedPath("/bin"); 
        $config->useEnscript(); 
        ?>
        

        // newrepo,myrepo,myproject是示例存储库

答案 1 :(得分:2)

你不应该这样做:

svn co file:///var/svn/easton

或:

svn co svn://localhost/var/svn/easton

而不是使用/ var / www / html / easton,因为你说你在/ var / svn中创建了存储库?

答案 2 :(得分:0)

按照下面给出的步骤: -

  1. 打开终端(Ctrl + Alt + T)

  2. 类型:     sudo apt-get update     sudo apt-get install websvn subversion libapache2-svn -y

  3. 您想立即配置WebSVN吗? 稍后配置(dpkg-reconfigure-websvn) 选择

  4. sudo nano /etc/apache2/mods-enabled/dav_svn.conf

  5. 取消注释几行:

    #<Location /svn> to <Location /svn>
    #DAV svn to DAV svn
    #SVNParentPath /var/lib/svn to SVNParentPath /var/lib/svn
    #AuthType Basic to AuthType Basic
    #AuthName "Subversion Repository" to AuthName "Subversion Repository"
    #AuthUserFile /etc/apache2/dav_svn.passwd to AuthUserFile /etc/apache2/dav_svn.passwd
    #<LimitExcept GET PROPFIND OPTIONS REPORT> to <LimitExcept GET PROPFIND OPTIONS REPORT>
    #Require valid-user to Require valid-user
    #</LimitExcept> to </LimitExcept>
    #</Location> to </Location>
    

    验证一切是否正常:     cat /etc/apache2/mods-enabled/dav_svn.conf | grep -v'#'

    <Location /svn>
        DAV svn
        SVNParentPath /var/lib/svn
    
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /etc/apache2/dav_svn.passwd
    
        <LimitExcept GET PROPFIND OPTIONS REPORT>
            Require valid-user
    
        </LimitExcept>
    
    </Location>
    
  6. 如果您知道如何使用此命令行,则可以使用“sed”。

    1. sudo mkdir / var / lib / svn

    2. 创建回购测试:     sudo svnadmin create / var / lib / svn / mysvnreponame     sudo chown -R www-data:www-data / var / lib / svn / mysvnreponame

    3. 重启Apache:     sudo service apache2 restart

    4. 添加svn用户:     sudo apt-get update&amp;&amp; sudo apt-get install apache2-utils     sudo htpasswd -c /etc/apache2/dav_svn.passwd用户名

      对于其他用户或修改密码,您可以使用:     sudo htpasswd -m /etc/apache2/dav_svn.passwd用户名

      验证是否已创建每个用户:     cat /etc/apache2/dav_svn.passwd | grep用户名

    5. 重新配置websvn:     sudo dpkg-reconfigure websvn

      12.1 - Select <Yes>
      12.2 - Select <Ok>
      12.3 - Select <Ok>
      12.4 - Leave Empty & <Ok>  
      12.5 - Select <Ok>
      

      如果您收到消息:     无法创建符号链接'/etc/apache2/conf.d/websvn':没有这样的文件或目录

      尝试修复:    sudo cp /etc/websvn/apache.conf /etc/apache2/conf-available/websvn.conf    sudo a2enconf websvn    sudo service apache2 reload

    6. 测试svn:     获取IP地址:ifconfig或ip addr - 如果您不知道IP地址在哪里,请尝试返回Windows。     http://IP-address/svn/yourreponame

    7. 测试网站:     http://IP-address/websvn

    8. 不要忘记在存储库中创建最基本的结构:

        /trunk
        /branches
        /tags