• Install SVN (Subversion) Server on Fedora 20/19, CentOS/Red Hat (RHEL) 6.5/5.10


    Install SVN (Subversion) Server on Fedora 20/19, CentOS/Red Hat (RHEL) 6.5/5.10

     
     

    This is guide, howto install SVN (Subversion) server on Fedora 20/19/18/17/16/15/14, CentOS 6.5/6.4/6.3/6.2/6.1/6/5.10, Red Hat (RHEL) 6.5/6.4/6.3/6.2/6.1/6/5.10.

    What is SVN (Subversion)?

    Subversion is a free/open-source version control system. Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data, or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine”.

     

    Install SVN (Subversion) Server on Fedora 20/19/18, CentOS 6.5/5.10, Red Hat (RHEL) 6.5/5.10

    1. Change root user

    su -
    ## OR ##
    sudo -i
     

    2. Install needed packages (mod_dav_svn and subversion)

    yum install mod_dav_svn subversion

    Note: If you don’t have Apache installed already, this command installs it also. Read more about installing Apache and PHP >>

     

    3. Modify Subversion config file /etc/httpd/conf.d/subversion.conf

    Add following config to /etc/httpd/conf.d/subversion.conf file:

    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so
     
    <Location /svn>
       DAV svn
       SVNParentPath /var/www/svn
       AuthType Basic
       AuthName "Subversion repositories"
       AuthUserFile /etc/svn-auth-users
       Require valid-user
    </Location>

    Read more SVN Access Control >>

     

    4. Add SVN (Subversion) users

    Use following command:

    ## Create testuser ##
    htpasswd -cm /etc/svn-auth-users testuser
    New password: 
    Re-type new password: 
    Adding password for user testuser
     
    ## Create testuser2 ##
    htpasswd -m /etc/svn-auth-users testuser2
    New password: 
    Re-type new password: 
    Adding password for user testuser2

    Note: Use exactly same file and path name as used on subversion.conf file. This example use /etc/svn-auth-users file.

    Read more SVN Access Control >>

     

    5. Create and configure SVN repository

    mkdir /var/www/svn
    cd /var/www/svn
     
    svnadmin create testrepo
    chown -R apache.apache testrepo
     
     
    ## If you have SELinux enabled (you can check it with "sestatus" command) ##
    ## then change SELinux security context with chcon command ##
     
    chcon -R -t httpd_sys_content_t /var/www/svn/testrepo
     
    ## Following enables commits over http ##
    chcon -R -t httpd_sys_rw_content_t /var/www/svn/testrepo

    Restart Apache:

    ## Fedora ##
    systemctl restart httpd.service
    ## OR ##
    service httpd restart
     
    ## CentOS / RHEL ##
    /etc/init.d/httpd restart
    ## OR ##
    service httpd restart

    Goto http://localhost/svn/testrepo address and you should see something like following, write username and password:
    SVN Subversion username and password

    SVN testrepo revision 0:
    SVN Subversion Repository Revision 0

     

    6. Configure repository

    To disable anonymous access and enable access control add following rows to testrepo/conf/svnserve.conf file:

    ## Disable anonymous access ##
    anon-access = none
     
    ## Enable access control ##
    authz-db = authz

    7. Create trunkbranches and tags structure under testrepo

    Create “template” directories with following command:

    mkdir -p /tmp/svn-structure-template/{trunk,branches,tags}

    Then import template to project repository using “svn import” command:

    svn import -m 'Initial import' /tmp/svn-structure-template/ http://localhost/svn/testrepo/
    Adding         /tmp/svn-structure-template/trunk
    Adding         /tmp/svn-structure-template/branches
    Adding         /tmp/svn-structure-template/tags
     
    Committed revision 1.

    Check results on browser and see testrepo revision 1:
    SVN Subversion Repository Revision 1

     

    Remember also take regular backups. Here is guide howto backup and restore SVN (Subversion) Repositories.

     

    Our forums user Will have also written guide, howto to install and configure SVN (Subversion). This is little bit different method.

    Follow If Not True Then False Updates!

    280 COMMENTS

    1. Hi JR

      I am getting httpd unpacking error while trying to installmod_dav_svn.on centOS 6.4

      Running Transaction
      Installing : subversion-1.6.11-9.el6_4.x86_64 1/3
      Installing : httpd-2.2.15-29.el6.centos.x86_64 2/3
      Error unpacking rpm package httpd-2.2.15-29.el6.centos.x86_64
      warning: /etc/httpd/conf/httpd.conf created as /etc/httpd/conf/httpd.conf.rpmnew
      warning: /etc/httpd/conf/magic created as /etc/httpd/conf/magic.rpmnew
      error: unpacking of archive failed on file /etc/httpd/logs: cpio: rename
      Installing : mod_dav_svn-1.6.11-9.el6_4.x86_64 3/3
      Verifying : mod_dav_svn-1.6.11-9.el6_4.x86_64 1/3
      Verifying : subversion-1.6.11-9.el6_4.x86_64 2/3
      Verifying : httpd-2.2.15-29.el6.centos.x86_64 3/3

      Installed:
      mod_dav_svn.x86_64 0:1.6.11-9.el6_4 subversion.x86_64 0:1.6.11-9.el6_4

      Failed:
      httpd.x86_64 0:2.2.15-29.el6.centos

       
      • Hi Akhil,

        Could you post output of following commands:

        ls -la /etc/httpd
         
        ls -la /etc/httpd/logs
         
    2. I followed your articles to install my SVN server with Apache2 successfully. Now I want to enable https. Do you have some instructions like this?

       
      • Hi Jirong Hu,

        Do you want use self-signed SSL certificate or commercial SSL certificate?

         
    3. Hi JR

      I’m post some step then I to do. Please help me a sulotion for error :

      DAV svn
      SVNParentPath /var/www/svn
      AuthType Basic
      AuthName “Subversion repositories”
      AuthUserFile /etc/apache2/dav_svn.passwd
      AuthzSVNAccessFile /etc/apache2/mods-enabled/dav_svn.authz
      Require valid-user

      5. Create Repository for test:
      mkdir /var/www/svn

      6. Authencation for user access forder
      svnadmin create myproject
      chown -R www-data myproject

      7. Create username
      htpasswd -cm /etc/sapache2/dav_svn.passwd testuser1
      htpasswd -m /etc/apache2/dav_svn.passwd testuser2

      9. Configure file dav_svn.authz control access for every user.
      [groups]
      testuser1
      testuser2

      [myproject:/]
      testgroup1 = rw
      testuser2 = r

       
      • Hi sinhatpro,

        I read your both comments and looks like you don’t have myproject2 just only myproject?

        Then also your dav_svn.authz file groups is missing group names, you only list testuser1 and testuser2, then you set rw permission to testgroup1.

        But yes you are right, it’s not SELinux problem, because you are using Ubuntu…

         
    4. If step 5 fails with message

      chcon: can't apply partial context to unlabeled file

      do these commands instead


      chcon -h system_u:object_r:httpd_sys_content_t /var/www/svn/testrepo
      chcon -R -h apache:object_r:httpd_sys_content_t /var/www/svn/testrepo/*

       
    5. I’m not getting add.

      for example:

      [cit@Ltv10 repos]$ svn add test.txt
      svn: ‘.’ is not a working copy

      [cit@Ltv10 repos]$ svn status
      svn: warning: ‘.’ is not a working copy

      [cit@Ltv10 repos]$ svn commit
      svn: ‘/var/www/svn/repos’ is not a working copy

      But,

      [cit@Ltv10 repos]$ sudo svn co http://localhost/svn/repos/
      [sudo] password for cit:
      A repos/trunk
      A repos/branches
      A repos/tags
      Checked out revision 1.


      follown my file subversion.config:

      LoadModule dav_svn_module modules/mod_dav_svn.so
      LoadModule authz_svn_module modules/mod_authz_svn.so

      DAV svn
      SVNParentPath /var/www/svn
      SVNPathAuthz off

      Do you can help me?

      TKS,

       
      • Hi edivaldo,

        You can’t add files or do anything if you have not working copy.

        What happens after checkout, if you run:

        svn status
         
    6. I am following this step but Last IMPORT command Not relocalted

      root@atomix# svn import -m ‘Initial import’ /tmp/svn-structure-template/ http://114.134.91.91/svn/testrepo/
      Authentication realm: Subversion repositories
      Password for ‘root’:
      Authentication realm: Subversion repositories
      Username: sk
      Password for ‘sk’:
      svn: Repository moved permanently to ‘http://114.134.91.91/svn/testrepo/’; please relocate
      [root@atomix ~]#

      Can’t import “trunk,branches,tags”
      pls help any one

       
      • Hi Shaikh Zahid Hossain,

        Could you post your config files example to http://pastebin.com

        And output of following commands here:

        ls -ladZ /var/www/svn
         
        ls -laZ /var/www/svn

        I assume here, that you have used /var/www/svn location for repos.

         
    7. Hi JR,

      First of all I wann thank you for your useful blog.

      I have same issue as Max.

      I have tried below two commnads

      1. chcon -R -t httpd_sys_content_t /var/www/svn/repository

      Above commnad went through fine

      2. chcon -R -t httpd_sys_rw_content_t /var/www/svn/repository

      This Command Gave me Error:

      chcon: failed to change context of /var/www/svn/repository to system_u:object_r:httpd_sys_rw_content_t: Invalid argument
      chcon: failed to change context of /var/www/svn/repository/format to system_u:object_r:httpd_sys_rw_content_t: Invalid argument

      Then I tried the commands as suggested to MAX

      1. chcon -h system_u:object_r:httpd_sys_rw_content_t /var/www/svn/repository

      Error: chcon -h system_u:object_r:httpd_sys_rw_content_t /var/www/svn/repository
      chcon: failed to change context of /var/www/svn/repository to system_u:object_r:httpd_sys_rw_content_t: Invalid argument

      2. chcon -R -h apache:object_r:httpd_sys_rw_content_t /var/www/svn/repository/*

      Error: chcon -R -h apache:object_r:httpd_sys_rw_content_t /var/www/svn/repository/*
      chcon: failed to change context of /var/www/svn/repository/conf to apache:object_r:httpd_sys_rw_content_t: Invalid argument
      chcon: failed to change context of /var/www/svn/repository/conf/authz to apache:object_r:httpd_sys_rw_content_t: Invalid argument

      My Machine details:

      uname -a
      Linux adc6140502 2.6.18-164.0.0.0.1.el5xen #1 SMP Wed Sep 2 22:48:20 EDT 2009 i686 i686 i386 GNU/Linux

      lsb_release -a
      LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
      Distributor ID: EnterpriseEnterpriseServer
      Description: Enterprise Linux Enterprise Linux Server release 5.4 (Carthage)
      Release: 5.4
      Codename: Carthage

      rpm -qa coreutils* selinux* |sort
      coreutils-5.97-23.el5
      selinux-policy-2.4.6-255.el5
      selinux-policy-devel-2.4.6-255.el5
      selinux-policy-minimum-2.4.6-255.el5
      selinux-policy-mls-2.4.6-255.el5
      selinux-policy-strict-2.4.6-255.el5
      selinux-policy-targeted-2.4.6-255.el5

      Please help

       
    8. how to log out in my account

       
    9. First off thanks for the directions. I’m up and running but having an issue on commit:
      In my checked out dir, I first did an ADD for a bunch of new files and directories. svn status reports ok that files are ready to add. Upon attempting my first commit I get:

      svn: Commit failed (details follow):
      svn: Server sent unexpected return value (503 Service Temporarily Unavailable) in response to PROPFIND request…

      when I did all of your steps I did as my own user but sudo’ed to root.
      I did checkout, add, and attempting commit as my own user ‘steve’. All files and directories in my checked out dir are permissioned for me.

      Been googling around on this error and can’t find a solutions for my case. Please help.

       
      • Hi Steve,

        When you checkout repo example over http, then you can use repo as any user. Did you added your user and password AuthUserFile? If you use exactly this guide then you have to do commits as testuser and use testuser password.

        Could you also check what errors you see on httpd access and erros logs?

         
    10. I think this one is important too, to start your SVN services

      svnserve -d -r /var/www/svn

       
    11. Thanks People for this useful blog. I could install SVN in my Linux server successfully but when I try to launch it through console (http://localhost/svn/testrepo) I get login screen but the credentials fail. I gave testuser as the login, similar to the example given above. Sucessful Users, Please advice.

       
      • Hi Vasu,

        Did you used exactly same password that you used on step 4.?

        You could of course create some other user, set password and try again.

         
    12. Thanks for replies.. Yes, I used the same password, even i tried by creating another and using it. It didnt work..

      I came across a file in net /etc/svn-access-control . Should we do any changes into svn-access-control file for making the credentials work..?

       
      • Excellent, just want to first make sure that there wasn’t any mistake on users or passwords…

        So do you have enabled SVN Access Control?

        If yes, could you then post content of /etc/httpd/conf.d/subversion.conf and /etc/svn-access-control files?

         
    13. How can we enable SVN Access Control..? Please find below /etc/svn-access-control File for your reference.

      [groups]
      testgroup = testuser1, testuser2
      testgroup2 = testuser3, testuser4, testuser5
      testgroup3 = testuser6, testuser7

      [/]
      * = r
      @testgroup = rw
      testuser4 = rw

      [testrepo:/]
      @testgroup2 = rw
      testuser6 = rw

      [testrepo2:/trunk]
      @testgroup3 = rw
      testuser5 = rw

      [testrepo2:/tags]
      @testgroup3 = r
      testuser5 = rw

       
    14. Also please let me know the purpose of authz and passwd files under /var/www/svn/testrepo/conf

      It contains Username and passwords.. Do we need to enter into it.?

       
      • Hi Vasu,

        Could you post content of following files /etc/httpd/conf.d/subversion.conf and testrepo/conf/svnserve.conf, example to http://pastebin.com

        Normally it’s better test installation without access control to make sure, where the problem is. If basic setup is not working, then it’s wise to try fix it first without any additional configurations.

         
    15. Good Morning..:)
      Please find content of /etc/httpd/conf.d/subversion.conf below

      LoadModule dav_svn_module modules/mod_dav_svn.so
      LoadModule authz_svn_module modules/mod_authz_svn.so

      DAV svn
      SVNParentPath /var/www/svn
      AuthType Basic
      AuthName “Subversion repositories”
      AuthUserFile /etc/svn-auth-users
      Require valid-user

      testrepo/conf/svnserve.conf Content is
      anon-access = none
      autzh-db = authz
      [general]
      anon-access = read
      auth-access = write
      password-db = passwd
      authz-db = authz

      I also want to know from which file the credentials are loaded while we login…..

       
    16. People, the issue is resolved by changed two files like below:

      /etc/svn-access-control data:

      [groups]
      testgroup = testuser,testuser1,testuser2,testuser3,testuser4

      [/]
      * = rw
      @testgroup = rw

      [testrepo:/]
      @testgroup = rw

      [testrepo:/trunk]
      @testgroup = rw

      [testrepo:/branches]
      @testgroup = rw

      [testrepo:/tags]
      @testgroup = rw

      Type the below commands to add Users:

      htpasswd -cm /etc/svn-auth-users testuser2
      New Password:
      Retype Password:

      This encrypts and stores password and username at /etc/svn-auth-users file

       
     

    Leave a Comment

    Your email address will not be published. Required fields are marked *

     

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

    Trackbacks/Pingbacks

    1. Install SVN Server on Fedora 13/14, CentOS/Red Hat (RHEL) 5.5/6 « svn - [...] Więcej: Install SVN Server on Fedora 13/14, CentOS/Red Hat (RHEL) 5.5/6 [...]
    2. Install SVN (Subversion) Server on Fedora 15/14, CentOS/Red Hat (RHEL) 5.6/6 | 資訊與工作 - [...] Install SVN (Subversion) Server on Fedora 15/14, CentOS/Red Hat (RHEL) 5.6/6 Install SVN (Subversion) Server on Fedora 15/14, CentOS/Red 
  • 相关阅读:
    Andriod调试桥
    抓包工具charles的使用
    测试常用工具
    Indentation error codes
    Cmder 中文乱码的解决方法
    修改Cmder命令提示符
    统计单词出现的字数
    将字串内容输出到文件
    python数据实例str
    python语法检查工具
  • 原文地址:https://www.cnblogs.com/adolfmc/p/3681988.html
Copyright © 2020-2023  润新知