`

TortoiseSVN 简明使用

阅读更多

先介绍下什么是 SubVersion,Subversion是新一代的版本控制工具,不仅可以管理程序源代码,也可以应用于其他协作管理数据的工作。

安装

你可以从 TortoiseSVN 官方站点下载最新版的 TortoiseSVN,中文汉化包可以从 SubVersion 中文站下载。下载之后,点击安装包,一路 next 下去即可。

tortoisesvn-installation

 

下载项目

在你硬盘的适当的位置,点击邮件,选择 SVN Checkout…

tortoisesvn-checkout

然后就会弹出一个 Checkout 选项对话框,输入远程项目目录和本地工作目录(这个得找建立SVNServer的人要)tortoisesvn-checkout-option

点击 OK,就会弹出一个远程服务器要求验证的对话框:

tortoisesvn-checkout-input-password

 

 

输入用户名和密码之后,点击 OK 就开始下载:

tortoisesvn-checkouting

提交修改

 

 

在你做了修改之后,你可以在项目文件夹下点击右键或者你修改的文件下点击右键,选择 SVN Commit…,这两者的区别在于,第一个可以一次提交你所做所有文件的修改,而第二个只是提交你所选的文件。

tortoisesvn-update-commit

点击 Commit 之后,就会弹出一个让你输入更改 log 的对话框:

tortoisesvn-commit

输入你所作的修改,然后点击 OK,就会开始向远程服务器提交修改:

tortoisesvn-commiting

导入项目

如果翻译插件或者写了插件,想提交到远程服务器,选择该文件夹,点击右键,选择 TortoiseSVN => Import…

tortoisesvn-import

然后就会弹出一个导入选项对话框,属于远程服务器地址和注释,如果你前面没有保存密码,这里可能再次输入你在 Google Code 的密码。点击 OK,本地文件就会被导入远程服务器。

tortoisesvn-importing

 

注:如果SVN服务器上的文件夹未存在,则你可以遵照“导入操作”进行导入文件,上传到SVN服务器。以后要修改SVN的文件时,你得首先创建新的文件夹,然后“下载项目”到此空文件夹。

你只能将文件取出到一个空目录里。如果你想取出刚汇入的文件,Subversion将报错。你只能将文件取出到另一个目录或先删除已经存在的源文件再执行取出。

 

 

 

 

经验小结: 
      1.如果操作的文件之前还未提交,而你又想把文件提交到新的分支上,记得一定要选择切换 
      2.SVN分支的管理实际上就是把不同的分支用不同的文件保存,因此你在取得新版本的时候会发现,不同分支的最新文件也会被获取下来。


      创建tag操作,相当于把当前的代码版本复制一份到其他地方,然后以这个地方为出发点进行新的开发,与原来位置的版本互不干扰。 
      对于branches、tags、trunk这三个目录,并不是subversion必需的,而是被总结的一种良好的团队开发习惯,其使用方法为: 
      1.开发者提交所有的新特性到主干。 每日的修改提交到/trunk:新特性,bug修正和其他。 
      2.这个主干被拷贝 (注:拷贝的方法-单击“鼠标右键”->TortoiseSVN->Branch/tags...->To URL中路径/branches/1.0) 到“发布”分支。 当小组认为软件已经做好发布的准备(如,版本1.0)然后/trunk会被拷贝到/branches/1.0。

      2.1此时本地的branches文件夹中尚未有trunk的拷贝,必须与服务器同步下
      3.项目组继续并行工作,一个小组开始对分支进行严酷的测试,同时另一个小组在/trunk继续新的工作(如,准备2.0),如果一个bug在任何一个位置被发现,错误修正需要来回运送 (即:当trunk中的文件进行修改后,测试组人员在branches中可以通过:单击“鼠标右键”->TortoiseSVN->Switch->To URL中的地址一般会自动指向trunk文件夹,示意接下来将同步trunk文件夹下修改过的文件到服务器及本地的branches文件夹) 。然而这个过程有时候也会结束,例如分支已经为发布前的最终测试“停滞”了。 
      4.分支已经作了标签并且发布,当测试结束,/branches/1.0作为引用快照已经拷贝到/tags/1.0.0,这个标签被打包发布给客户。

      4.1分支作标签发布到tag文件夹方法和trunk文件夹拷贝到branches/1.0做法相同
      5.分支多次维护。当继续在/trunk上为版本2.0工作,bug修正继续从/trunk运送到/branches/1.0,如果积累了足够的bug修正,管理部门决定发布1.0.1版本:拷贝/branches/1.0到/tags/1.0.1,标签被打包发布。 
  一般建立最初的repository时,就建好这三个目录,把所有代码放入/trunk中,如:要将project1目录下的代码导入repository,project1的结构就是:project1/branches,project1/tags,project1/trunk,project1/trunk/food.c,project1/trunk/egg.pc……,然后将project1目录导入repository,建立最初的资料库。然后export回project1,作为本地工作目录。

      6..多人单项目,三个文件夹的作用又不一样了:
           单人维护一个主流版本.放于trunk目录里面;
           多人开发通过单人或者是多人维护代表不同的模块.每个模块就是一个分支brances;

           在一定时期,各模块都有初步版本,则放于trunk中,然后由项目主管进行模块合并成整体,给测试人员检测;
           某个时期出现了一个稳定版本,就标记为一个发布版本,tags来做标记.

分支/标记

 

版本控制系统的一个特性是能够把各种修改分离出来放在开发品的一个分割线上。这条线被称为分支。分支经常被用来试验新的特性,而不会对开发有编译错误的干扰。当新的特性足够稳定之后,开发品的分支就可以混合回主分支里(主干线).

版本控制系统的另一个特性是能够标记特殊的版本(例如某个发布版本),所以你可以在任何时候重新建立一个特定的构件和环境。这个过程被称作标记

Subversion does not have special commands for branching or tagging, but uses so-called “cheap copies” instead. Cheap copies are similar to hard links in Unix, which means that instead of making a complete copy in the repository, an internal link is created, pointing to a specific tree/revision. As a result branches and tags are very quick to create, and take up almost no extra space in the repository.

创建一个分支或标记

如果你用推荐的目录结构导入了一个工程,那么创建分支或标记就非常简单:

图 5.33. 分支/标记对话框


在你当前的工作副本中给你你想要复制的分支或标记选择一个目录,然后选择命令TortoiseSVN → 分支/标记...

默认的目标URL将会是你当前工作副本所处的源URL。你必须给你的分支/标记编辑一个新路径。来取代

http://svn.collab.net/repos/ProjectName/trunk

你可以使用这样的设置

http://svn.collab.net/repos/ProjectName/tags/Release_1.10

如果你忘记了你上一次使用的命名约定,可以用鼠标右键打开版本库浏览器来察看已经存在的版本库结构。

现在你必须选择要复制的源位置。在这里你有三个设置选项:

版本库中的最新版本

新分支直接从仓库中的最新版本里复制出来。不需要从你的工作副本中传输任何数据,这个分支的建立是非常快的。

在版本库中指定具体的版本

在仓库中直接复制建立一个新分支同时你也可以选择一个旧版本。假如在你上周发布了项目时忘记了做标记,这将非常有用。如果你记不起来版本号,通过点击鼠标右键来显示版本日志,同时从这里选取版本号。和上次一样不需要从你的工作副本中传输任何数据,这个分支建立起来是非常快的。

工作副本

新的分支是一个完全等同于你的本地工作副本的一个副本。如果你更新了一些文件到你的工作副本的某个旧版本里,或者你在本地做出了修改,这些改变将准确无误的进入副本中。自然而然地这种综合的标记会包含正在从工作副本传输到版本库的数据,如果这些数据还不存在的话。

如果你想把你的工作副本自动切换到最新创建的分支,使用转换工作副本至新分支/标记 选择框.但是如果你打算这么做,首先要确认你的工作副本没有被修改。如果有修改的话,当你转换后这些修改将会混合进你的工作副本分支里。

按下确认提交新副本到版本库中。别忘了提供一条日志信息。需要注意的是这个副本是在版本库内部创建的。

分享到:
评论

相关推荐

    TortoiseSVN简明使用教程,教你很快熟悉这个版本控制工具

    在开始使用TortoiseSVN前,你需要先下载并安装它。安装过程中,系统会自动关联SVN相关的文件类型,如.svn等。安装完成后,你可以在Windows资源管理器的右键菜单中看到TortoiseSVN的相关选项。 2. **创建仓库与克隆...

    TortoiseSVN简明教程,图解教程

    TortoiseSVN简明教程,图解教程TortoiseSVN简明教程,图解教程TortoiseSVN简明教程,图解教程TortoiseSVN简明教程,图解教程TortoiseSVN简明教程,图解教程TortoiseSVN简明教程,图解教程

    TortoiseSVN简明教程(中文).pdf

    ### TortoiseSVN简明教程知识点汇总 #### 一、TortoiseSVN简介 - **定义**: TortoiseSVN是一款免费开源的Subversion版本控制系统的客户端,它可以帮助用户管理和追踪文件及目录的变化历程。 - **特点**: - 超越...

    tortoisesvn简单使用指南

    ### TortoiseSVN简明使用教程 #### 一、TortoiseSVN简介与安装流程 TortoiseSVN是一款非常流行的Subversion (SVN) 客户端工具,它以图形界面的方式嵌入Windows资源管理器,使用户能够轻松地进行版本控制操作。无论...

    TortoiseSVN简明教程.pdf

    ### TortoiseSVN简明教程知识点汇总 #### 一、TortoiseSVN简介 - **定义**: TortoiseSVN是一款免费开源的Subversion版本控制系统的客户端工具,它能够帮助用户管理和追踪文件及目录的变化历史。 - **核心功能**: -...

    TortoiseSVN简明教程

    《TortoiseSVN简明教程》是一份旨在帮助用户快速掌握TortoiseSVN使用的教程文档。TortoiseSVN是一款基于Subversion(SVN)版本控制系统,并且专为Windows用户设计的图形化界面工具。它使得在本地和远程仓库之间管理...

    TortoiseSVN简明手册

    【TortoiseSVN简明手册】是一份详细介绍如何使用TortoiseSVN这款版本管理工具的手册。TortoiseSVN适用于多人协同开发或独立开发的场景,它提供了丰富的功能来帮助用户管理代码版本。 **文件的追踪 (update与commit)...

    SVN客户端简明使用说明

    ### SVN客户端简明使用说明 #### 一、客户端安装与配置 **1.1 客户端安装** SVN客户端的安装主要包括两部分:TortoiseSVN客户端本身以及中文汉化包。 - **安装TortoiseSVN**: 运行`TortoiseSVN-1.7.10.23359-win...

    TortoiseSVN服务器与客户端软件及参考资料.zip

    “TortoiseSVN-1.7.4-zh_CN[1].pdf”和“TortoiseSVN简明教程.pdf”是TortoiseSVN的用户手册和教程,提供了详细的操作指南,包括基本概念、常用命令和高级功能的解释。用户可以从中学习如何有效地使用TortoiseSVN...

    SVN 中文帮助文档 TortoiseSVN_zh_CN.chm 1.5.5版本

    非常简明,实用 SVN 中文帮助文档 TortoiseSVN_zh_CN.chm 1.5.5版本 CHM 格式 SVN 中文帮助文档 TortoiseSVN_zh_CN.chm 1.5.5版本 CHM 格式 SVN 中文帮助文档 TortoiseSVN_zh_CN.chm 1.5.5版本 CHM 格式

    Tortoise SVN简明操作指南

    本文是我经过反复实践、探索、总结出来的简明扼要的TortoiseSVN使用指南,通俗易懂,无须基础也能学习,图文并茂,详略得当,可操作性强,对日常工作中常用的功能做了非常详尽的描述,同时也不失全面,主要功能基本...

    SVN教程+TortoiseMerge教程

    5. **TortoiseSVN简明教程.pdf** 这个简明教程可能是针对TortoiseSVN的新手用户的快速入门指南,涵盖了一些基本操作,如如何安装、设置SVN仓库、检出项目、提交更改、查看版本历史等,帮助用户快速上手。 6. **...

Global site tag (gtag.js) - Google Analytics