Linux中SVN服务器安装与使用以及windows客户端的使用(CentOS-6.5)

来源:互联网 发布:hadoop超市数据分析 编辑:程序博客网 时间:2024/05/22 04:28

1 SVN简介

    svn是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS转移到Subversion。
svn服务器有2种运行方式:独立服务器和借助apache运行。两种方式各有利弊,用户可以自行选择。
svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

2 SVN下载

    Svn客户端与服务器端的下载地址: http://tortoisesvn.net/

3 SVN服务器的安装

3.1 Linux环境安装与配置

1)安装
    # yum install -y subversion

2) 验证安装版本
    # svnserve --version

3) 创建SVN 版本库, project1为版本库名称
    # mkdir /data0/svn
    # svnadmin create /data0/svn/project1

4)添加用户,格式为:用户名 = 密码
    # vi /data0/svn/project1/conf/passwd  
    [users]
    CleverCode = 123456
    test1 = 123456
    test2 = 123456
    
5)添加访问权限,CleverCode用户添加到admin组,能对/data0/svn/project1整个目录有读写权限;test1,test2用户添加到test组,只能对/data0/svn/project1/test目录有读写权限
    # vi /data0/svn/project1/conf/authz
    [groups]
    admin = CleverCode
    test = test1,test2
    
    [project1:/]
    @admin = rw
    
    [project1:/test]
    @test = rw
7) 配置svnserve.conf,这个文件开头每行开头不能有空格。
    配置说明:
    anon-access: 控制非鉴权用户访问版本库的权限。
    auth-access:  控制鉴权用户访问版本库的权限。
    password-db: 指定用户名口令文件名。
    authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。
    realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件


    # vi /data0/svn/project1/conf/svnserve.conf
    [general]
    #匿名访问的权限,可以是read,write,none,默认为read
    anon-access = none
    #认证用户的权限,可以是read,write,none,默认为write  
    auth-access = write
    password-db = /data0/svn/project1/conf/passwd
    authz-db = /data0/svn/project1/conf/authz
    
8)配置防火墙,svn 是3690端口
    # vi /etc/sysconfig/iptables
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
    # service iptables restart

9) 启动SVN, -d表示后台运行,-r 指定根目录是 /data0/svn
    # svnserve -d -r /data0/svn

10)查看SVN
# ps -ef | grep svn

3.2 Windows环境安装与配置

下载windows服务器端后,按照提示,下一步在下一步即可,windows的相对比较简单,所以不再详细说明。

4 SVN客户端的使用

4.1 Linux环境使用

1、将文件checkout到本地目录
    svn checkout path(path是服务器上的目录)
    例如:svn checkout svn://192.168.1.1/pro/domain
    简写:svn co

2、往版本库中添加新的文件
    svn add file
    例如:svn add test.php(添加test.php)
    svn add *.php(添加当前目录下所有的php文件) 

3、将改动的文件提交到版本库
    svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
    例如:svn commit -m “add test file for my test“ test.php
    简写:svn ci

4、加锁/解锁
    svn lock -m “LockMessage“ [--force] PATH
    例如:svn lock -m “lock test file“ test.php
    svn unlock PATH 

5、更新到某个版本
    svn update -r m path
    例如:
    svn update如果后面没有目录,默认将当前目录以及子目录下的所有文件都更新到最新版本。
    svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
    svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)
    简写:svn up 

6、查看文件或者目录状态
    1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
    【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】M状态一般比较多
    2)svn status -v path(显示文件和子目录状态)
    第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
    注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
    简写:svn st 

7、删除文件
    svn delete path -m “delete test fle“
    例如:svn delete svn://192.168.1.1/pro/domain/test.php -m “delete test file”
    或者直接svn delete test.php 然后再svn ci -m ‘delete test file‘,推荐使用这种
    简写:svn (del, remove, rm)

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

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

10、比较差异
    svn diff path(将修改的文件与基础版本比较)
    例如:svn diff test.php
    svn diff -r m:n path(对版本m和版本n比较差异)
    例如:svn diff -r 200:201 test.php
    简写:svn di 

11、将两个版本之间的差异合并到当前文件
    svn merge -r m:n path
    例如:svn merge -r 200:205 test.php(将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下)

12、SVN 帮助
    svn help
    svn help ci
    

4.2 Windows环境使用

1) 通过官网下载svn的windows客户端,按照后。
2) 建立project1文件件,选中文件件点击右键,选择 【SVN checkout】。

3)然后如下图使用。


 

4)输入用户与密码。CleverCode:123456。


 

5 创建本地仓库

创建本地仓库是为了解决没有svn服务器。直接在windows本地使用,适用于单个人在本机开发提交代码。不适用团队开发。

1)创建本地仓库:选中某个文件夹(例如code),=》【TortoiseSVN】=》【create repository here】。

2)查看本地仓库地址:选中code目录,=》【TortoiseSVN】=》【repo-browse】。本机地址为:file:///E:/a/code。


3)check out仓库数据:选中另外一个目录(mycode),=》【SVN checkout】,在地址中输入file:///E:/a/code即可。


4)如果svn服务器跟换了IP或者域名,或者是本地仓库更换到其他磁盘,可以如下更换仓库地址:选中另外一个目录(mycode),=》【TortoiseSVN】=》【Relocate】,在地址中输入新的SVN仓库地址即可。



版权声明:

1)原创作品,出自"CleverCode的博客",转载时请务必注明以下原创地址,否则追究版权法律责任。

2)原创地址:http://blog.csdn.net/clevercode/article/details/45439667(转载务必注明该地址)。

3)博客专栏地址(Linux常用软件安装与配置):http://blog.csdn.net/column/details/linuxsoftwareinstall.html(持续增加,关注请收藏)。

4)欢迎大家关注我博客更多的精彩内容:http://blog.csdn.net/CleverCode。



1 0
原创粉丝点击