centos7.2 安装svn服务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7.2 安装svn服务相关的知识,希望对你有一定的参考价值。
简介
Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。
SVN 的一些概念:
repository(源代码库):源代码统一存放的地方
Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
Commit(提交):当你已经修改了代码,你就需要Commit到repository
Update (更新):当你已经Checkout了一份源代码,Update一下你就可以和Repository 上的源代码同步,你手上的代码就会有最新的变更
日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) —>作出自己的修改并调试成功 —> Commit(大家就可以看到你的修改了) 。
如果两个程序员同时修改了同一个文件呢, SVN可以合并这两个程序员的改动,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。
如果是同一行,SVN会提示文件Confict, 冲突,需要手动确认。
subversion目录说明:
db目录:就是所有版本控制的数据存放文件。
hooks目录:放置hook脚本文件的目录。
locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。
进入conf目录(该svn版本库配置文件)cd conf/
authz 文件是权限控制文件
passwd 是帐号密码文件
svnserve.conf SVN服务配置文件
[[email protected] ~]# Loaded plugins: fastestmirror base | 3.6 kB 00:00 extras | 3.4 kB 00:00 updates | 3.4 kB 00:00 Loading mirror speeds from cached hostfile * base: mirrors.163.com * extras: mirrors.163.com * updates: mirrors.163.com Resolving Dependencies --> Running transaction check ---> Package subversion.x86_64 0:1.7.14-10.el7 will be installed --> Processing Dependency: subversion-libs(x86-64) = 1.7.14-10.el7 for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_wc-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_subr-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_repos-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_ra_svn-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_ra_neon-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_ra_local-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_ra-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_fs_util-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_fs_fs-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_fs_base-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_fs-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_diff-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_delta-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libsvn_client-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libneon.so.27()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: subversion-1.7.14-10.el7.x86_64 --> Running transaction check ---> Package apr.x86_64 0:1.4.8-3.el7 will be installed ---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed ---> Package neon.x86_64 0:0.30.0-3.el7 will be installed --> Processing Dependency: libpakchois.so.0()(64bit) for package: neon-0.30.0-3.el7.x86_64 ---> Package subversion-libs.x86_64 0:1.7.14-10.el7 will be installed --> Running transaction check ---> Package pakchois.x86_64 0:0.4-10.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: subversion x86_64 1.7.14-10.el7 base 1.0 M Installing for dependencies: apr x86_64 1.4.8-3.el7 base 103 k apr-util x86_64 1.5.2-6.el7 base 92 k neon x86_64 0.30.0-3.el7 base 165 k pakchois x86_64 0.4-10.el7 base 14 k subversion-libs x86_64 1.7.14-10.el7 base 921 k Transaction Summary ================================================================================ Install 1 Package (+5 Dependent packages) Total download size: 2.3 M Installed size: 8.1 M Downloading packages: (1/6): apr-util-1.5.2-6.el7.x86_64.rpm | 92 kB 00:00 (2/6): neon-0.30.0-3.el7.x86_64.rpm | 165 kB 00:00 (3/6): pakchois-0.4-10.el7.x86_64.rpm | 14 kB 00:00 (4/6): subversion-1.7.14-10.el7.x86_64.rpm | 1.0 MB 00:00 (5/6): subversion-libs-1.7.14-10.el7.x86_64.rpm | 921 kB 00:00 (6/6): apr-1.4.8-3.el7.x86_64.rpm | 103 kB 00:01 -------------------------------------------------------------------------------- Total 1.8 MB/s | 2.3 MB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : apr-1.4.8-3.el7.x86_64 1/6 Installing : apr-util-1.5.2-6.el7.x86_64 2/6 Installing : pakchois-0.4-10.el7.x86_64 3/6 Installing : neon-0.30.0-3.el7.x86_64 4/6 Installing : subversion-libs-1.7.14-10.el7.x86_64 5/6 Installing : subversion-1.7.14-10.el7.x86_64 6/6 Verifying : neon-0.30.0-3.el7.x86_64 1/6 Verifying : apr-1.4.8-3.el7.x86_64 2/6 Verifying : subversion-1.7.14-10.el7.x86_64 3/6 Verifying : apr-util-1.5.2-6.el7.x86_64 4/6 Verifying : pakchois-0.4-10.el7.x86_64 5/6 Verifying : subversion-libs-1.7.14-10.el7.x86_64 6/6 Installed: subversion.x86_64 0:1.7.14-10.el7 Dependency Installed: apr.x86_64 0:1.4.8-3.el7 apr-util.x86_64 0:1.5.2-6.el7 neon.x86_64 0:0.30.0-3.el7 pakchois.x86_64 0:0.4-10.el7 subversion-libs.x86_64 0:1.7.14-10.el7 Complete! [[email protected] ~]# usage: svnserve [-d | -i | -t | -X] [options] Valid options: -d [--daemon] : daemon mode -i [--inetd] : inetd mode -t [--tunnel] : tunnel mode -X [--listen-once] : listen-once mode (useful for debugging) -r [--root] ARG : root of directory to serve -R [--read-only] : force read only, overriding repository config file --config-file ARG : read configuration from file ARG --listen-port ARG : listen port [mode: daemon, listen-once] --listen-host ARG : listen hostname or IP address [mode: daemon, listen-once] -6 [--prefer-ipv6] : prefer IPv6 when resolving the listen hostname [IPv4 is preferred by default. Using IPv4 and IPv6 at the same time is not supported in daemon mode. Use inetd mode or tunnel mode if you need this.] -c [--compression] ARG : compression level to use for network transmissions [0 .. no compression, 5 .. default, 9 .. maximum compression] -M [--memory-cache-size] ARG : size of the extra in-memory cache in MB used to minimize redundant operations. Default is 128 for threaded and 16 for non- threaded mode. [used for FSFS repositories only] --cache-txdeltas ARG : enable or disable caching of deltas between older revisions. Default is no. [used for FSFS repositories only] --cache-fulltexts ARG : enable or disable caching of file contents Default is yes. [used for FSFS repositories only] -T [--threads] : use threads instead of fork [mode: daemon] --foreground : run in foreground (useful for debugging) [mode: daemon] --log-file ARG : svnserve log file --pid-file ARG : write server process ID to file ARG [mode: daemon, listen-once] --tunnel-user ARG : tunnel username (default is current uid‘s name) [mode: tunnel] -h [--help] : display this help --version : show program version information -q [--quiet] : no progress (only errors) to stderr [[email protected] ~]# svnserve --version svnserve, version 1.7.14 (r1542130) compiled Nov 20 2015, 19:25:09 Copyright (C) 2013 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 back-end (FS) modules are available: * fs_base : Module for working with a Berkeley DB repository. * fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available. [[email protected] ~]# [[email protected] ~]# #创建版本库 [[email protected] svn]# [[email protected] svn]# [[email protected] svn]# svnrepos [[email protected] svn]# [[email protected] svnrepos]# [[email protected] svnrepos]# This is a Subversion repository; use the ‘svnadmin‘ tool to examine it. Do not add, delete, or modify files here unless you know how to avoid corrupting the repository. Visit http://subversion.apache.org/ for more information. [[email protected] svnrepos]# [[email protected] conf]# [[email protected] conf]# ### This file is an example password file for svnserve. ### Its format is similar to that of svnserve.conf. As shown in the ### example below it contains one section labelled [users]. ### The name and password for each user follow, one account per line. #添加admin用户 [[email protected] conf]# ### This file is an example authorization file for svnserve. ### Its format is identical to that of mod_authz_svn authorization ### files. ### As shown below each section defines authorizations for the path and ### (optional) repository specified by the section name. ### The authorizations follow. An authorization line can refer to: ### - a single user, ### - a group of users defined in a special [groups] section, ### - an alias defined in a special [aliases] section, ### - all authenticated users, using the ‘$authenticated‘ token, ### - only anonymous users, using the ‘$anonymous‘ token, ### - anyone, using the ‘*‘ wildcard. ### ### A match can be inverted by prefixing the rule with ‘~‘. Rules can ### grant read (‘r‘) access, read-write (‘rw‘) access, or no access ### (‘‘). [[email protected] conf]# ### This file controls the configuration of the svnserve daemon, if you ### use it to allow access to this repository. (If you only allow ### access through http: and/or file: URLs, then this file is ### irrelevant.) ### Visit http://subversion.apache.org/ for more information. [general] ### The anon-access and auth-access options control access to the ### repository for unauthenticated (a.k.a. anonymous) users and ### authenticated users, respectively. ### Valid values are "write", "read", and "none". ### Setting the value to "none" prohibits both reading and writing; ### "read" allows read-only access, and "write" allows complete ### read/write access to the repository. ### The sample settings below are the defaults and specify that anonymous ### users have read-only access to the repository, while authenticated ### users have read and write access to the repository. #匿名用户可读 ### The password-db option controls the location of the password ### database file. Unless you specify a path starting with a /, ### the file‘s location is relative to the directory containing ### this configuration file. ### If SASL is enabled (see below), this file will NOT be used. ### Uncomment the line below to use the default password file. #使用哪个文件作为账号文件 ### The authz-db option controls the location of the authorization ### rules for path-based access control. Unless you specify a path ### starting with a /, the file‘s location is relative to the the ### directory containing this file. If you don‘t specify an ### authz-db, no path-based access control is done. ### Uncomment the line below to use the default authorization file. #使用哪个文件作为权限文件 ### This option specifies the authentication realm of the repository. ### If two repositories have the same authentication realm, they should ### have the same password database, and vice versa. The default realm ### is repository‘s uuid. #认证空间名,版本库所在目录 realm = /var/svn/svnrepos ### The force-username-case option causes svnserve to case-normalize ### usernames before comparing them against the authorization rules in the ### authz-db file configured above. Valid values are "upper" (to upper- ### case the usernames), "lower" (to lowercase the usernames), and ### "none" (to compare usernames as-is without case conversion, which ### is the default behavior). # force-username-case = none [sasl] ### This option specifies whether you want to use the Cyrus SASL ### library for authentication. Default is false. ### This section will be ignored if svnserve is not built with Cyrus ### SASL support; to check, run ‘svnserve --version‘ and look for a line ### reading ‘Cyrus SASL authentication is available.‘ # use-sasl = true ### These options specify the desired strength of the security layer ### that you want SASL to provide. 0 means no encryption, 1 means ### integrity-checking only, values larger than 1 are correlated ### to the effective key length for encryption (e.g. 128 means 128-bit ### encryption). The values below are the defaults. # min-encryption = 0 # max-encryption = 256 #启动svn [[email protected] conf]# [[email protected] conf]# root 9114 1 0 16:06 ? 00:00:00 svnserve -d -r /var/svn/svnrepos/ root 9116 8214 0 16:06 pts/0 00:00:00 grep --color=auto svn [[email protected] conf]# Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 9114/svnserve tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1049/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1282/master tcp6 0 0 :::3306 :::* LISTEN 26795/mysqld tcp6 0 0 :::8080 :::* LISTEN 4538/java tcp6 0 0 :::22 :::* LISTEN 1049/sshd tcp6 0 0 ::1:25 :::* LISTEN 1282/master [[email protected] conf]# cd .. [[email protected] svnrepos]# [[email protected] svnrepos]# . ├── conf │ ├── authz │ ├── passwd │ └── svnserve.conf ├── db │ ├── current │ ├── format │ ├── fsfs.conf │ ├── fs-type │ ├── min-unpacked-rev │ ├── revprops │ │ └── 0 │ │ └── 0 │ ├── revs │ │ └── 0 │ │ └── 0 │ ├── transactions │ ├── txn-current │ ├── txn-current-lock │ ├── txn-protorevs │ ├── uuid │ └── write-lock ├── format ├── hooks │ ├── post-commit.tmpl │ ├── post-lock.tmpl │ ├── post-revprop-change.tmpl │ ├── post-unlock.tmpl │ ├── pre-commit.tmpl │ ├── pre-lock.tmpl │ ├── pre-revprop-change.tmpl │ ├── pre-unlock.tmpl │ └── start-commit.tmpl ├── locks │ ├── db.lock │ └── db-logs.lock └── README.txt 10 directories, 27 files #停止SVN命令 killall svnserve
--------------------------------------------------------
客户端连接
windows tortoisesvn 下载
https://tortoisesvn.net/downloads.html
在windows上测试
如果没有TortoiseSVN客户端,可以去这里 下载:tortoisesvn.net/downloads.html, 根据从SVN服务器下载项目自己的实际情况下载对应版本。
在你的本地项目文件夹或随便一个地方,右键空白处弹出菜单,选择 SVN检出。然后,通过从SVN服务端获取的资源库URL+具体的项目文件夹名下载相应项目,并可以知道下载项目的保存位置。
第一次登陆需要输入密码,一切以passwd文件里面的账户密码为主!
对项目的修改与提交
1. 把项目下载到本机后,其实就是一个普通的项目文件而已,你可以在里面添加文件、修改文件、删除文件等等。
2. 提交修改 在项目文件空白处右键,选择 SVN提交 。
然后,输入 本次提交的版本更新信息(所作修改的注释)、勾选要提交的操作内容,点击 确定,即可把本机项目提交到SVN服务器资源库,覆盖掉资源库项目从而实现更新。
如果发生提交冲突,即两人都提交修改,后提交者由于版本落后会提交失败。这时可以先把自己的项目备份,然后从服务端下载最新的项目,再把自己的项目覆盖到本地项目文件夹,最后SVN提交即可成功提交。
我刚刚删掉了一个文件,这里就会显示:
3. 获取更新
如果别人修改了SVN服务端资源库上的项目,你想下载最新的项目,则在 本机项目文件空白处单击鼠标右键,选择 SVN更新 ,即可自动完成下载,并会提示所作的更新有哪些。
注意:在原项目文件夹内选择SVN更新的话,会自动覆盖掉原有内容。建议:先备份,再更新,防止自己本来的项目内容丢失。
4. svn提供历史还原功能
首先打开一个文件夹,右键检出数据
然后删掉数据。这时如果不点提交的话,可以直接点鼠标右键还原即可。
如果点击提交了,那么系统库里的数据也会得到同步,系统也会把它存的数据删掉。
这时点击svn还原是没有用的,需要查看日志,看看是删掉了什么东西。
然后把删掉的文件保存版本到删掉的位置,
打开原文件夹,点击提交,系统库里的数据就和这个文件同步了。
本文出自 “李世龙” 博客,谢绝转载!
以上是关于centos7.2 安装svn服务的主要内容,如果未能解决你的问题,请参考以下文章