linux环境下svn的搭建管理

来源:互联网 发布:网络语吊打是什么意思? 编辑:程序博客网 时间:2024/04/30 08:37

centos搭建svn

安装步骤如下:
[root@zw_test_26_74 ~]# yum install subversion


2、输入rpm -ql subversion查看安装位置,如下图

[root@zw_test_26_74 ~]# 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


[root@zw_test_26_74 ~]# svn --version
svn, version 1.6.11 (r934486)
   compiled Aug 17 2015, 08:37:43

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see
http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* 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

[root@zw_test_26_74 ~]# svn --help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.6.11.
Type 'svn help <subcommand>' for help on a specific subcommand.
Type 'svn --version' to see the program version and RA modules
  or 'svn --version --quiet' to see just the version number.

Most subcommands take file and/or directory arguments, recursing
on the directories.  If no arguments are supplied to such a
command, it recurses on the current directory (inclusive) by default.

Available subcommands:
   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 is a tool for version control.
For additional information, see
http://subversion.tigris.org/

 

3、创建svn版本库目录
[root@zw_test_26_74 ~]# mkdir -p  /svn/data


4、创建版本库
[root@zw_test_26_74 data]# svnadmin create /svn/data

会生成如下文件
[root@zw_test_26_74 data]# ll
total 24
drwxr-xr-x 2 root root 4096 Apr 25 10:37 conf
drwxr-sr-x 6 root root 4096 Apr 25 10:37 db
-r--r--r-- 1 root root    2 Apr 25 10:37 format
drwxr-xr-x 2 root root 4096 Apr 25 10:37 hooks
drwxr-xr-x 2 root root 4096 Apr 25 10:37 locks
-rw-r--r-- 1 root root  229 Apr 25 10:37 README.txt

 

5、进入conf目录(该svn版本库配置文件)

authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件


6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan

 

7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。

 

8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /svn/data # 认证空间名,版本库所在目录

 

9、启动svn版本库
svnserve -d -r /svn/data


10、在windows上测试
新建一个测试文件夹,在该文件夹下右键选择 SVN checkout如下图(要事先安装TortoiseSVN):

 


管理:


假设我把上述三个文件夹放到当前svn的文件夹下想让svn管理,然后我要做的是添加到svn版本库里


1、将文件checkout到本地目录
svn co
[root@axj-rac1 svn]# svn co svn://192.168.26.74

2、往版本库中添加新的文件

svn add filename
例如:[root@axj-rac1 192.168.26.74]# svn add bbb
A         bbb

svn add  *.php(添加当前目录下所有的php文件)

3、将改动的文件提交到版本库

例如:svn commit -m "addtestfileformytest" bbb       -m  后面是注释内容
简写:
[root@axj-rac1 192.168.26.74]# svn ci -m "zw" ccc
Adding         ccc
Transmitting file data .
Committed revision 3.


4、加锁/解锁

[root@axj-rac1 192.168.26.74]# svn lock -m "lockbbbfile" bbb
'bbb' locked by user 'zhengwei'.

[root@axj-rac1 192.168.26.74]# svn unlock  bbb
'bbb' unlocked.

5、更新到某个版本
svn update -rmpath

例如:
svn update 如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
[root@axj-rac1 192.168.26.74]# svn update
At revision 3.

svn update -r 2 bbb (将版本库中的文件bbb还原到版本2)
[root@axj-rac1 192.168.26.74]# svn update -r 2 bbb
At revision 2.

svn update bbb (更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svnresolved,最后再提交commit)
[root@axj-rac1 192.168.26.74]# svn update bbb
At revision 3.


简写:svn up bbb
[root@axj-rac1 192.168.26.74]# svn up bbb
At revision 3.


6、查看文件或者目录状态
1.svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】

2)svn status-vpath(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svnst

7、删除文件
svn delete path -m "deletetestfle"

例如:[root@axj-rac1 192.168.26.74]# svn delete svn://192.168.26.74/svn/data/bbb -m "deletetestfile"
svn: URL 'svn://192.168.26.74/svn/data/bbb' does not exist
[root@axj-rac1 192.168.26.74]# svn delete svn://192.168.26.74/bbb -m "deletetestfile"

Committed revision 4.


或者直接svn delete ccc 然后再 svn ci -m 'deletetestfile‘ 推荐使用这种
简写:svn(del,remove,rm)
[root@axj-rac1 192.168.26.74]# svn ci -m 'deletetestfile' ccc
Deleting       ccc

Committed revision 5.

 

8、查看日志
例如:svn log bbb 显示这个文件的所有修改记录,及其版本号的变化

9、查看文件详细信息
svn info path
例如:

[root@axj-rac1 192.168.26.74]# svn info 1.xlsx
Path: 1.xlsx
Name: 1.xlsx
URL: svn://192.168.26.74/1.xlsx
Repository Root: svn://192.168.26.74
Repository UUID: 4f04f3c2-6495-4efe-9cd4-b331f090cf40
Revision: 4
Node Kind: file
Schedule: normal
Last Changed Author: zhengwei
Last Changed Rev: 1
Last Changed Date: 2016-04-25 14:05:33 +0800 (Mon, 25 Apr 2016)
Text Last Updated: 2016-04-25 14:33:45 +0800 (Mon, 25 Apr 2016)
Checksum: e8cd027de7b7f4c3d13e434dc793785e


10、比较差异
svn diff path(将修改的文件与基础版本比较)
例如:svn diff test.php
svn diff -rm:npath(对版本m和版本n比较差异)
例如:svn diff -r2:3  bbb

简写:svn di
 
11、将两个版本之间的差异合并到当前文件
svn  merge -rm:npath
例如:svnmerge -r200:205 bbb(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

12、SVN帮助
svn help
svn help ci

0 0
原创粉丝点击