1. Introduction
This post shows how to install SVN 1.8 into CentOS 6.5.
2. Pre-conditions
2.1. Install Apache HTTP Server
# echo "Check if httpd (Apache Server) is installed and running ..."# service httpd status
httpd (pid 1665) is running...
#
# echo "Install httpd (apache server) if needed ..."
# yum install httpd
# service httpd restart
# chkconfig httpd on
2.2. Setup Yum Repository for SVN Subversion
# vim /etc/yum.repos.d/wandisco-svn.repo[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.8/RPMS/$basearch/
enabled=1
gpgcheck=0
2.3. Install Subversion Package
Before installing latest package remove existing subversion# yum remove subversion*
# yum clean all
# yum install subversion
# svn --version
svn, version 1.8.16 (r1740329)
compiled Apr 26 2016, 13:16:01 on x86_64-unknown-linux-gnu
Copyright (C) 2016 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
- using serf 1.3.7
- handles 'http' scheme
- handles 'https' scheme
2.4. Install Subversion with Apache - Mod_Dav_SVN
# yum install subversion mod_dav_svnLoaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirror.globo.com
* epel: mirror.globo.com
* extras: mirror.globo.com
* updates: mirror.globo.com
Setting up Install Process
Package subversion-1.8.16-1.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package mod_dav_svn.x86_64 0:1.8.16-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mod_dav_svn x86_64 1.8.16-1 WandiscoSVN 77 k
Transaction Summary
================================================================================
Install 1 Package(s)
Total download size: 77 k
Installed size: 216 k
Is this ok [y/N]: y
Downloading Packages:
mod_dav_svn-1.8.16-1.x86_64.rpm | 77 kB 00:01
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : mod_dav_svn-1.8.16-1.x86_64 1/1
Stopping httpd: [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
Verifying : mod_dav_svn-1.8.16-1.x86_64 1/1
Installed:
mod_dav_svn.x86_64 0:1.8.16-1
Complete!
2.5. Configure Subversion with Apache - MOD_DAV_SVN
# vim /etc/httpd/conf.d/subversion.conf+------------------------------------------------------------+
| LoadModule dav_svn_module modules/mod_dav_svn.so |
| LoadModule authz_svn_module modules/mod_authz_svn.so |
| |
| Alias /svn /var/svn |
| |
| <Location /svn> |
| DAV svn |
| SVNPath /var/svn/myrepo/ |
| AuthType Basic |
| AuthName "SVN Repo" |
| AuthUserFile /etc/svn-users |
| Require valid-user |
| </Location> |
+------------------------------------------------------------+
2.6. Create First SVN Repository
# cd /var# mkdir /var/svn
# cd /var/svn
# svnadmin create myrepo
#
# echo "don't forget to give permission to apache"
# don't forget to give permission to apache
#
# chown apache:apache -R /var/svn
2.7. Create SVN Users ( /etc/svn-users )
# touch /etc/svn-users# htpasswd -m /etc/svn-users admin
# htpasswd -m /etc/svn-users user1
# htpasswd -m /etc/svn-users user2
2.8. Create SVN Authorizations ( /etc/svn-users )
# vim /etc/svn-authz#
# Define groups
#
[groups]
admins = admin
users = user1, user2
devteams = user1, user2
#
# Default access rule for ALL repositories:
# - Everyone can read, admins can write, hacker is excluded.
#
[/]
* = r
@admins = rw
hacker =
# echo "restart httpd service"
restart httpd service
# service httpd stop; service httpd start
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
2.9. Create your first project on SVN repository
# svn mkdir http://localhost/svn/_templateSvnProject -m "Creating default _templateSvnProject"Committed revision 1.
#
# echo "You don't need to execute following commands! It's only for demo purpose"
You don't need to execute following commands! It's only for demo purpose
#
# svn mkdir http://localhost/svn/testing-remove -m "Creating project only for testing remove project"
Committed revision 2.
#
#
# svn delete http://localhost/svn/testing-remove -m "Deleting a created project only for testing"
Committed revision 3.
Committed revision 3.
2.9. Create your project structure using best practices
# cd ~# mkdir my-svn-working-copy
# mkdir my-svn-working-copy/_templateSvnProject
# mkdir my-svn-working-copy/_templateSvnProject/branches
# mkdir my-svn-working-copy/_templateSvnProject/tags
# mkdir my-svn-working-copy/_templateSvnProject/trunk
# echo "Project Template using SVN best practices" > my-svn-working-copy/_templateSvnProject/trunk/README.txt
# ls -R my-svn-working-copy/
my-svn-working-copy/:
_templateSvnProject
my-svn-working-copy/_templateSvnProject:
branches tags trunk
my-svn-working-copy/_templateSvnProject/branches:
my-svn-working-copy/_templateSvnProject/tags:
my-svn-working-copy/_templateSvnProject/trunk:
README.txt
2.10. Import your project structure and contents to repository
# echo "Go to working directory"Go to working directory
# cd ~/my-svn-working-copy
# echo "Go to project directory"
Go to project directory
# cd _templateSvnProject
# pwd
/root/my-svn-working-copy/_templateSvnProject
# ls
branches tags trunk
#
# svn import -m "First Check-in" --username admin --password admin http://localhost/svn/_templateSvnProject
Adding branches
Adding tags
Adding trunk
Adding trunk/README.txt
Committed revision 4.
2.11. Access repository in your browser
- Access http://127.0.0.1/svn/myrepo/
+--------------------------------------------+
| URL: http://127.0.0.1/svn/myrepo/ |GO| |
+--------------------------------------------+
| |
| +----------------------------+ |
| | Autenticacao obrigatória | |
| | +------------+ | |
| | Nome: | admin | | |
| | +------------+ | |
| | Senha | admin | | |
| | +------------+ | |
| +----------------------------+ |
| |
+--------------------------------------------+
- Subversion shows repository
| svn - Revision 4: / |
| |
| _templateSvnProject/ |
| |
| |
| Powered by Apache Subversion version 1.8.16 (r1740329). |
+--------------------------------------------------------------+
- Click on link "_templateSvnProject"
| svn - Revision 4: /_templateSvnProject |
| |
| .. |
| branches/ |
| tags/ |
| trunk/ |
| |
| |
| Powered by Apache Subversion version 1.8.16 (r1740329). |
+--------------------------------------------------------------+
- And after on link "trunk"
| svn - Revision 4: /_templateSvnProject/trunk |
| |
| .. |
| README.txt |
| |
| |
| Powered by Apache Subversion version 1.8.16 (r1740329). |
+--------------------------------------------------------------+
2.12. Check out your project from repository
Now you must have faith. You will remove all your local files and check project out from repository in your SVN local copy
# echo "Go to working directory"
Go to working directory
# cd ~/my-svn-working-copy
# lsdrwxr-xr-x 5 root root 4096 Sep 12 15:13 _templateSvnProject
# rm -rf ./_templateSvnProject
# ls -la
drwxr-xr-x 2 root root 4096 Sep 12 15:26 .
dr-xr-x---. 7 root root 4096 Sep 12 15:13 ..
# echo "Oh my God! Be calm. You believe in repository, don't you?"
echo "Oh my God! Be calm. You believe in repository, don't you?"
# svn checkout --username admin --password admin http://localhost/svn/_templateSvnProject
A _templateSvnProject/trunk
A _templateSvnProject/branches
A _templateSvnProject/tags
A _templateSvnProject/trunk/README.txt
Checked out revision 4.
# cd ~/my-svn-working-copy
# ls -lR
.:
total 4
drwxr-xr-x 6 root root 4096 Sep 12 15:31 _templateSvnProject
./_templateSvnProject:
total 12
drwxr-xr-x 2 root root 4096 Sep 12 15:31 branches
drwxr-xr-x 2 root root 4096 Sep 12 15:31 tags
drwxr-xr-x 2 root root 4096 Sep 12 15:31 trunk
./_templateSvnProject/branches:
total 0
./_templateSvnProject/tags:
total 0
./_templateSvnProject/trunk:
total 4
-rw-r--r-- 1 root root 42 Sep 12 15:31 README.txt
# ls -lR
.:
total 4
drwxr-xr-x 6 root root 4096 Sep 12 15:31 _templateSvnProject
./_templateSvnProject:
total 12
drwxr-xr-x 2 root root 4096 Sep 12 15:31 branches
drwxr-xr-x 2 root root 4096 Sep 12 15:31 tags
drwxr-xr-x 2 root root 4096 Sep 12 15:31 trunk
./_templateSvnProject/branches:
total 0
./_templateSvnProject/tags:
total 0
./_templateSvnProject/trunk:
total 4
-rw-r--r-- 1 root root 42 Sep 12 15:31 README.txt
2.13. Import your project using TortoiseSVN
- #1 - Create your project best practice structure
- #2 - Create a _READ-ME.txt file under 'trunk'
- #3 - Positioned into your project structure, Right Click on Windows Explorer and choose menu option TortoiseSVN Import
- #4 - Define repository URL
- #5 - Authenticate with 'admin'
- #6 - Check import finished message
- #7 - Check browsing HTTP
3. References
- http://tecadmin.net/setup-subversion-server-on-centos/
- http://tecadmin.net/install-subversion-1-8-on-centos-rhel/
- https://www.if-not-true-then-false.com/2010/install-svn-subversion-server-on-fedora-centos-red-hat-rhel/
- http://www.unixmen.com/howto-install-svn-server-in-centos-6-x/
- http://web.archive.org/web/20110316170621/http://www.duchnik.com/tutorials/vc/svn-command-reference
- http://serverfault.com/questions/159247/how-does-authzsvnaccessfile-work
- http://stackoverflow.com/questions/2152454/how-to-start-an-svn-project-from-the-command-line
- https://ist.berkeley.edu/as-ag/tools/usage/svn-create-new-project.html#Creating+a+new+project+in+a+repository
- http://stackoverflow.com/questions/9317600/deleting-a-folder-from-svn-repository
- http://www.yolinux.com/TUTORIALS/Subversion.html
- http://stackoverflow.com/questions/34687/subversion-ignoring-password-and-username-options
- http://stackoverflow.com/questions/405690/in-subversion-can-i-be-a-user-other-than-my-login-name
- http://svnbook.red-bean.com/en/1.7/svn.ref.svn.html
Nenhum comentário:
Postar um comentário