说明

目前公司使用SVN做版本管理,也没有用过,所以使用过程还是踩了不少坑的,这里记录一下,顺便出一份教程,因为看网上其实说的也不是那么明白,所以我尽量讲明白,通俗一点。

软件

丢丢概念

  • svn: Apache Subversion的缩写
  • repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当你手上没有源代码的时候,你需要从 repository checkout 一份
  • Commit(提交):当你已经修改了代码,你就需要Commit到repository
  • Update (更新):当你已经 checkout 了一份源代码, update 一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更

语言包补丁包安装

使用的tortoise svn安装就不废话了,这里讲一下汉化,小乌龟官方做了中文简体包,根据自己的安装的小乌龟选择对应的中文包,必须要先小乌龟本体,再按照语言包补丁
svn安装包路径,请点击
svn安装

  1. 安装好小乌龟本体后,双击下载好的语言补丁包
    语言补丁包
  2. 点击下一步
    点击下一步
  3. 一定要勾选配置语言包到小乌龟
    勾选配置
  4. 点击完成

使用过程

仓库

对于公司来说,一般拥有自己的服务器,所以不用自己创建源代码库,一般是管理员创建的
对于个人来说,一般有以下几种方式:

  • 一般就是本地安装Subversion,自己创建版本库启动svn,这种方式颇为复杂
  • 还有就是VisualSVN-Server这种类似软件,不需要自己创建启动svn,安装这个软件之后,就会自动创建本地的服务器
  • svnbucket这种在线仓库,方便那里都能用,但是免费额度比较少,我这里测试就用这个了

提交规范

<type>(<scope>): <subject>

<body>

<footer>

其中, 代表本次提交的类型,包括以下几种:

  • feat:新功能(feature)
  • fix:修补 Bug
  • docs:文档(documentation)
  • style:格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动
  1. scope代表本次提交的影响范围,可以省略。
  2. subject代表本次提交的简要说明。
  3. body代表本次提交的详细说明,可以省略。
  4. footer代表本次提交的备注信息,可以省略。

检出(checkout)

拉取创建的仓库到本地
检出
检测结果
在你的本地文件加就可以看到下载的仓库了

三个文件夹

  • trunk:这是SVN目录的主分支,表示日常开发中的项目,任何时候Trunk里包含的都是最新的开发代码
  • tags:是用来做一个milestone(里程碑)的,不管是不是release,都是一个可用的版本
  • branches:有时你想将某个新技术引进项目;分支也可以用于处理trunk或release branches里发现的严重的Bug;当trunk达到准备发布的阶段时(或者你想冻结新特色的添加时),你应该创建一个release branches。
    所以我们在我们test文件夹钟船舰这三个文件,然后提交更新
    三个文件夹

更新按照规范

提交触发
提交
提交完成
点击确认,显示提交更新完成即可

查看log

log触发
log
以后更新了内容,想看都更新了些什么,都可以从这里看

查看远程仓库

远程仓库触发
远程仓库

更新本地

更新触发
更新

创建分支

  1. 首先在trunk中创建测试代码
    创建测试代码
  2. 提交更新
    提交测试代码
  3. 查看log
    log查看
  4. 创建分支
    创建分支
  5. 创建分支界面
    创建分支界面
    一定不要放到trunk路径下,一定要重新选择分支路径,不然会有问题
  6. 分支路径选择
    分支路径选择
  7. 点击确认
    创建成功
  8. 导航到branches路径
    导航到branches路径
    此时为啥为空?因为刚刚创建是创建在远程仓库,还没有更新到本地,执行更新步骤后,就能看到
  9. 更新本地
    更新本地
  10. 更新显示test1
    Alt text
  11. 点击进入,分支和trunk中的软件,是完全独立的
    Alt text
  12. 分支创建完成,导航回到trunk文件夹,查看分支图
    分支图触发
    分支图

分支合并

  1. 首先在分支中创建新的文件
    创建新的文件
  2. 提交更新
    提交更新
  3. 查看log
    log
    和trunk的log是不一样的,两者是独立的
  4. 回到trunk目录,因为要把分支合并到主干分支上,点击合并
    合并触发
  5. 合并类型,选择第一个
    合并类型
  6. 合并版本范围
    合并版本范围
  7. 合并选项
    合并选项
  8. 合并完成
    合并完成
  9. 更新,在本地trunk中看到在分支中创建的文件夹
    更新
  10. 提交
    提交
  11. 查看log
    log

删除分支

  1. 进入版本浏览器
    版本浏览器
  2. 选择test1,右击,点击删除
    删除
  3. 输入信息
    输入信息
  4. 提示已经没有路径
    没有路劲
  5. 回到test目录,点击更新
    更新
  6. 在进入branches目录,也已经没有了test1分支,查看log
    进入branches