TortoiseSVN简易使用手册

上传人:第** 文档编号:35211328 上传时间:2018-03-11 格式:DOC 页数:20 大小:290KB
返回 下载 相关 举报
TortoiseSVN简易使用手册_第1页
第1页 / 共20页
TortoiseSVN简易使用手册_第2页
第2页 / 共20页
TortoiseSVN简易使用手册_第3页
第3页 / 共20页
TortoiseSVN简易使用手册_第4页
第4页 / 共20页
TortoiseSVN简易使用手册_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《TortoiseSVN简易使用手册》由会员分享,可在线阅读,更多相关《TortoiseSVN简易使用手册(20页珍藏版)》请在金锄头文库上搜索。

1、SVN 介绍 什么是 SVN / TORTOISESVN? SVN 是 Subversion 的缩写,Subversion 是一种开源的版本控制系统,可以超越时间 的管理文件和目录。Subversion 将文件保存在中央的 repository(版本库),除了能记住 文件和目录的每次修改以外,版本库非常像普通的文件服务器。你可以将文件恢复到过去 的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。而 TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,通过 TortoiseSVN 将本地的配置项(文 档、源码、工具)提交到版本库中或从版本库中检出配置项

2、。什么是版本库? Subversion 是一种集中的分享信息的系统,它的核心是版本库,它储存所有的数据, 版本库按照文件树形式储存数据包括文件和目录,任意数量的客户端可以连接到版本库, 读写这些文件。通过写,别人可以看到这些信息;通过读数据,可以看到别人的修改。版 本库是另一种文件服务器,而不是你常见的那一种。最特别的是Subversion 会记录每一次 的更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。当一个 客户端从版本库读取数据时,通常只会看到最新的版本,但是客户端也可以去看以前的任 何一个版本。一个典型的客户 /服务器系统 版本模型 所有的版本控制系统都需要解决这

3、样一个基础问题:怎样让系统允许用户共享信息, 而不会让他们因意外而互相干扰?版本库里意外覆盖别人的更改非常的容易。 这里只介绍目前我们使用的那种类型:拷贝-修改-合并 方案 Subversion,CVS 和一些版本控制系统使用拷贝-修改-合并模型,在这种模型里,每 一个客户连接项目版本库建立一个个人工作拷贝(版本库中文件和目录的本地映射)。用 户并行工作,修改各自的工作拷贝,最终,各个私有的拷贝合并在一起,成为最终的版本, 这种系统通常可以辅助合并操作,但是最终要靠人工去确定正误。 这是一个例子,Harry 和 Sally 为同一个项目各自建立了一个工作拷贝,工作是并行的, 修改了同一个文件

4、A,Sally 首先保存修改到版本库,当 Harry 想去提交修改的时候,版本 库提示文件 A 已经过期,换句话说,A 在他上次更新之后已经更改了,所以当他通过客户 端请求合并版本库和他的工作拷贝之后,碰巧 Sally 的修改和他的不冲突,所以一旦他把 所有的修改集成到一起,他可以将工作拷贝保存到版本库。 拷贝-修改-合并 方案 拷贝-修改-合并 方案(续)但是如果 Sally 和 Harry 的修改交迭了该怎么办?这种情况叫做冲突,这通常不是个 大问题,当 Harry 告诉他的客户端去合并版本库的最新修改到自己的工作拷贝时,他的文 件 A 就会处于冲突状态:他可以看到一对冲突的修改集,并手工

5、的选择保留一组修改。需 要注意的是软件不能自动的解决冲突,只有人可以理解并作出智能的选择,一旦 Harry 手 工的解决了冲突(也许需要与 Sally 讨论),他就可以安全的把合并的文件保存到版本库。 拷贝-修改-合并模型感觉是有一点混乱,但在实践中,通常运行的很平稳,用户可以 并行的工作,不必等待别人,当工作在同一个文件上时,也很少会有交迭发生,冲突并不 频繁,处理冲突的时间远比等待解锁花费的时间少。 SUBVERSION 实战 工作拷贝 一个 Subversion 工作拷贝是你本地机器一个普通的目录,保存着一些文件,你可以任 意的编辑文件,而且如果是源代码文件,你可以像平常一样编译,你的工

6、作拷贝是你的私 有工作区,在你明确的做了特定操作之前,Subversion 不会把你的修改与其他人的合并, 也不会把你的修改展示给别人。 一个工作拷贝也包括一些由 Subversion 创建并维护的额外文件,用来协助执行这些命 令。通常情况下,你的工作拷贝每一个文件夹有一个以.svn 为名的文件夹,也被叫做工作 拷贝管理目录,这个目录里的文件能够帮助 Subversion 识别哪一个文件做过修改,哪一个 文件相对于别人的工作已经过期了。一个典型的Subversion的版本库经常包含许多项目的文件(或者说源代码),通常每 一个项目都是版本库的子目录,在这种安排下,一个用户的工作拷贝往往对应版本库

7、的的 一个子目录。 修订版本 一个svn commit 操作可以作为一个原子事务操作发布任意数量文件和目录的修改, 在你的工作拷贝里,你可以改变文件内容、删除、改名和拷贝文件和目录,然后作为一个 整体提交。 在版本库中,每一次提交被当作一次原子事务操作:要么所有的改变发生,要么都不 发生,Subversion 努力保持原子性以应对程序错误、系统错误、网络问题和其他用户行为。 每当版本库接受了一个提交,文件系统进入了一个新的状态,叫做一次修订 (revision),每一个修订版本被赋予一个独一无二的自然数,一个比一个大,初始修订号 是 0,只创建了一个空目录,没有任何内容。 可以形象的把版本库看

8、作一系列树,想象有一组修订号,从 0 开始,从左到右,每一 个修订号有一个目录树挂在它下面,每一个树好像是一次提交后的版本库“快照”。 版本库 需要特别注意的是,工作拷贝并不一定对应版本库中的单个修订版本,他们可能包含 多个修订版本的文件。举个例子,你从版本库检出一个工作拷贝,最近的修订号是 4: calc/Makefile:4integer.c:4 button.c:4 此刻,工作目录与版本库的修订版本 4 完全对应,然而,你修改了button.c 并且提交 之后,假设没有别的提交出现,你的提交会在版本库建立修订版本 5,你的工作拷贝会是 这个样子的: calc/Makefile:4inte

9、ger.c:4button.c:5 假设此刻,Sally 提交了对integer.c 的修改,建立修订版本 6,如果你使用svn update 来更新你的工作拷贝,你会看到: calc/Makefile:6integer.c:6button.c:6 Sally 对integer.c 的改变会出现在你的工作拷贝,你对button.c 的改变还在,在这个 例子里,Makefile 在 4、5、6 修订版本都是一样的,但是 Subversion 会把他的Makefile 的修订号设为 6 来表明它是最新的,所以你在工作拷贝顶级目录作一次干净的更新,会使 得所有内容对应版本库的同一修订版本。 图标重载

10、 显示重载图标的资源管理器现在你已经从Subversion版本库中检出了一份工作复本,你可以在资源管理器中看一 下这些文件的图标有什么变化。根据文件的Subversion状态的不同,重载的图标也不同。 :一个新检出的工作复本使用绿色的对勾做重载。表示 Subversion 状态正常. :在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。 通过这种方式,你可以很容易地看出哪些文件从你上次更新工作复本后被修改过, 需要被提交。 :如果在提交的过程中出现了冲突图标变成黄色感叹号。 :如果你给一个文件设置了svn:needs-lock属性,Subversion 会让此文件只读,直

11、 到你获得文件锁。只读文件具有这个重载图标来表示你必须在编辑之前先得到一个 锁。 :如果你拥有了一个文件的锁,并且 Subversion 状态是正常,这个重载图标就提醒 你如果不使用该文件的话应该释放锁,允许别人提交对该文件的修改。 :这个图标表示当前文件夹下的某些文件或文件夹已经被计划从版本控制中删除,或 是该文件夹下某个受控的文件丢失了。 :加号告诉你有一个文件或是目录已经被计划加入版本控制。 TORTOISESVN 的使用 版本控制下一个目录的右键菜单所有的 TortoiseSVN 命令都是通过 windows 资源管理器的右键菜单执行。右键点击一 个文件或者文件夹,大多数菜单项都能够直

12、接显示。一个命令是否显示取决于这个文件或 文件夹或者它们的父文件夹是否受版本控制,你也可以将 TortoiseSVN 的菜单作为资源管 理器菜单的一部分。 版本控制下的一个目录的右键拖拽菜单 在工作拷贝里右键拖拽文件或目录到新的位置,或者右键拖拽一个非版本控制的文件 或文件夹到一个版本控制目录下的时候,右键菜单还能够出现其他的命令。 导入 将你的项目导入到版本库中 现在进入资源管理器,选择你的项目的顶层目录,右击打开上下文菜单。选择命令 TortoiseSVN import .,它会弹出一个对话框:在这个对话框中,输入你的项目导入到版本库的 URL. 当你点击确认时,TortoiseSVN 会

13、导入包含所有文件的完整目录树到版本库。如前所 述,你导入的文件夹名称不会在版本库中出现,只有这个文件夹的内容会在版本库中出现。 现在这个工程就存贮在版本库,被版本控制。请注意,你导入的文件夹没有被版本控制! 你需要检出刚才导入的版本,以便获得受版本控制的工作目录。 检出工作拷贝 为了得到一个工作拷贝,需要进行从版本库检出的操作。 在 Windows 资源管理器里选择一个存放工作拷贝的目录。右键点击弹出右键菜单, 选择 SVN checkout命令。然后就会看到下面的对话框:如果输入一个并不存在的目录名,那么这个名字的目录就会被创建出来。 (注意:你应该只检出到一个空的目录。如果你要将你的源代码

14、树检出到与你导入它 们时相同的目录,Subversion会给出一个错误信息它不会用已受控的文件覆盖已经存 在的但未受控的文件。你必须检出到一个不同的目录或是先将已经存在的源代码树删 除。) 如果你只希望检出最顶层的文件夹而忽略子文件夹,请选中只检出顶层文件夹复选框。 如果项目含有外部项目的引用,而这个引用你不希望同时检出,请选中忽略外部的复 选框。 强烈建议你只检出你需要修改的那部分目录树。如果你在 URL 中指定了目录树的父路 径,你的硬盘有可能被塞满,因为你将会得到整个版本库树的复本,包括项目所有的分支 和标签(tag)! 提交工作修改 将你对工作复本的修改发送给版本库,称为提交修改。但在

15、你提交之前要确保你的工 作副本是最新的。你可以直接使用右健SVN update,或者,你可以先使用TortoiseSVN check for modificatioms看看哪些文件在本地或是服务器上已经有了改动。 如果你的工作复本是最新的,并且没有冲突,你就已经为提交做好准备了,选择你要 提交的文件和/或文件夹,然后SVN commit. 提交对话框将显示每个被改动过的文件,包括新增的、删除的和未受控的文件。如果 你不想改动被提交,只要将该文件的复选框的勾去掉就可以了。如果你要加入未受控的文 件,只要勾选该文件把它加入提交列表就可以了。 拖动:你可以将文件从别的地方拖动到提交对话框,只要工作复

16、本是由同一版本库中 检出就可以了。 (注意:确保输入描述你所提交的修改内容的日志信息。这可以帮你回顾做了什么, 什么时候做的。信息的内容可长可短。这样可以帮助别的开发人员或是三个月后的自己来 了解你此时所做的修改。 ) 在按下 OK 之后,会出现一个对话框显示提交的进度。 进度对话框使用颜色代码来高亮显示不同的提交行为。 蓝色:提交一个修改。 紫色:提交一个新增项。 深红:提交一个删除或是替换。 黑色:所有其他项。 更新你应该定期地确保别人作的修改与你的工作复本可以整合。从服务器上获取改动到你 本地复本的过程称为更新。更新可以针对一个文件、几个选中的文件或是递归整个目录层 次。要进行更新操作,请选择要更新文件和/或路径,右击选择右键菜单中的 TortoiseSVN 更新。会弹出一个窗口显示更新的进度。别人作的修改将合并到你的文件中,你所做的 修改会被保留。版本库受更新操作的影响。 进度对话框使用颜色代码来高亮不同的更新行为: 紫色:新项已经增加到你的工作副本中。 深红:你的工作副本中删除了多余项,或是你的工作副本中丢失的项被替换。 绿色:版本库中的

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 质量控制/管理

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号