SVN安装、使用简则

原创 2015年11月21日 18:17:15

SVN学习手札

别人是从svn转化到git,我则相反。。。心好累

最近有一个项目要用到SVN,老大命我搭建环境。昨晚学习大概学习了一下,以下只是我的手记。

至于其他关于SVN的介绍自行百度。。。

环境搭建

自己练习需要安装一个SVN服务器,这里我用的虚拟器VirtualBox,关于虚拟机的使用不再阐述,期间遇到一个和主机共享资源的问题,记录一下。

虚拟机与主机通讯

在虚拟机设置-》高级》常规
这里写图片描述
将网络设置为桥接网卡
这里写图片描述
进入虚拟机,安装增强功能
这里写图片描述
下载VMTransferFiles到本机,解压安装其中的setUp_host.exe

将VMTransferFiles下的GuestSetup.iso挂载到虚拟机中
这里写图片描述
给虚拟机设置一个ip地址,又get一个命令,在主机arp -a可获取到暂时没被暂用地址

ip地址可在网上邻居》右键属性》Internet协议》属性》
ip地址:填写未被暂用的
子网掩码:255.255.255.0

安装SVN服务器

VisualSVN是一款图形化svn服务器。官网
http://www.visualsvn.com/server/

下载地址:
http://www.visualsvn.com/server/download/
搭建svn服务器,安装步骤见文档,相当简单

创建仓库

之前用过版本控制的,应该对“仓库”这个概念不陌生了
这里写图片描述
这里写图片描述
设置用户权限
这里写图片描述
完成
这里写图片描述

仓库的备份还原

一般来说,仓库会定时或者实时保存到硬盘上,这样就算服务器崩溃了,在新的服务器上,我们也能快速的恢复数据。

在Repostitories上右键-》所有任务-》import exititing即可导入本地仓库

常用操作

SVN图标介绍

这里写图片描述:表示状态正常
这里写图片描述:已修改,需要提交
这里写图片描述:提交过程中出现了冲突
这里写图片描述:文件设置了svn:needs-lock属性,为只读文件,你必须在必须在编辑之前线得到一个锁
这里写图片描述:如果你拥有一个文件的锁,并且SVN状态是正常的,这个图片就提醒你,如果你不使用该文件应该释放锁,允许别人提交对该文件的修改
这里写图片描述:当前文件已经被计划从版本控制中删除,或者该文件夹下某个受控文件丢失了
:该文件没有被纳入版本管理系统,此时该文件可以被添加到版本管理或者ignore(忽略)列表中
这里写图片描述:被计划加入版本控制中

TortoiseSvn

一个免费的开源svn客户端,避免使用枯燥且不实用的命令
下载地址http://tortoisesvn.net/downloads

代码提交和回滚

右键>SVN commit提交代码
右键>TortosiseSvn-> show log,可以查看进行提交代码版本,选择相应的版本进行回滚
这里写图片描述

代码冲突

冲突的产生:程序员李彦宏修改了a.java文件后提交,这时,程序员马化腾没有先更新a.java文件,直接修改后提交,由于李彦宏已经提交过新的版本,即当前马化腾手上的文件不是最近的,但是他也做了修改,这就产生了冲突了

冲突的解决

三种选择:
1,放弃自己的修改,回滚(svn revert)后重新提交
2,手动解决

这里写图片描述
revert后,即可放弃自己的修改,使用服务器的最新版本

手动解决

当我们提交有冲突的文件后,会在本地生成以下文件

.mine是当前修改的内容
.r5:当前修改之前的内容
.r6:服务器上新版本新增的内容

选择edit conflicts
这里写图片描述
红色部分即使冲突的代码
这里写图片描述

点击
这里写图片描述

这时,刚刚产生的几个临时文件就消失了,留下的文件是svn帮我们合并后的结果,是不合法的文件,

这是打开带有黄色感叹号的冲突文件可以看到
这里写图片描述

《《《.mine表示是自己修改的内容
=====是分割号
》》》.r4:表示服务器上的内容

这时我们就可以手动调整代码冲突的部分了,调整完重新提交即可

避免冲突

1,编写后,应尽快提交,频繁的提交/更新可以降低冲突发生的几率和复杂度
2,提交时写上明确的message(git强制要求写上, svn则没有),方便以后解决问题
3,养成好习惯,每天下班提交代码,上班更新代码,使用SVN每次都是先提交后更新

分支与合并

前面在创建仓库时提到SVN的标准目录结构,下面简单介绍一下

Trunk:主分支,这里包含的都是最新的开发代码,这里的代码将会工作到下一个主要发布版本

Baranches:分支。可以用于处理trunk上发现的bug,或者进行一些新技术的尝试,协同开发

Tags:保存可用版本,一般都是只读的

打开仓库可以看到一下目录

这里写图片描述

创建分支

打开Repo-browser
这里写图片描述

这里写图片描述
可以看到,在tag下有两个稳定版本,但是这时我们发现V2.0上有个bug 需要修复,为了保证代码的完整性,我们不能在主分支上修改

在tag/V2.0下右键选择copy to…
这里写图片描述
所填的路径就是分支的url

我们在svn checkout时选择该url即可将分支上的代码下载下来修改

合并分支

修改完提交后

在主分支trunk主分支下,我们可以进行代码合并
这里写图片描述

选择merge
这里写图片描述
将分支合并到主分支上。。

协同开发使用规范(转载)

先更新,再提交

SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。
如果在修改的期间别人也更改了svn的对应文件,那么commit就可能会失败。如果别人和自 己更改的是同一个文件,那么update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。
在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错。

多提交

每次提交的间歇尽可能地短,以几个小时的开发工作为宜。例如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。我们提倡多提交,也就能多为代码添加上保险。

不要提交不能通过编译的代码

代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出代码之后能够在统一的环境中进行编译。

每次提交必须书写明晰的标注

在一个项目组中使用SVN,如果提交空的标注或者不确切的标注将会让项目组中其他的成员感到很无奈,项目经理无法很清晰的掌握工作进度,无法清晰的把握此次提交的概要信息。在发现错误后也无法准确的定位引起错误的文件。所以,在提交工作时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。

提交时注意不要提交本地自动生成的文件

例如eclipse中的.classpath文件,Windows生成的缩略图Thumbs.db,项目编译生成的临时文件.obj, .class等等。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。

不要提交自己不明白的代码

代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。

慎用锁定功能 在项目中要慎用锁定的功能,在你锁定了一个文件之后别人就无法继续修改提交该文件,虽然可以减少冲突的发生率,但是可能会影响项目组中其他人员的工作。平时只有在编辑那些无法合并的文件(例如图片文件,flash文件等)时,才适当的采用锁定操作。

以上只是我的学习手札并非实践应用。。如有错误的地方望见谅并及时告知博主

版权声明:本文为博主原创文章,未经博主允许不得转载。

SVN安装配置使用

  • 2013年04月02日 14:07
  • 2.25MB
  • 下载

SVN的安装使用

  • 2013年05月20日 13:34
  • 3KB
  • 下载

MyEclipse使用总结——MyEclipse2014安装SVN插件

转自:http://www.cnblogs.com/xdp-gacl/p/3497016.html MyEclipse使用总结——MyEclipse10安装SVN插件 一、下载SVN插件s...

Win7 SVN 套件安装和使用

  • 2014年09月05日 15:13
  • 2.65MB
  • 下载

svn插件的安装使用

  • 2012年09月10日 12:47
  • 991KB
  • 下载

svn服务端的安装与使用方式简介(一)

1.   SVN的安装 第一步: 点击Setup-Subversion-1.6.5.msi  第二步:在F盘根目录下建立文件夹software/SVN 第三步:将SVN安装到F:\software\...

svn安装简易使用

  • 2011年12月15日 13:09
  • 1.36MB
  • 下载

SVN安装包及使用说明

  • 2013年04月24日 16:13
  • 43.17MB
  • 下载

Myeclipse SVN插件安装以及使用

1.首先下载svn插件,最好下载1.8版本及以上的 2.在myeclipse安装目录中找到dropins文件夹,在里面创建svn文件夹,在svn文件夹中创建eclipse文件夹 3.解压刚才下载好...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SVN安装、使用简则
举报原因:
原因补充:

(最多只允许输入30个字)