`
阅读更多

是前面公司开始使用svn时候的培训时候准备的资料,发出来,希望对使用svn的兄弟们有所帮助。里面的相关软件版本可能已经不够新了,但新的软件的大概操作方式也基本是相通的,同时,SVN的基础概念也没有发生过变化。

 

第一部分:基础使用

<o:p> </o:p>

工具安装:

1. Subclipse EclipseSvn插件。安装、使用都很简单。当前最高版本1.2.4,支持Eclipse版本3.23.3。这个插件的优点是版本比较、合并很清晰,但前提是要用到Eclipse

<o:p> </o:p>

安装方法:打开Eclipse,选择菜单栏中的 Help -> Software Updates -> Find And Install

<o:p> </o:p>

选择Search for new features to install,然后 Next<o:p> </o:p>

<o:p> </o:p>

点击右边的New Remote Site按钮,出现的对话框中,Name项可以随便填写,例如subclipseURL项填写:http://subclipse.tigris.org/update_1.2.x。然后确定。

<o:p> </o:p>

确定之后,在网站列表中,可以看到新加入了Subclipse一项,钩选之,然后Finish。稍等n秒,出现如下界面:

钩选下面的subclipse1.2.4。然后一路Next,或者Finish。就开始安装了。注意后面有一部需要选择同意他的使用协议。安装时间根据网速的不同而不同。

<o:p> </o:p>

2. TortoiseSVN 这个是Windows操作系统上的Svn客户端。有中文语言包,与Windows系统结合得比较好,可以直接在资源管理器中做版本管理操作。这个工具的优点是小巧,不依赖别的什么软件,缺点是比较、合并等界面我觉得不太理想。

<o:p> </o:p>

安装文件下载地址:http://tortoisesvn.net/downloads,注意这个页面上有TortoiseSVN的安装文件,还有语言包,最好都下载吧。

<o:p> </o:p>

安装TortoiseSVN完成后,要求重新启动机器。

<o:p> </o:p>

3. AnkhSVN,这个是VS.NETSVN插件,我没有用过,有兴趣的同事可以查一下。

<o:p> </o:p>

工具使用:

<o:p> </o:p>

1.Subclipse 按照基础操作类型,描述如下:

<o:p> </o:p>

检出项目:在Eclipse的项目导航区域点击右键,Import,出来的对话框中选择最下面的从SVN导入项目。然后选择列表中的svn服务器地址,或者创建新的svn服务器地址。然后一路确定,要输入用户名密码的话按照帐号管理人分配的帐号输入就可以了。

<o:p> </o:p>

共享项目:意思是把一个目前只在我机器上的项目发布到SVN版本库。在项目上点击右键,选择Team -> Share Project。然后选择SVN,后面的步骤就基本上一样了。

<o:p> </o:p>

比较:比较本地版本和服务器上的版本的差异,选择Team -> 与资源库同步。比较的结果中,灰色的向右的肩头代表本地版本作了修改,还没有提交到服务器。蓝色的向左的箭头代表尤其他人修改了该文件,并且提交到了版本库,本地文件需要更新。红色的双向箭头代表本地文件和服务器上的文件有冲突,需要合并。

<o:p> </o:p>

在比较结果上,点击右键,可以执行更新、提交等操作。

<o:p> </o:p>

更详细的文档:

<o:p> </o:p>

A. Eclipse安装Subclipse之后,也会安装Subclipse的文档,点击Help -> Help Contents,左边的树上会列出所有的文档,其中有Subclipse的文档。英文的,但有截图,说得也很好懂。(推荐)

B. http://dev2dev.bea.com.cn/techdoc/20060620822.html

<o:p> </o:p>

2.TortoiseSVN,安装语言包之后,直接在资源管理器的目录上点击右键,就可以看到有TortoiseSVN的相关操作了。

<o:p> </o:p>

检出项目:建立一个空目录,在目录上点击右键,选择SVN检出,后面按照提示输入地址等信息就可以了。

<o:p> </o:p>

共享项目:在项目目录上点击右键,TortoiseSVN -> 导入,填入地址,按照提示操作就可以了。但是注意,完成之后,版本库中已经有了这个项目,但你本地的这一份项目和版本库依然没有任何联系。此时要新建立一个目录,执行上面说的检出操作。

<o:p> </o:p>

比较、提交、更新等操作就使点击相应的选项。略。

<o:p> </o:p>

另外还有两个经常用到的操作是锁定和还原。一个人锁定某个文件或者目录后,别人都不能锁定,也不能提交。另外,如果我从服务器上更新下来一个文件a.txt,修改了一部分内容后,又发现改得不好,希望恢复到服务器上的样子。那么可以执行还原操作。

<o:p> </o:p>

更详细的文档:

<o:p> </o:p>

A.安装TortoiseSVN中文包之后,其帮助文档也成了一个半中文半英文的翻译版本。值得一看。

B.http://www.subversion.org.cn/tsvndoc/ (推荐)

C.http://fairyfish.net/2007/09/08/tortoisesvn-introduce/

<o:p> </o:p>

<o:p> </o:p>

第二部分:高级使用

<o:p> </o:p>

主要包含如下内容:打版本标记、分支操作

<o:p> </o:p>

标记和分支可以理解为都是项目的一份拷贝。只不过用途不同。而实际上这两个东西在SVN服务器上是没有区别的。

<o:p> </o:p>

建立标记、分支:所谓打标记,和CVS里面的Tag as a version是一个意思。就是整个项目的当前状况拍一个照片,放在某目录,日后方便查看。例如我们可以记住某项目的134版本是这个阶段工作的阶段性成果,而使用标记,我们可以把这个项目的134版本拷贝一份放在某个目录,并命名为project_a_final_20080227。以后任何时候都可以从这个位置方便的找回这个版本。

<o:p> </o:p>

Subclipse中,SVN操作选项中有Tag/Branche选项,点击之,第二个地址就是tag的存放地址(分支、标记存放在哪里都有一些一般性的建议,关于版本库的规划请参见另外一份文档《版本库结构规划建议》)。

<o:p> </o:p>

而在TortoiseSVN中,也有分支/标记这样的选项。操作起来大同小异。

<o:p> </o:p>

分支的创建和上面的Tag创建是完全一样的,只不过我们一般建议把分支存放于一个叫做branches的目录。

<o:p> </o:p>

切换分支:假设我们创建了一个分支叫做branchesA。之后开发人员可以工作在主干或者这个分支上,二者之间的切换也很简单,菜单中有一个“切换”选项。点击按提示操作即可。

<o:p> </o:p>

分支合并:这个是分支开发中最重要的一步。假设BranchesA是为了一个新功能的开发而创建的,那么该功能开发完成后,需要把这个分支合并回到主干上来。这时可以选择SVN操作菜单中的“合并”功能。

<o:p> </o:p>

所谓合并,实际上是比较两个资源的不同,找出差异,并将这个差异应用到本地工作拷贝上。<o:p></o:p>

合并的过程中涉及到的两个资源一般称作起始路径和目标路径。这两个路径的选取是很随意的。举以下几个例子:

<o:p> </o:p>

起始路径 http://domain/svn/project/branches/b1 创建分支时的版本(例如130

目标路径 http://domain/svn/project/branches/b1 当前最新版本(例如200

假设本地拷贝 该项目的主干版本

<o:p> </o:p>

合并操作可以表达为:

<o:p> </o:p>

本地版本 + (分支当前版本 - 分支创建时的版本) =  合并后的版本

(我们可以将开发理解成在版本库上的一种增量操作,此时括号中的减法得出的是一个正值,例如“增加了a.txt这个文件”)

<o:p> </o:p>

合并意义:比较分支b1创建时的样子和现在的样子,找出差异(注意这个差异实际上就是b1分支的开发成果),将这个差异应用到本地工作拷贝。而当前工作拷贝是项目的主干本本,这就意味着把分支b1的开发成果应用到了主干上,经过检查、提交到版本库,最后达到了将分支开发所完成的功能合并到了主干上的目的。

<o:p> </o:p>

------------------------------------------------------------------------------------------------------------

<o:p> </o:p>

起始路径:http://domain/svn/project/odps 上一次提交给信访项目时的版本 120

目标路径:http://domain/svn/project/odps 当前版本 145

假设本地拷贝:信访项目的当前版本

<o:p> </o:p>

合并操作表达如下:

<o:p> </o:p>

项目A当前版本 + (框架当前版本 - 框架上次提交给项目时的版本) = 项目A进行了框架升级后的版本<o:p></o:p>

(注意其中的减法结果依然是正值)<o:p></o:p>

<o:p> </o:p>

合并意义:比较上一次把odps框架提交给信访项目使用时的样子和该框架现在的样子,找出差异,应用到本地工作拷贝。而当前工作拷贝是信访项目,这就意味着把ODPS框架这个阶段开发的成果应哟功能到信访项目中,经过检查、提交到版本库,最后达到的目的是把信访项目中的ODPS项目部分进行了升级(ODPS框架和信访项目是由不同的小组开发的,所以这个操作很有意义)。

<o:p> </o:p>

------------------------------------------------------------------------------------------------------------

<o:p> </o:p>

起始路径:http://domain/svn/project/trunk 当前版本 300

目标路径:http://domain/svn/project/trunk 某个历史版本 250

工作拷贝:http://domain/svn/project/trunk 当前版本 300 ,与起始路径相同

<o:p> </o:p>

注意:这个例子和上面两个例子不同,上面两个例子其实路径在时间上都早于目标路径。

<o:p> </o:p>

合并操作表达如下:

<o:p> </o:p>

项目当前版本 + (项目历史版本250 - 项目当前版本) = 项目回滚后的版本<o:p></o:p>

注意这一次括号中的减法操作按照上面的规则来讲得出的结果是负的。也就是说,假设我们在开发过程中新增了一个文件a.txt,那么减法(新版本 - 旧版本)表达的含义是“以当初的版本位处发现,看现在的版本”,得出的结论是新增了一个文件a.txt,而减法(旧版本- 新版本),也就是把起始路径和目标路径的时间顺序倒了一下,表达的含义就变成了“站在今天,看过去有什么不同”,得出的结论是少了一个a.txt文件。

<o:p> </o:p>

合并意义:从现在看过去,整个差异部分“加了一个负号”,经过检查、提交,最后的结果是当前项目恢复到了历史上的250版本。

<o:p> </o:p>

其它:单一差异文件,补丁<o:p></o:p>

<o:p> </o:p>

上面的分支合并操作是比较两个资源的不同,将差异应用到本地工作拷贝。在此之外,SVN可以比较两个资源的不同,并将这些不同之处记录在一个独立文件中。而这一个差异文件也就是所谓的补丁。

分享到:
评论

相关推荐

    svn使用入门

    【Svn 使用入门】 Subversion(简称Svn)是一种版本控制系统,用于跟踪文件和目录的变更,便于多人协作开发。本文将详细介绍Svn的基础使用,包括安装和基本操作。 1. **工具安装** - **Subclipse** 是针对...

    svn使用入门,可以方便的告诉整个svn的架构

    本文将深入介绍SVN的基本概念、架构以及如何入门使用。 一、SVN基础概念 1. 仓库(Repository):SVN的核心组件,存储所有版本历史的中央数据库。 2. 工作副本(Working Copy):开发者本地的项目副本,可以进行...

    SVN使用教程简易入门

    总之,TortoiseSVN简化了SVN的使用,使得开发者可以更专注于代码本身,而无需担心版本管理和协作中的复杂问题。无论是初学者还是经验丰富的开发者,掌握SVN的基本操作都能显著提升团队的开发效率和代码管理能力。

    git和svn学习入门教程

    在“SVN文档-中文简体.pdf”中,你可以学习如何安装和配置SVN,以及如何使用基本的版本控制操作,如添加、提交、更新和回滚。 在选择Git还是SVN时,通常会考虑项目规模、团队协作模式以及个人偏好。对于大型项目和...

    SVN使用方法,新手入门

    【SVN 使用方法新手入门】 SVN,全称 Subversion,是一种版本控制系统,用于跟踪文件和目录的修改历史,便于团队协作和版本管理。本文主要介绍如何使用 SVN 的客户端工具 TortoiseSVN 进行基本操作。 ### 一、...

    SVN入门及配置使用

    ### SVN入门及配置使用 #### 一、SVN简介与背景 **SVN**,全称为 **Subversion**,是一款非常流行的版本控制系统。它能够帮助开发者有效地管理项目的源代码和其他类型的文件,支持版本回溯、历史变更追踪等功能。...

    SVN操作入门指南.pdf

    ### SVN操作入门指南知识点解析 #### 一、SVN简介及特性 SVN,全称Subversion,是一款开源的版本控制系统,旨在为文件和目录提供超越时间和空间的管理能力。与传统的文件服务器不同,SVN不仅能够存储文件,还能...

    SVN使用手册中文版快速入门

    下注:使用svn revert 提交你得修改 检验历史 svn log svn diff 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 svn cat svn list 关于历史的最后一个词 其他有用的命令 svn cleanup svn import 摘要 4. ...

    SVN 快速入门教程.pdf

    ### SVN 快速入门教程知识点概述 #### 一、软件下载 - **Subversion服务器程序**: 访问Subversion官方网站的二进制安装文件下载页面,寻找适用于Windows NT, 2000, XP and 2003系统的版本。以Apache 2.0或2.2为例,...

    SVN(Subversion)简易入门教程

    **SVN(Subversion)简介** SVN,全称Subversion,是一款开源的版本控制系统,用于管理和跟踪项目源代码的变化。它允许多个开发者在同一个项目上协同...希望这个简易入门教程能帮助你快速上手,成为SVN的熟练使用者。

    SVN入门资料(包括软件和入门教程)

    在SVN入门的过程中,掌握以下几个核心概念和操作至关重要: 1. **版本库(Repository)**:SVN的核心组件,存储所有项目文件及其历史版本的地方。开发者通过连接到版本库来存取和更新代码。 2. **工作副本...

    SVN 快速入门教程

    **SVN(Subversion)** 是一款...通过这个快速入门教程,您将能够理解和掌握SVN的基本概念和操作,从而更好地利用版本控制系统管理您的项目。实践中,不断熟悉和运用这些工具,将有助于提高团队的协作效率和代码质量。

    svn使用教程(入门必看)

    svn使用教程(入门必看) svn(Subversion)是一种版本管理工具,是cvs的继任者。目前,大多数开源软件都使用svn作为代码版本管理软件。 svn的主要特点: 1. 版本控制:svn可以记住每次上传到服务器的档案内容,...

    简单容易svn入门教程

    ** SVN入门教程 ** SVN,全称Subversion,是一种版本控制系统,用于管理代码、文档等文件的变更历史。在软件开发中,SVN扮演着至关重要的角色,它可以帮助团队协作,跟踪文件的修改,合并不同开发者的改动,并提供...

    svn使用基础培训

    ### SVN使用基础培训知识点 #### 一、配置管理工具SVN简介 1. **什么是SVN** Subversion(简称SVN),是一种分布式版本...以上内容全面覆盖了SVN的基础知识,从概念介绍到实际操作流程,适合初学者快速入门SVN。

    SVN 入门指南

    **SVN 入门指南** **一、什么是SVN** SVN,全称为Subversion,是一种版本控制系统,用于管理对软件项目源代码和其他文件的更改。它允许多人协作开发,同时跟踪每一次修改,确保团队成员之间的同步和代码一致性。...

    SVN入门使用.pptx

    svn客户端基本操作入门使用简单介绍PPT文档,适合小白哦!文档内容主要包括snv常用术语解释说明和svn常用操作。

Global site tag (gtag.js) - Google Analytics