svn windows客户端下载:http://pan.baidu.com/s/1eRjnBN0
svn官网:http://subversion.apache.org/
1、安装subversion:
# yum install -y subversion

2、查看subversion安装位置:
[root@sxauzx /]# rpm -ql subversion
/etc/bash_completion.d
/etc/bash_completion.d/subversion
/etc/rc.d/init.d/svnserve
/etc/subversion
/usr/bin/svn
/usr/bin/svnadmin
/usr/bin/svndumpfilter
/usr/bin/svnlook
/usr/bin/svnserve
/usr/bin/svnsync
/usr/bin/svnversion

3、查看subversion有哪些可执行命令:
[root@sxauzx /]# svn --help
用法: svn [options] [args]
Subversion 命令行客户端,版本 1.6.11。
使用“svn help ” 显示子命令的帮助信息。
使用“svn --version”查看程序的版本号和版本库访问模块,或者
使用“svn --version --quiet”只查看程序的版本号。


大多数的子命令可接受文件或目录参数,对目录进行递归处理。
如果没有指定参数,默认对当前目录(包含当前目录)递归处理。


可用的子命令: 
   add
   blame (praise, annotate, ann)
   cat
   changelist (cl)
   checkout (co)
   cleanup
   commit (ci)
   copy (cp)
   delete (del, remove, rm)
   diff (di)
   export
   help (?, h)
   import
   info
   list (ls)
   lock
   log
   merge
   mergeinfo
   mkdir
   move (mv, rename, ren)
   propdel (pdel, pd)
   propedit (pedit, pe)
   propget (pget, pg)
   proplist (plist, pl)
   propset (pset, ps)
   resolve
   resolved
   revert
   status (stat, st)
   switch (sw)
   unlock
   update (up)

Subversion 是版本控制工具。

4、创建svn版本库目录:
[root@sxauzx /]# mkdir -p /svn/{develop,test}

5、创建版本库:
[root@sxauzx /]# svnadmin create /svn/develop
[root@sxauzx /]# cd /svn/develop
[root@sxauzx develop]# ll
总用量 24
drwxr-xr-x. 2 root root 4096 2月   3 17:09 conf
drwxr-sr-x. 6 root root 4096 2月   3 17:09 db
-r--r--r--. 1 root root    2 2月   3 17:09 format
drwxr-xr-x. 2 root root 4096 2月   3 17:09 hooks
drwxr-xr-x. 2 root root 4096 2月   3 17:09 locks
-rw-r--r--. 1 root root  229 2月   3 17:09 README.txt

6、配置svn的配置文件:
进入conf目录,共需要修改三个配置文件
authz:权限控制文件
passwd:账号密码文件
svnserve.conf:SVN服务配置文件

配置svnserve.conf文件:
[root@sxauzx ~]# vim /svn/develop/conf/svnserve.conf 
1 ### This file controls the configuration of the svnserve daemon, if you
  2 ### use it to allow access to this repository.  (If you only allow
  3 ### access through http: and/or file: URLs, then this file is
  4 ### irrelevant.)
  5 
  6 ### Visit http://subversion.tigris.org/ for more information.
  7 
  8 [general]
  9 ### These options control access to the repository for unauthenticated
 10 ### and authenticated users.  Valid values are "write", "read",
 11 ### and "none".  The sample settings below are the defaults.
 12 anon-access = read  #没有认证用户只有读权限
 13 auth-access = write  #认证用户具有写全写
 14 ### The password-db option controls the location of the password
 15 ### database file.  Unless you specify a path starting with a /,
 16 ### the file's location is relative to the directory containing
 17 ### this configuration file.
 18 ### If SASL is enabled (see below), this file will NOT be used.
 19 ### Uncomment the line below to use the default password file.
 20 password-db = passwd  #指定账号密码文件
 21 ### The authz-db option controls the location of the authorization
 22 ### rules for path-based access control.  Unless you specify a path
 23 ### starting with a /, the file's location is relative to the the
 24 ### directory containing this file.  If you don't specify an
 25 ### authz-db, no path-based access control is done.
 26 ### Uncomment the line below to use the default authorization file.
 27 authz-db = authz  #指定认证文件
 28 ### This option specifies the authentication realm of the repository.
 29 ### If two repositories have the same authentication realm, they should
 30 ### have the same password database, and vice versa.  The default realm
 31 ### is repository's uuid.
 32 # realm = My First Repository
 33 
 34 [sasl]
 35 ### This option specifies whether you want to use the Cyrus SASL
 36 ### library for authentication. Default is false.
......

配置passwd文件:
[root@sxauzx ~]# vim /svn/develop/conf/passwd
### 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.

[users]
# harry = harryssecret
# sally = sallyssecret
sxauzx = 123456  #用户名密码

配置authz文件:
[root@sxauzx ~]# vim /svn/develop/conf/authz
### 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
### ('').

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

# [/foo/bar]
# harry = rw
# &joe = r
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
sxauzx = rw  #认证用户具有读写权限

7、启动svn版本库服务:
[root@sxauzx ~]# svnserve -d -r /svn/develop/

8、查看配置结果:
[root@sxauzx ~]# svn list svn://127.0.0.1/svn/
develop/

9、在win上测试:
安装TortoiseSVN客户端
在桌面新建一个测试文件夹,在该文件夹下右键选择SVN checkout:
填写svn的地址:
centos6.7下搭建svn以及svn常用操作-LMLPHP
输入刚才设置的账号密码,我刚设置的用户名是:sxauzx,密码:123456
centos6.7下搭建svn以及svn常用操作-LMLPHP
接下来svn服务器上的文件就会自动下载到该文件夹内:
centos6.7下搭建svn以及svn常用操作-LMLPHP
10、linux下svn常用指令:
将文件下载到本地:svn checkout path(path是服务器上的目录)
eg:svn checkout svn://192.168.65.131/svn/develop
往版本库里添加新的文件:svn add file
eg:svn add test
将改动的文件提交到版本库:svn commit -m "LogMessage"  [-N] [--no-unlock] path (如果选择了保持锁,就使用--no-unlock开关)
eg:svn commit -m "add test file for my test" test
加锁/解锁:svn lock -m "lockMessage" [--force] path
eg:svn lock -m "lock test file" test
    svn unlock path
更新到某个版本:svn update -r m path
eg:svn update 如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版
    svn update -r 200 test 将版本库中的文件test还原到版本200
    svn update test 更新,用于版本库同步,如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit
查看文件或者目录状态:svn status path  目录下的文件和子目录的状态,正常状态不显示(?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定)
    svn status -v path 显示文件和子目录状态(第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人)
删除文件:svn delete path -m "delete test file"
eg: svn delete svn://192.168.65.131/svn/develop/test -m "delete test file"
查看日志:svn log path
eg:svn log test 显示这个文件的所有修改记录,及其版本号的变化
查看文件详细信息:svn info path
eg: svn info test
比较差异:svn diff path (将修改的文件与基础版本比较)
eg: svn diff test
    svn diff -r m:n path 对比版本m和版本n的差异
将两个版本之间的差异合并到当前文件:svn merge -r m:n path
eg: svn merge -r 200:205 test
SVN帮助:svn help
版本库下的文件和目录列表:svn list path 显示path目录下的所有属于版本库的文件和目录
创建纳入版本控制器下的新目录:svn mkdir:创建纳入版本控制器下的新目录
恢复本地修改:svn revert (恢复原始未改变的工作副本文件)
eg:revert PATH
代码库URL变更:svn switch (更新工作副本至不同的URL)
eg:switch URL PATH   更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的方法。
eg: switch -relocate FROM TO path  
改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用这个命令更新工作副本与仓库的对应关系。
解决冲突:svn resolved: 一处工作副本的目录或文件的“冲突”状态
输出指定文件或URL的内容:
    
svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找。
    
svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

到此差不多了,希望对有需要的人提供帮助......
10-14 08:08