SVN使用

一、什么是svn

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。

二、svn的下载安装

下载地址:https://tortoisesvn.net/downloads.zh.html

安装完不要忘记重启电脑

安装完成后,按下鼠标右键,会看到如下界面:

 
如果显示是这样的,就说明安装成功了

三、svn的常用操作

1、迁出配置库内容(SVN Checkout)
  1. 新建或进入目录下(比如E盘),右键 →SVN Checkout
  2. URL of repository 填写仓库路径即可
  3. Revision处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。 

  4. 点击“OK”按钮后,在弹出的对话框中输入用户名和密码,验证成功后,项目文件开始从远程服务器下载到本地工作目录中: 

5.点击“确定”按钮后,即可获取完成,出现如下下载界面: 

6.下载完成后,服务器上所有内容会出现在本地文件夹下

2、更新文件(SVN Update)
  1. 当从配置库迁出相应目录后,他人对服务器上此目录内容进行了修改,则需要再次获取改动内容到本地目录的过程称为更新。更新可以针对一个文件、几个选中的文件或者整个文件目录。 
    选中要被更新的文件,右键选择“SVN Update”项,如下: 

  2. 2)点击“SVN Update”后会弹出窗口显示更新的进度,如下:

        若上述框中的有文件出现亮红,说明来自配置库的内容与你本地修改内容合并时出现了冲突

3、提交更新(SVN Commit)
  1. 本地文件修改后,若是需要更新到服务器上,则需要提交(Commit)最新的更新。

        Commit的作用是将本地最新修改的文件同步到SVN服务端,供其他人来参考或者使用,当然使用之前,要先Update一下,来确保是最新的,在修改文件上击右键,出现菜单,选择“SVN Commit…”,如下:

2.然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败,如下:

4、增加文件(Add)
  1. 将需要增加的新文件放入到本地迁出的文件夹TestManger目录的相应位置中,鼠标选中新文件右键选择“Tortoise SVN”的“Add”项,如下图所示:

  2. 鼠标选中TestManger文件夹右键选择“SVN Commit…”,将新文件上传配置库对应文件夹中(若只上传单个文件,只需点中单个文件上传即可)。

5、检查更新(Check for modifications)
  1. 此功能可以显示本地对文件所做的修改有哪些还没有提交。不光能看到对文件的修改变化,还包括增加文件或目录,删除文件或目录,移动文件或目录等。当他人提交了哪些文件的改动,也可通过此项来进行查询。
6、删除文件(Delete)
  1. 选中要被删除的文件,右键选择“Tortoise SVN”的“Delete”项,如下:

  1. 删除文件后,鼠标选中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建立分支

正确SVN服务器上会有两个目录:trunk和branches。trunk目录下面代码就是所谓的主版本,而branches文件夹主要是用来放置分支版本。分支版本是依赖于主版本的,因此建立分支版本时候,必须要在trunk文件夹操作才可以的。下面是推荐的操作步骤:

(1)从SVN上checkout Trunk版本下来。如果在本地机器上已有了trunk版本,需要更新一下到最新代码。

(2)在本地抓下来的trunk版本的文件上,点击右键,弹出菜单,选中如下菜单项。





弹出如下对话框,按在下面的要求,填写好配置。




点击OK按钮,SVN就会建立好对应的分支版本。

2.从SVN抓取分支代码

(1)在本地机,建立新目录,从SVN分支版本路径上,抓取分支版本上的代码




(2)在F:\branchesh_v20160726中可以对代码进行正常地更新和提交操作。


2.1删除不想要的分支版本

(1)在本地机的SVN目录,右键,选择TortoiseSVN/Repo-broswer,进入 版本库浏览(Repo-browser),在右侧树状窗口中的branches下,选择你要删除的分支版本,右键弹出菜单,点击“删除”即可。分支就能从代码库中删除。


3.从分支版本合并代码到trunk主版本中去

如果在分支版本新功能开发完成,需要将分支上的修改合并到主版本中,按下面步骤操作:

(1) 在合并代码之前,我们首先要更新分支代码,以防止别人提交了代码而你没有及时更新。造成别人的代码丢失。



(2)接下来我们要做的是将要有修改的代码提交。以保证其他人员的代码为最新状态。



(3)我们在分支代码合并到主干之前,先将主干代码更新一下。以保证别的人员合并之后的代码能及时更新到你本地。步骤同步骤(1)。

(4)主干代码更新完成之后,接下来我们打开分支代码的日志



(5)找到你要合并到主干的代码日志。然后右键打开菜单,选择Merge revision to  ,然后选择你的主干目录确定即可


一、主干合并到分支

首先,在本地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 指定版本号合并。

https://blog.csdn.net/luofeixiongsix/article/details/52052631

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值