(1)版本控制工具之认识SVN

1.引言

      在本篇博客中主要记录一下SVN如何使用。SVN是一个集中式的版本控制工具。在学习SVN的时候一定要注意与Git的区别。SVN在服务器有一个中央仓库。SVN的优点是可以进行很好的权限控制。

2.安装SVN(项目中一定是安装在服务器)

      首先我们在服务器安装我们的SVN软件,需要注意的是,我们一定要在服务器安装SVN软件(在此篇博客中,服务器和客户端都在本地)

SVN的下载地址为:SVN服务器端软件下载

2.1 双击SVN安装软件

  • 我们将SVN软件安装在服务器的路径为:

这里写图片描述

2.2 测试SVN是否安装成功

  • 在控制台面板输入命令svnserve --version,若出现一下界面便安装成功

这里写图片描述

2.3 在服务器创建仓库

  • 假设我们将所有的仓库都储存在D:\svn(目前文件夹是空,文件夹可以存储多个仓库)

这里写图片描述

  • 执行命令创建SVN仓库(仓库名称叫做SVNTest)
//注意一点:我此处命令使用的是相对路径,所以首先要进入svn文件夹
svnadmin create SVNTest

这里写图片描述

此时已经有一个仓库叫做SVNTest

2.4 将SVN命令注册为window系统服务

  • 执行命令(注意:管理员登陆控制台窗口)
sc create SVN-Service binpath= "D:\Program Files (x86)\Subversion\bin\svnserve.exe  --service -r  D:\svn" displayname= "SVN-Service" start= auto depend= Tcpip
binpath:代表SVN安装路径中svnserve.exe的路径
-r:代表SVN存储仓库的地址,这里配置的是多仓库
displayname:代表的服务名称,此处服务名称是(SVN-Service)

这里写图片描述

  • 我们可以在服务窗口看到我们新建的命令

这里写图片描述

  • 默认服务是没有启动的,右击启动

这里写图片描述

  • 假设想要删除服务
sc delete SVN-Service

2.5 SVN仓库目录介绍

      我们看一下我们新建的SVNTest仓库目录

这里写图片描述

3.设置SVN的权限问题

      在上面我们在服务器创建了一个仓库,但是我们大家应该注意一点:并不是谁都可以在我们服务器的仓库下载东西,也并不是谁都可以上传东西到我们的服务器仓库。在这里,我们就设置一下谁可以访问我们的仓库。

  • 我们将匿名用户的权限设置为none(不登陆不可以操作我们的仓库)
  • 授权用户为write权限(登录用户具有操作仓库的权限)
  • 指定用户的认证文件为passwd文件(此文件包含我们的用户名密码信息)
  • 指定用户的授权文件为authz(更加具体的认证授权信息)

这里写图片描述

  • 添加了两个用户user1,user2(password文件)

这里写图片描述

  • 复杂的授权设置(authz文件)

这里写图片描述

设置一个组,组内有user1,user2两个用户
设置SVMTest仓库 对于svn_group组内的人有读写权限
*=代表其他用户没权限
如果这样写:
    [SVNTest:/doc] 关于改仓库的doc目录设置权限
    user1 = r    只有user1有读的权限 
    * = 

4.SVN的简单命令

      在F盘新建两个文件夹,user1,user2分别代表两个用户。

4.1 将项目下载到客户端(checkout )

svn checkout svn://localhost/SVNTest ./ --username=user1

这里写图片描述

  • svn代表svn协议
  • 如果在服务器localhost需要填写服务器的ip地址,SVN默认的端口号是3690,此处不需要写端口号,SVN协议默认是3690端口号
  • –username 代表用户名是user1登录

4.2 将文件上传到服务器仓库

  • 创建一个a.txt(内容为a)

这里写图片描述

  • 将文件上传到版本库(注意版本号,SVN版本号代表SVN仓库的修改的次数)
//将文件送到暂存区
svn add a.txt
//将文件上传到服务器
svn commit -m "add a.txt"

这里写图片描述

  • 假设svn add file出错,可以加上force参数

这里写图片描述

这里写图片描述

这里写图片描述

4.3 误删文件,还原版本(update)

  • 假设我们误删了a.txt,那么我们执行svn update 同步版本库
svn update

这里写图片描述

4.4 版本回退(已经提交到版本库)

  • 修改文件a.txt

这里写图片描述

  • commit提交文件(注意这里没有add,因为file已经添加到版本控制了)

这里写图片描述

  • 此时我们发现版本2出错了,想回到版本1(首先查看版本号)

//查看版本号
svn info
//将版本2回退到版本1,注意2是当前版本,1是回退到1版本
svn merge -r 2:1 a.txt

这里写图片描述

这里写图片描述

  • 重新提交,成为了版本3

这里写图片描述

4.5 版本回退(未提交到版本库)

注意此命令和update的区别(update是删除文件之后用的)

//对单个文件回退
svn revert a.txt
//对文件夹回退版本
svn revert -R trunk

4.6 SVN创建分支

  • trunk:存放开发的主线
  • branches:一般是处理bug
  • tags:存放代码的稳定版本

  • 首先先创建一个项目文件夹OA(文件夹里面有三个文件夹trunkbranchestags

这里写图片描述

  • 将OA文件夹上传到服务器

这里写图片描述

提交之后的目录为:

SVNTest
    trunk
    tags
    branches

4.7 删除服务器的文件

svn delete a.txt
svn commit -m "delete a file"

这里写图片描述

4.8 将开发稳定版本trunk转移到tags里面

  • 首先在我们的trunk下创建一个项目叫做myproject,文件夹下面有一个b.txt文件

这里写图片描述

  • 远程将project项目拷贝到tags下面
svn copy svn://localhost/SVNTest/trunk/myproject svn://localhost/SVNTest/tags/v1.0 -m "v1.0"
  • 将文件下载下来看看对不对(没问题)
svn checkout svn://localhost/SVNTest/tags/v1.0 ./

这里写图片描述

此时我们的项目目录为:
    SVNTest
        trunk
            myproject
                b.txt
        tags
            v1.0
                b.txt
        branches

4.9 SVN合并分支

需求是这样的,如果稳定版本v1.0出现了bug,我们应该先在branches分支拷贝备份,然后修改bug,修改完bug之后,在主分支合并分支。

  • 首先将v1.0拷贝到branches分支
svn copy svn://localhost/SVNTest/tags/v1.0 svn://localhost/SVNTest/branches/v1.0fix -m "fix bug"
此时我们的项目目录为:
    SVNTest
        trunk
            myproject
                b.txt
        tags
            v1.0
                b.txt
        branches
            v1.0fix
                b.txt(内容为aaa)
  • 修改bug之后提交文件

    此时我们的项目目录为:
        SVNTest
            trunk
                myproject
                    b.txt
            tags
                v1.0
                    b.txt
            branches
                v1.0fix
                    b.txt(内容为aaabbb)
    
  • 此时我们去除tags1.0版本合并分支

//去除分支
svn checkout svn://localhost/SVNTest/tags/v1.0 ./
//合并分支(注意这是在主分支上执行的命令(tags))
svn merge svn://localhost/SVNTest/branches/v1.0fix

这里写图片描述

  • 名称修改为v1.1(注意这里用的是import),合并之后不要提交,不然v1.0内容也会发生改变
svn import  svn://localhost/SVNTest/tags/v1.1 -m "have fixd bugs"
此时我们的项目目录为:
        SVNTest
            trunk
                myproject
                    b.txt
            tags
                v1.0
                    b.txt(aaa)
                v1.1
                    b.txt(aaabbb)
            branches
                v1.0fix
                    b.txt(内容为aaabbb)

5.总结

      在本篇博客中主要介绍了一下几点

  • 如何在服务器安装SVN
  • SVN的命令行的常用命令
  • 真实环境中如何控制权限
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SVN(Subversion)是一个开源的版本控制系统,它可以帮助团队协同开发和管理项目代码。下面是SVN的使用介绍: 1. 安装SVN:首先,你需要下载并安装SVN客户端软件,例如TortoiseSVN(Windows平台)或者svn命令行工具(Linux平台)。 2. 创建版本库:在SVN中,项目的代码存储在一个称为版本库(Repository)的中央服务器上。你可以使用svnadmin命令创建一个新的版本库。 3. 检出代码:使用svn checkout命令将版本库中的代码复制到本地工作副本(Working Copy)中。这样你就可以在本地进行修改和提交。 4. 添加和提交文件:将你的代码文件添加到本地工作副本中,使用svn add命令。然后使用svn commit命令将修改后的文件提交到版本库中。 5. 更新代码:使用svn update命令可以将版本库中其他人提交的最新代码更新到你的本地工作副本中。 6. 解决冲突:当多个人同修改同一个文件,可能会发生冲突。SVN会标记出冲突的文件,你需要手动解决冲突并提交修改。 7. 分支和合并:SVN支持创建分支和合并操作,可以方便地进行并行开发和代码版本管理。 8. 查看日志:使用svn log命令可以查看版本库中的提交日志,包括每个版本的修改记录和提交者信息。 9. 撤销修改:使用svn revert命令可以撤销对文件的修改,将文件恢复到最新的版本。 10. 标签和标记:SVN支持创建标签(Tag)来标记项目的重要里程碑或版本发布。标签是一个不可修改的副本,用于长期保存。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值