SVN使用教程
SVN使用教程
Alex
2021.11.20
目录
一、 SVN安装与注册... 3
1.1安装... 3
1.2注册... 3
二、 SVN介绍与使用... 3
2.1 SVN概念... 3
2.2.1从服务器中心版本库获取数据... 4
2.2.2同步服务器中心版本库... 7
2.2.3编辑源代码... 7
2.2.4 SVN上传服务器中心版本库... 13
2.3SVN版本分支... 15
2.3.1版本分支介绍... 15
2.3.2版本分支源由... 15
2.4 SVN版本合并... 18
2.4.1版本合并介绍... 18
2.5SVN版本间的比较... 20
2.6SVN版本冲突... 21
2.7SVN版本回退... 21
2.8SVN版本拷贝... 21
三、 管理原则... 21
3.1SVN使用原则... 21
3.2SVN使用事项:... 22
四、 实例... 22
4.1举例... 22
一、 SVN安装与注册
1.1安装
客户端:
下载Tortoise SVN到本机安装(安装结束后重启软件)
服务端:
IT创建SVN储存库以及配置服务端,设置权限管理客户端以及账号权限等。
1.2注册
根据IT分配的账号权限,使用账号&密码登录SVN界面
二、 SVN介绍与使用
2.1 SVN概念
SVN(subversion)是一个开源版本控制系统。subversion将文件存放在中心版本库里,
这版本库像是普通的文件服务器,它可以记录每一次文件和目录的修改情况;可以籍此将数据回复到以前版本,并可以查看数据的更改细节。
Subversion的中心版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操,允许用户在各自的空间里修改和管理同一组数据,可以促进团队协作,使多开发者能并行开发;由于所有工作的版本都已版本化,也不必担心由于错误的更改而影响软件质量,如果出现不正确的更改,只要撤销那一次操作即可。
2.2 SVN使用基本流程
1)初次(initial)取出(checkout)repos data,客户端上建立本地工作文件夹(working copy)
2)与服务器中心版本库同步(update),保证将要进行的编辑是最新版本。
3)编辑源代码(包括创建、修改、删除)
4) 与服务器中心版本库同步(update),提交之前先要同步到最新的版本,保证所有在自己之前的有关提交已经在本地有所知悉。(非常重要)
5)解决冲突(resolve conflict)
6)提交(commit),写提交的内容的摘要,便于以后查阅(规范非常重要)
7)每次新的编辑同步服务器中心版本库(继续2步骤)
2.2.1从服务器中心版本库获取数据
1 |
建立工作拷贝文件 |
2 |
Checkout操作 |
3 |
1填写:服务器中心版本库路径 2填写:本地工作文件夹路径 3填写:获取的版本号,一般同步数据使用HEAD revision,一般回溯数据使用Revision |
4 |
根据需求选取对应版本,Revision 版本迭代编号是非常重要信息,简称SVN号码 |
5 |
获取版本数据到放入工作文件夹, 灰色.SVN是本地数据控制(必须保留,不可删除)绿色图标是实际可编辑的数据 |
2.2.2同步服务器中心版本库
1 |
|
2 |
2.2.3编辑源代码
->创建/修改/删除
第1部分:创建
1 |
|
2 |
|
3 |
|
4 |
第2部分:修改
1 |
|
2 |
修改后,同步服务器中心版本库后,提交Commit |
3 |
填写摘要内容,规范非常重要 点击”OK“ |
4 |
第3部分:删除
1 |
|
2 |
2.2.4 SVN上传服务器中心版本库
1 |
点击“Commit” |
2 |
填写摘要内容,规范非常重要
|
3 |
更新后的最新SVN 版本 |
4 |
更新后的文件变更成”变更绿色“ |
2.3SVN版本分支
2.3.1版本分支介绍
Subversion 允许并行维护文件与目录分支,允许通过拷贝数据建立分支,分支相互联系,允许从一个分支复制修改到另一个分支,形成日常”混合和比较“不同的开发产品线。
SVN服务器中心版本库又称SVN仓库,SVN仓库推荐的目录结构,
一级目录只有2个,分别是code和doc。其中,code主要用来放置工程的代码。doc主要放置项目生命周期文档和Release code 版本文件。
二级目录只有3个,Trunk、Branch、Tag。分别存放主干、分支、固化。Trunk目录下直接存放主干工程文件,branch目录下存放分支工程文件,Tag目录下存放Release工程文件。
三级以下目录是实际文件以及自定义文件。
从SVN仓库取出数据时,不要把整个仓库数据取出来,而应该只取出二级目录,如 Trunk/branch
2.3.2版本分支源由
将要对项目做基本的重新组织,这需要花费大量时间来完成,会影响项目的所有文件,同时有其他人正在使用或修改同样的文件,此时最佳方案是场景一个分支,或是版本库开发。版本分支允许你保存破坏了一半的工作而不打扰别人,你依然可以选择性与你合作者开发。
版本分支要点:
- Subversion的分支存在于真实的正常文件系统中,并不是在于另一维度,这些目录只是恰巧保留了额外历史信息。
- Subversion 没有内在的分支概念,只有拷贝,当你拷贝一个目录,这个结果目录就是分支。
1 |
建立Branch/Tag
|
2 |
查看Branch/Tag结构
|
2.4 SVN版本合并
2.4.1版本合并介绍
Code到达一个比较稳定的阶段,就需要把分支Branch合并到主干Trunk上,或不同branch合并一起
SVN合并操作示范
1 |
|
2 |
|
3 |
|
4 |
2.5SVN版本间的比较
比较方式有二种:时间比较和版本比较(使用较多)
1 |
|
|
|
以下功能不常用:
2.6SVN版本冲突
根据实际情况处理与网上搜索(解决方案略)
2.7SVN版本回退
根据实际情况处理与网上搜索(解决方案略)
2.8SVN版本拷贝
根据实际情况处理与网上搜索(解决方案略)
三、 管理原则
3.1SVN使用原则
1. 通用原则。”Trunk、Branch、Tag、Document“四点结构目录原则。
2. SVN使用过程中以节省内存原则,主干目录code目录上传SVN是源文件(精简),编译链接生成文件不需要上传。不提交本地自动生成文件。
3.提交之前要更新。SVN的更新原则:随时更新,提交更新。每日进行开发工作之前更新代码。避免与前期其他开发者的代码冲突。浏览更新摘要内容,即可以了解别人修改文件内容,又能避免SVN合并导致错误代码原因。
4.原子性提交方式。开发过程中提交SVN,尽量是小单位的编辑,比如一个debug或一个小功能提交,不建议合并提交SVN
5.代码变动以及提交。提交原则:Release提交要慎重,开发阶段要及时。
6.对SVN提交信息采用明晰的标注摘要。文件提交时必须要求注释,注明修改信息,规范化。所提交的改变体现给其他开发者。
避免丢失本地后修改后无法恢复。要对文件提交的后果有预判。当完成一个小功能,能够通过编译并且自己测试之后,谨慎提交。提交之前要测试所改变内容应用,测试改变后的效果是否达到预期的目的。
7.明晰自己提交的代码。多次检查提交的内容,提交之前应先做SVN Update 服务器中心版本库(仓库),资源库同步会告诉你提交的内容与资源库之间的差别,确认编辑内容是否是你真正想提交的。不能提交不能通过编译的代码,代码提交之前,首先要确认自己能够在本地编译。
3.2SVN使用事项:
a.通用习惯代码使用:UTF-8. 注意提交格式。
b.SVN常用操作:检出(check out)\更新(update)\冲突(confilicte)\添加(add)\摘要(log)\提交(commit)
c.慎用锁定功能
四、 实例
4.1举例
略