Subversion基本操作

1案例1:Subversion基本操作

1.1问题

本案例要求先快速搭建好一台subversion服务器,并测试该版本控制软件:

  • 创建版本库
  • 导入初始化数据
  • 检出数据至用户本地副本
  • 对本地副本进行增删改查等操作

1.2方案

使用yum安装subversion软件,使用SVN客户端工具连接SVNserver服务器并测试版本控制软件。

1.3步骤

实现此案例需要按照如下步骤进行。

步骤一:安装subversion服务器

1)yum安装subversion软件

[root@web1 ~]# yum -y install subversion
[root@web1 ~]# rpm -q subversion

2)创建版本库

[root@web1 ~]# mkdir /var/svn/ 
[root@web1 ~]# svnadmin create /var/svn/project
[root@web1 ~]# ls /var/svn/project/
conf/  db/  format  hooks/  locks/  README.txt

 3)本地导入初始化数据

[root@web1 ~]# cd /usr/lib/systemd/system/ 
[root@web1 ~]# svn import . file:///var/svn/project/ -m "Init Data"

4)修改配置文件,创建账户于密码

所有配置文件,要求顶头写,开头不要有空格。

[root@web1 ~]# vim /var/svn/project/conf/svnserve.conf
[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = none
//19行,匿名无任何权限
auth-access = write
//20行,有效账户可写
password-db = passwd
//27行,密码文件
authz-db = authz
//34行,ACL访问控制列表文件
[root@web1 ~]# vim /var/svn/project/conf/passwd 
… …
[users]
harry = 123456
//用户名和密码
tom = 123456
//用户名和密码
[root@web1 ~]# cat /var/svn/project/conf/authz 
[/]                                //定义ACL访问控制
harry = rw                        //用户对项目根路径可读可写
tom = rw

5)启动服务

[root@web1 ~]# svnserve -d  -r /var/svn/project
[root@web1 ~]# netstat -nutlp |grep svnserve
tcp        0      0 0.0.0.0:3690    0.0.0.0:*    LISTEN      4043/svnserve  

备注:启动服务也可以使用svnserve -d启动,但客户端访问时需要制定绝对路径(svn://服务器IP/var/svn/project)。 

步骤二:客户端测试(192.168.2.200)

1)将服务器上的代码下载到本地

[root@web2 ~]# cd /tmp
[root@web2 tmp]# svn --username harry --password 123456 \
co svn://192.168.2.100/ code        
//建立本地副本,从服务器192.168.2.100上co下载代码到本地code目录
//用户名harry,密码123456
Store password unencrypted (yes/no)? yes            //提示是否保存密码
[root@web2 ~]# cd /tmp/code
[root@web2 code]# ls
[root@web2 code]# vim user.slice                 //挑选任意文件修改其内容
[root@web2 code]# svn ci -m "modify user"        //将本地修改的数据同步到服务器
[root@web2 code]# svn update                    //将服务器上新的数据同步到本地
[root@web2 code]# svn info     svn://192.168.2.100    //查看版本仓库基本信息
[root@web2 code]# svn log     svn://192.168.2.100    //查看版本仓库的日志
[root@web2 code]# echo "test" > test.sh        //本地新建一个文件
[root@web2 code]# svn ci -m "new file"            //提交失败,该文件不被svn管理
[root@web2 code]# svn add test.sh                //将文件或目录加入版本控制
[root@web2 code]# svn ci -m "new file"            //再次提交,成功
[root@web2 code]# svn mkdir subdir                //创建子目录
[root@web2 code]# svn rm timers.target            //使用svn删除文件
[root@web2 code]# svn ci -m "xxx"                //提交一次代码
[root@web2 code]# vim umount.target            //任意修改本地的一个文件
[root@web2 code]# svn diff                     //查看所有文件的差异
[root@web2 code]# svn diff umount.target        //仅查看某一个文件的差异
[root@web2 code]# svn cat svn://192.168.2.100/reboot.target    //查看服务器文件的内容
[root@web2 code]# sed -i 'd' tmp.mount            
//删除文件所有内容,但未提交
[root@web2 code]# svn revert tmp.mount            
//还原tmp.mount文件
[root@web2 code]# rm -rf  *.target                
//任意删除若干文件
[root@web2 code]# svn update                    
//还原
[root@web2 code]# sed -i '1a #test###' tuned.service
//修改本地副本中的代码文件
[root@web2 code]# svn ci  -m  "xxx"
//提交代码
[root@web2 code]# svn merge -r7:2    tuned.service    
//将文件从版本7还原到版本2

使用SVN命令测试SVNserver服务时可以使用的命令列表如下:

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值