|
Environment Introduction:
Operating System: CentOS release 6.5 (Final) 64-bit
Network environment: Intranet
1 Configure the SVN
1.1 Install the SVN package
Use yum to install the required packages for svn
# Yum -y install subversion
1.2 Configuring the SVN
1.2.1 Create the svn library path
Create the svn library path, which provides later user file writes and reads.
# Mkdir -p / date / svn /
1.2.2 Create an SVN repository
Use a specific command to create the repository, and after the creation of the directory, the SVN configuration file will appear.
# Svnadmin create / date / svn /
1.2.3 Define the configuration file
#vim /opt/svndata/repos1/conf/svnserve.conf
[General]
Anon-access = none
Auth-access = write
Password-db = passwd # Define the configuration file for the user password
Authz-db = authz # Define the user rights profile
Realm = svn
1.2.4 User Rights Configuration
1, the creation of svn visit users
# Vim / data / svn / passwd
[Users]
Test = test Creates a user named tset with the password test
2, the allocation of user access
#vi / opt / svndata / repos1 / conf / authz
[Groups]
Admin = test
# Harry_and_sally = harry, sally
[/]
@admin = rw
[Repos1: / abc / aaa]
@admin = r
Repository directory format:
[< Repository>: / project / directory] # is the project name as the first unit. Imagine the project as a unit
@ < User group name> = < permission>
< User name> = < permission>
Among them, the box can be a number of parts of the wording:
/, Indicates the root directory and the following. The root directory is specified at svnserve startup, and we specify / opt / svndata. In this case, / means to set permissions on all repositories.
Repos1: /, said the authority to set up a repository
Repos2: / abc,, said that the repository 2 abc project set permissions
Repos2: / abc / aaa,, said the abc in the repository 2 projects aaa directory set permissions
The authority principal can be a user group, a user, or a user group, and the user group is preceded by @ and * for all users. Permissions can be w, r, wr and empty, empty means that there is no authority.
1.2.5 Starting the SVN
# Svnserve -d -r / date / svn /
-d means running in daemon mode (running in background)
-r / date / svn Specifies that the root directory is / date / svn
1.3 Configuring the Hook
1.3.1 Configuring the Version Detection Tool
Their use of python to write a document automatically detects the version of the tools inside the library. The code is as follows:
# Vim /date/svn/hooks/gouzi.py
#! / Usr / bin / env python
If __name __ == '__ main__':
Importsys, string
Try:
Logfile = open ( '/ tmp / python.out', 'a +')
Logfile.write ( "this is python hook")
Logfile.close ()
Except:
Exit (1)
Sys.exit (0)
This tool must be placed in the hooks directory in the library directory.
1.3.2 Configuring the UPDATE Script
1, the first manual checkout on the client
# Svn checkout svn: //192.168.21.28/repos
2, edit the automatic synchronization script
# Vim svn_update.sh
The code is as follows
#! / Bin / bash
/ Usr / bin / svn update / linshi / repos --username test --password test
If [$? == 0]
Then
Echo "ok" >> /tmp/z.out
Fi
Where: / linshi / for the storage directory (depending on the environment may be)
--username test User name is test
--password test The password is test
3, modify the permissions
# Chmod + x /root/svn_update.sh
4, configure the scheduled tasks
Because the script can not achieve automatic execution, so configure the scheduled task settings once per minute.
# Crontab -e
* * * * /root/svn_update.sh> / dev / null 2> & 1 |
|
|
|