SVN安装、使用简则

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文件等)时,才适当的采用锁定操作。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Homepage: http://www.newesttools.com VMTransferFiles, a tool for VirtualBox is used for transferring files between Host OS and Guest OS via the Explorer context menu. It also supports Drag'n'Drop from the Windows Host to Windows Guests. License: GPLv2(http://www.gnu.org/licenses/gpl-2.0.html) Requirerements Host OS: WinXP and above Guest OS: WinNT4 and above Please see installation and usage video at: http://www.newesttools.com/vmtransferfiles/vmtr_vid.php Installation Definitions Guest OS is an operating system that runs in a virtual machine environment Host OS is the original OS installed on a computer Inside Host OS run setup_host.exe to install VMTransferFiles Host OS module Follow Installation Instructions Note that you should reinstall Host Module after every update of VirtualBox Run VirtualBox Start Virtual Machine where you want to use VMTransferFiles features Make sure to have Settings->General->Advanced->Shared Clipboard set to Bidirectional Mount GuestSetup.iso (Right-click CD icon at the VirtualBox Window, click "Choose a virtual CD/DVD disk file..." and select GuestSetup.iso ) Inside Guest OS if autorun does not occur, run setup_guest.exe from Guest OS CD drive Follow Installation Instructions Usage Transferring files from Guest OS to Host OS Inside VirtualBox Guest OS select files and folders which you want to transfer Right-click the mouse and choose "Copy" from the Explorer context menu (I may also use 'CTRL-C' keyboard shortcut) Inside Host OS select destination folder, right-click the mouse and choose "Paste files from the Guest OS Clipboard" Note: 'CTRL-V' keyboard shortcut is not supported here Transferring files from Host OS to Guest OS is the similar operation Inside Host OS select files and folders which you want to transfer Right-click the mouse and choose "Copy" from the Explorer context menu (I may also use 'CTRL-C' keyboard shortcut) Inside Guest OS select destination folder, right-click the mouse and choose "Paste files from the Host OS Clipboard" --- End of document
对于Windows系统下的SVN安装使用教程,可以按照以下步骤进行操作: 1. 下载SVN客户端:你可以从Apache官方网站(https://subversion.apache.org/packages.html#windows)下载最新的Windows版本的SVN客户端。根据你的系统架构选择合适的安装包(32位或64位)下载。 2. 安装SVN客户端:双击下载好的安装包,按照安装向导提示完成安装过程。默认情况下,SVN客户端会安装到"C:\Program Files\Subversion"目录下。 3. 配置环境变量:将SVN安装目录添加到系统的环境变量中,以便在命令行中直接使用svn命令。打开控制面板,点击"系统和安全",选择"系统",点击"高级系统设置",在弹出的窗口中点击"环境变量"按钮。在系统变量中找到名为"Path"的变量,在其值的末尾添加SVN安装目录(比如";C:\Program Files\Subversion\bin"),然后点击确定保存设置。 4. 验证安装:打开命令提示符(Win+R,输入cmd并点击确定),输入svn --version命令,如果能够正确显示SVN的版本信息,则表示安装成功。 5. 创建和导入仓库:在命令提示符中,进入你想要创建仓库的目录,输入svnadmin create 仓库名命令,即可创建一个新的SVN仓库。然后使用svn import命令将本地的项目导入到刚创建的仓库中,例如:svn import 本地目录 仓库URL -m "导入项目"。 6. 检出代码:使用svn checkout命令将仓库中的代码检出到本地,例如:svn checkout 仓库URL 本地目录。 7. 提交和更新代码:在本地修改完代码后,使用svn commit命令将修改的代码提交到SVN服务器,例如:svn commit -m "提交修改"。其他成员可以使用svn update命令更新自己的工作副本以获取最新的代码,例如:svn update。 这些是SVN在Windows系统下的基本安装使用教程,希望对你有所帮助。如果有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值