Subversion : Remote Access to Repositories2021/06/18 |
Access to Repositories from remote Hosts.
|
|
[1] | Start [svnserve] service on a Host that Subversion repository exists. |
[root@dlp ~]#
vi /etc/sysconfig/svnserve # specify the top directory which SVN repositories exist # default is like follows but possible to change for your requirements # Specify the repository location in -r parameter: OPTIONS="-r /var/svn" # create a test project [root@dlp ~]# mkdir -p /var/svn/repos/project [root@dlp ~]# svnadmin create /var/svn/repos/project [root@dlp ~]# svn mkdir file:///var/svn/repos/project/trunk -m "create" [root@dlp ~]# svn mkdir file:///var/svn/repos/project/branches -m "create" [root@dlp ~]# svn mkdir file:///var/svn/repos/project/tags -m "create" |
[2] | If Firewalld is running, allow SVN service. SVN uses [3690/TCP]. |
[root@dlp ~]# firewall-cmd --add-service=svn --permanent success [root@dlp ~]# firewall-cmd --reload success |
[3] | If SELinux is enabled, change policy. On this example, SVN top directory is [/var/svn] but if you set another Path except [/var], you need to modify follows for your requirements. |
[root@dlp ~]#
vi svn-server.te # create new module svn-server 1.0; require { type svnserve_t; type var_t; class file { append create lock rename setattr unlink write }; class dir { add_name create read remove_name rmdir write }; class capability { chown dac_override fsetid }; } #============= svnserve_t ============== allow svnserve_t self:capability { chown dac_override fsetid }; allow svnserve_t var_t:dir { add_name create read remove_name rmdir write }; allow svnserve_t var_t:file { append create lock rename setattr unlink write }; checkmodule -m -M -o svn-server.mod svn-server.te checkmodule: loading policy configuration from svn-server.te checkmodule: policy configuration loaded checkmodule: writing binary representation (version 19) to svn-server.mod [root@dlp ~]# semodule_package --outfile svn-server.pp --module svn-server.mod [root@dlp ~]# semodule -i svn-server.pp |
[4] | Access to existing Subversion repository from another remote Host. For example, Access to existing [/var/svn/repos/project] repository. By the way, default access permission is read only, so it's impossible to execute [commit] or others like changing operation. For changing operation from remote Host, it needs to set access permission like the link. |
# specify relative path name for SVN URI # on this example # SVN Top directory : [/var/svn] # SVN repository directory : [/var/svn/repos/project] # relative path : [repos/project] # SVN URI : [svn://dlp.srv.world/repos/project] [cent@node01 ~]$ svn list svn://dlp.srv.world/repos/project branches/ tags/ trunk/[cent@node01 ~]$ mkdir ./work [cent@node01 ~]$ svn checkout svn://dlp.srv.world/repos/project ./work A work/branches A work/tags A work/trunk Checked out revision 3.[cent@node01 ~]$ ll work total 0 drwxrwxr-x. 2 cent cent 6 Jun 17 20:08 branches drwxrwxr-x. 2 cent cent 6 Jun 17 20:08 tags drwxrwxr-x. 2 cent cent 6 Jun 17 20:08 trunk |
[5] | It's also possible to access via SSH without running [svnserve] service on Subversion Host. |
[cent@node01 ~]$ svn ls svn+ssh://cent@dlp.srv.world/var/svn/repos/project cent@dlp.srv.world's password: branches/ tags/ trunk/[cent@node01 ~]$ mkdir ./work2 [cent@node01 ~]$ svn co svn+ssh://cent@dlp.srv.world/var/svn/repos/project ./work2 cent@dlp.srv.world's password: A work2/branches A work2/tags A work2/trunk Checked out revision 3. |
Sponsored Link |