一、什么是svn
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
二、svn的下载安装
下载地址:https://tortoisesvn.net/downloads.zh.html
安装完不要忘记重启电脑
安装完成后,按下鼠标右键,会看到如下界面:
如果显示是这样的,就说明安装成功了
三、svn的常用操作
1、迁出配置库内容(SVN Checkout)
- 新建或进入目录下(比如E盘),右键 →SVN Checkout
- URL of repository 填写仓库路径即可
Revision处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。
点击“OK”按钮后,在弹出的对话框中输入用户名和密码,验证成功后,项目文件开始从远程服务器下载到本地工作目录中:
5.点击“确定”按钮后,即可获取完成,出现如下下载界面:
6.下载完成后,服务器上所有内容会出现在本地文件夹下
2、更新文件(SVN Update)
当从配置库迁出相应目录后,他人对服务器上此目录内容进行了修改,则需要再次获取改动内容到本地目录的过程称为更新。更新可以针对一个文件、几个选中的文件或者整个文件目录。
选中要被更新的文件,右键选择“SVN Update”项,如下:2)点击“SVN Update”后会弹出窗口显示更新的进度,如下:
若上述框中的有文件出现亮红,说明来自配置库的内容与你本地修改内容合并时出现了冲突
3、提交更新(SVN Commit)
本地文件修改后,若是需要更新到服务器上,则需要提交(Commit)最新的更新。
Commit的作用是将本地最新修改的文件同步到SVN服务端,供其他人来参考或者使用,当然使用之前,要先Update一下,来确保是最新的,在修改文件上击右键,出现菜单,选择“SVN Commit…”,如下:
2.然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败,如下:
4、增加文件(Add)
将需要增加的新文件放入到本地迁出的文件夹TestManger目录的相应位置中,鼠标选中新文件右键选择“Tortoise SVN”的“Add”项,如下图所示:
鼠标选中TestManger文件夹右键选择“SVN Commit…”,将新文件上传配置库对应文件夹中(若只上***个文件,只需点中单个文件上传即可)。
5、检查更新(Check for modifications)
- 此功能可以显示本地对文件所做的修改有哪些还没有提交。不光能看到对文件的修改变化,还包括增加文件或目录,删除文件或目录,移动文件或目录等。当他人提交了哪些文件的改动,也可通过此项来进行查询。
6、删除文件(Delete)
- 选中要被删除的文件,右键选择“Tortoise SVN”的“Delete”项,如下:
- 删除文件后,鼠标选中TestManger文件夹右键选择“SVN Commit…”项进行提交,提交方式同增加文件的提交方式,提交后则将新文件从配置库中删除。
7、撤销更改(Revert)
在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中文件夹右键选择“Tortoise SVN”的“Revert…”项进行撤销,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。
8、锁定和解锁(Get lock and Release lock)
当项目需要时可以在本地硬盘中将迁出的内容进行锁定,选中要被锁定的文件右键选择“Tortoise SVN”的“Get lock…”项进行锁定(锁定后他人将无法修改此文件),系统弹出锁定信息框。 当文本文件锁定后,需要通过解锁他人才能继续对文件进行修改。选中被锁定的文件右键选择“Tortoise SVN”的“Release lock…”项进行解锁。
9、重命名文件(Rename)
修改文件名,选中需要重命名的文件或文件夹,然后右键“Tortoise SVN”的“Rename”,在弹出的对话框中输入新名称,点击“OK”按钮,并将修改文件名后的文件或文件夹“SVN Commit…”提交到SVN服务器上。
10、获取历史文件(Show log)
Show log顾名思义是显示日志的作用,主要是显示该文件或者该目录被执行的操作,是被谁修改了,以及修改的时间和日期。鼠标选中文件夹右键选择“Tortoise SVN”的“Show log”项,系统弹出此路径下的所有文件版本信息,如下:
1.SVN建立分支
(1)从SVN上checkout Trunk版本下来。如果在本地机器上已有了trunk版本,需要更新一下到最新代码。
(2)在本地抓下来的trunk版本的文件上,点击右键,弹出菜单,选中如下菜单项。
弹出如下对话框,按在下面的要求,填写好配置。
点击OK按钮,SVN就会建立好对应的分支版本。
2.从SVN抓取分支代码
(1)在本地机,建立新目录,从SVN分支版本路径上,抓取分支版本上的代码
(2)在F:\branchesh_v20160726中可以对代码进行正常地更新和提交操作。
2.1删除不想要的分支版本
3.从分支版本合并代码到trunk主版本中去
一、主干合并到分支
首先,在本地trunk中先update一下,有冲突的解决冲突,保证trunk和repository已经完全同步,然后在/branches /MyProject上右键,依次选择”TortoiseSVN” -> “Merge…”,在弹出的窗口中选择第一项”Merge a range of revision”,这个类型的Merge适用于将某个分支或主线上提交的多个revision间的变化合并到另外一个分支上。
点击next后,出现如下窗口:
由于是要从trunk合并到branch,理所当然这里的”URL to merge from”应该填trunk的路径,”Revision range to merge”很好理解,就是你要将trunk的哪些revision所对应的变化合并到branch中,可以是某一连串的 revision,比如 4-7,15-HEAD,也可以是某个单独的revision号(可以点击Show log窗口后选择)。当然我们也可以选择 all revisions 表示所有修订。点击next后出现下图:
在这里只需保留默认设置即可。在点击Merge按钮前你可以先Test merge一把,看成功与否,以及merge的详细信息。点击Merge按钮后trunk所做的修改将同步到branch中。
至此,branch 已经完全和 trunk 同步,合并发生在本地 working copy,只要你不提交就不会影响到 repository。所以我们和合并操作后,处理好冲突(如果存在冲突)后,将代码提交到 repository。
二、分支合并到主干
在/trunk/MyProject上右键(注意是在主线的目录上右键),依次选择”TortoiseSVN” -> “Merge…”。
后续操作和 “分支合并到主干” 一样,其实你可以把主干也理解为一个分支 “主分支”。
因为我们把分支合并到分支一般是分支开发完毕后,所以在一般选择 all revisions ,当然你如果只想合并一部分到主干,一样可以选择 specific revisions 指定版本号合并。