Tortoises SVN 教程

jopen 12年前

1.  TortoiseSVN 简介

版本控制是管理信息修改的艺术,它一直是程序员最重要的工具,程序员经常会

花时间作出小的修改,然后又在某一天取消了这些修改,想象一下一个开发者并行工

作的团队 - 或许是同时工作在同一个文件!- 你就会明白为什么一个好的系统需要

管理潜在的混乱。

2.  什么是 TortoiseSVN

 TortoiseSVN Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。文件保存在中央版本库,除了能记住文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将Subversion 和版本控制系统看作一种“时间机器”。

某些版本控制系统也是软件配置管理(SCM)系统,这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性 - 比如,对编程语言的支持,或者提供程序构建工具。不过 Subversion 并不是这样的系统;它是一个通用系统,可以管理任何类型的文件集,包括源代码。

 3.  名词解释

 3.1 检出工作副本

 你的版本库就像是一台时间机器,它记录了所有提交的修改,允许你检查文件或目录以及相关元数据的历史。通过一个Subversion 命令你可以根据时间或修订号取出一个过去的版本(或者恢复现在的工作拷贝),然而,有时候我们只是想看看历史而不想回到历史

 3.2 提交修改

 可以理解为上传修改文件的记录,就是把工作副本里面修改过的文件的记录上传到版本库里面。

3.3 更新工作副本

 可以理解为下载最新版本库文件的记录,就是把版本库里面最新上传的文件记录下载到工作副本里面。

3.4 锁定—修改—解锁

 许多版本控制系统使用“锁定—修改—解锁”机制解决这种问题,在这样的模型里,在一个时间段版本库的一个文件只允许被一个人修改。首先在修改之前,Harry 要“锁定”住这个文件,锁定很像是从图书馆借一本书,如果Harry 锁住这个文件,Sally 不能做任何修改,如果Sally 想请求得到一个锁,版本库会拒绝这个请求。Harry 结束编辑并且放开这个锁之前,她只可以阅读文件。Harry 解锁后,就要换班了,Sally 得到自己的轮换位置,锁定并且开始编辑这个文件。

Tortoises SVN 教程

4.  TortoiseSVN 安装

安装TortoiseSVN 软件,鼠标左键双击”TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi”,

如图所示进行安装。

Tortoises SVN 教程

Tortoises SVN 教程

Tortoises SVN 教程

Tortoises SVN 教程

 出现提示,重新启动计算机安装完毕。

 

注:如果有需要使用中文版可以加装中文语言包,以下是以中文界面作为操作说明。

 

5.  安装TortoiseSVN遇到问题解决方法

 

 

安装TortoiseSVN 不成功出现错误提示“Service "VisualSVNServer" failed to start. Verifythat you have sufficient privileges to start system services.”,解决方法:这是Windows Installer 的问题,重新安装Windows Installer 即可,如有安装问题请与管理员联系。 

6.  TortoiseSVN 使用

6.1 检出工作副本

大多数时候,你会使用 检出 从版本库取出一个新拷贝开始使用Subversion,这样会在本机创建一个项目的“本地拷贝”。选择一个存放工作副本目录。右键点击弹出右键菜单,选择“SVN 检出

注:你首先要检出主线(trunk),这样版本库才知道你要接受管理的程序在磁盘哪个目录。看上去什么都没有发生,但实际上这个操作让版本库把你的项目目录纳入管理了在你硬盘的适当的位置(例:e:\yfb),目标文件夹点击右键,选择 SVN  检出…”

Tortoises SVN 教程

然后就会弹出一个  检出 选项对话框,输入远程项目目录和本地工作目录,例:Ft-llb 服务器的svn 目录下的yfb 版本库,远程项目地址为:https://ft-llb/svn/yfb/

Tortoises SVN 教程

点击确认,就会弹出一个远程服务器要求验证的对话框,输入正确的用户名和密码。

Tortoises SVN 教程

Tortoises SVN 教程

检出成功后,会在“检出”目录出现绿色小勾,“检出”根目录也会出现.svn 隐藏目录。

Tortoises SVN 教程

6.2 提交修改  

 将你对工作副本的修改发送给版本库,称为提交修改。但在你提交之前确保你的工作副本是最新的。你可以直接使用 Svn 更新,或者,你可以先使用“TortoiseSVN --> 检查修改”看看哪些文件在本地或是服务器上已经有了改动。

如果你的工作副本是最新的,并且没有冲突,你就已经为提交做好准备了,选择你要的文件和/或文件夹,然后“svn 提交 ......

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

Tortoises SVN 教程

点击 Svn 提交 之后,就会弹出一个让你输入更改 “日志” 的对话框:

Tortoises SVN 教程

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

Tortoises SVN 教程

提交文件成功!返回信息!“完毕!”表示文件已成功提交。点击“确认”按钮确定更新文件成功。

 

6.3 更新工作副本  

 

更新多个项目在Subversion 还不是原子操作,所以TortoiseSVN会首先找到版本库的HEAD修订版本,然后将所有项目更新到特定修订版本,防止出现混合修订版本的工作副本。如果只有一个项目被选中更新,或选中的项目来自不同的版本库,TortoiseSVN 只会更新到HEAD

在工作副本里面选定文件夹或文件,右键菜单 Svn更新。

Tortoises SVN 教程

出现一个对话框,输入正确的用户名和密码即可向版本库提交你想更新文件的信息。

Tortoises SVN 教程

更新文件成功!返回信息!“Completed”表示文件已成功更新;“于版本:17表示更新文件版本号为3。点击“确认”按钮确定更新文件成功。

Tortoises SVN 教程

 6.4 锁定  

选择工作副本中你想要获取锁定的文件,然后选择命令“TortoiseSVN --> 获取锁定…”

Tortoises SVN 教程

出现一个对话框,允许你输入注释,这样别人知道你为什么锁定这个文件。注释是可选的,并且只用于基于Subversion 的库。选择需要锁定的文件在复选框打勾,点击“确定”按钮锁定选择的文件。

Tortoises SVN 教程

出现一个对话框,输入正确的用户名和密码即可向版本库提交你想锁定文件的信息。

Tortoises SVN 教程

锁定文件成功!返回信息!“被llb锁定”表示文件已被llb 用户锁定;“E:\yfb\liulebin\fdsf.txt”表示锁定文件的名称。点击“确认”按钮确定锁定文件成功。

Tortoises SVN 教程

6.5 释放锁定(取消锁定)  

选择工作副本中你想要取消锁定的文件,然后选择命令“TortoiseSVN ---> 释放锁定…”

Tortoises SVN 教程

出现一个对话框,选择需要取消锁定的文件在复选框里打勾,点击“确定”按钮。

Tortoises SVN 教程 

出现一个对话框,输入正确的用户名和密码即可向版本库提交你想取消锁定文件的信息。

Tortoises SVN 教程

取消锁定文件成功!返回信息!“已解触锁定!”表示文件已被解除锁定;“E:\yfb\liulebin\fdsf.txt”表示释放锁定文件的名称。点击“确认”按钮确定锁定文件成功。

Tortoises SVN 教程

7.  其它功能  

 7.1 网页浏览

 你可以使用该地址 https://ft-llb/svn/yfb/在网页上浏览项目,同样需要和前面一样的用户名、密码。

Tortoises SVN 教程

7.2 SVN还原 

取消上一次的操作(只针对客户端,服务端不做改动)

Tortoises SVN 教程

Tortoises SVN 教程

7.3 版本库浏览

Tortoises SVN 教程

Tortoises SVN 教程

7.4 版本示意图 

Tortoises SVN 教程

7.5 显示日志

 查看版本日志及不同版本间相互比较

Tortoises SVN 教程

Tortoises SVN 教程

Tortoises SVN 教程

7.6 检查修改

同服务器上的项目版本进行比较,并可做相应的修改。

Tortoises SVN 教程

Tortoises SVN 教程

8 小技巧  

工作副本下.svn 目录被删除了怎么办?

工作拷贝中的任何一个目录包括一个名为.svn 管理区域,通常列表操作不显示这个目录,

但它仍然是一个非常重要的目录,无论你做什么?不要删除或是更改这个管理区域的任何东

西,Subversion 使用它来管理工作拷贝。

如果你不小心删除了子目录.svn,最简单的解决办法是删除包含的目录(普通的文件系统删

除,而不是svn delete),然后在父目录运行svn svn 更新,Subversion 客户端会重新下载你

删除的目录,并包含新的.svn