tortoise SVN基本使用方法

来源:互联网 发布:游戏模型制作网络课程 编辑:程序博客网 时间:2024/05/05 17:29

        tortoise SVN是基于Subversion 的Windows开源客户端,在Windows用户中广泛使用。

一、tortoise SVN中的Trunks、Branches和Tags

在版本控制的系统中,我们经常需要对开发周期中的单独生命线作单独的修改,这条单独的开发生命线就可以称为Branches即分支。分支经常用于添加新的功能以及产品发布后的bug修复等,这样可以不影响主要的产品开发线以及避免编译错误等。当我们添加的新功能完成后可以将其合并到主干中。而Tags即标签主要用于项目开发中的里程碑,比如开发到一定阶段可以单独一个版本作为发布等。
SVN中的Branches以及Tags只是创建了指向某个版本的链接,而不会真正将此版本的内容复制到分支或者标签中,这样既可以节省空间,也可以很快速的创建。
为了便于创建分支和标签,我们习惯于将Repository版本库的结构布置为:/branches,/tags,/trunk。分别代表分支,标签以及主干。如下图所示。
还有一点值得注意的是,SVN不推荐在创建的Tag基础上Revision,这种情况应用Branches,因为Tag一般保持不变不作任何修改。
二、tortoise SVN中的基本概念
1、SVNCheckOut
本选项将从制定的版本仓库中check出用户所制定的版本至制定目录下。
2、SVN Commit
Commit将会把把自己工作目录中所做的修改提交到版本库中。
3、SVN Update
Update将从当前工作目录更新至版本仓库中存在的制定版本。
4、Revision Graph(版本分支图)

5、Rename(改名)

在本地工作目录中更改文件名,并且在Commit时将自动删除版本库中旧文件并加入更名后新文件。

6、Delete(删除)

SVN支持文件删除,而且操作简单,方便,选择要删除的文件,点击Delete,再把删除操作提交到服务器。

7、Revert(回滚)

如果你对工作拷贝做了一些修改,但是你又不想要了,那么你可以使用这个选项把所做的修改撤销。

8、GetLock/ReleaseLock(加锁/解锁)

如果你不想别人修改版本库中的某个文件的话,那么你就可以把这个文件进行加锁,这样可以保证只有你对这个文件有修改权。除非你释放了锁,否则别人不可能提交任何修改到配置库中。

9、Export(导出)

当我们需要发布一个稳定版本时,就可以使用这个功能将整个工程导出到某个文件夹,新的文件夹将不会包含任何版本信息了。

10、Relocate(版本库转移)

当我们版本库发生转移的时候就需要用到这个功能了。例如我原先的版本库是建在U盘上的,现在转移到(复制整个配置库文件夹)开发服务器上,使用https代替文件系统的访问。因此就需要将原来的工作拷贝的目标版本库重新定位到开发服务器上。

11、Resolved(解决冲突)

如果当前工作拷贝和版本库上的有冲突,不能自动合并到一起,那么当你提交修改的时候,tortoisesvn就会提示你存在冲突,这时候你就可以通过这个菜单项来解决冲突。冲突的解决有两种,一种是在两个冲突文件中选择一个,还有一种是手动解决冲突,对于文本文件,可以使用tortoiseSVN自带的工具,它会列出存在冲突的地方,然后你就可以和提交者讨论怎么解决这个冲突。

不管使用何种方式,当你已经解决了冲突之后,可以使用此选项告诉SVN冲突已解决,从而解除冲突。

12、Repo-Browser(查看当前版本库)

查看当前版本库,这是TortoiseSVN查看版本库的入口,通过这个菜单项,我们就可以进入配置库的资源管理器,然后就可以对配置库的文件夹进行各种管理,相当于我们打开我的电脑进行文件管理一样。

13、Add to Ignore List(添加到忽略列表)

可以通过此选项把某些文件加入版本控制忽略列表。

14、create/apply patch(添加、应用patch)

patch用于将暂时不提交的差异记录在patch文件中,patch文件仅记录与检出版本的差异性。

creat patch用于生成一个patch文件。

apply patch将检出版本中的文件改变为与creat patch时的状态一致。

15、diff(查看差异)

diff工具可用于查看本工作目录下文件与版本库文件的差异。

16、Branch/tag(创建分支或tag)

本选项可以把指定路径下的版本创建到一个新的目录结构下,并且新的路径必须是版本仓库中还不存在的路径。

17、Switch(切换分支)

将当前工作拷贝切换至另外一个分支中。

18、Merge(合并)

Merge有三种类型


其中第一种是将trunk合并至一个branch中,第二种是将一个branch合并回trunk中,第三种不常用。

三、创建Branch分支或者Tag标签

1、创建一个分支。

这个时候我们可以发现本地的trunk文件夹的SVN属性的URL已经被Switch到创建的版本的地址了:

3、执行SVN Update命令,可以看到本地branches文件夹下新增文件夹v1.0以及文件夹里面的文件v1.0。

四、修改分支和使用合并Merge功能

1、修改branches/v1.0下面的文件test.txt,添加一行modified in branch v1.0.然后签入到SVN服务器中:

2、将本地文件夹switch至对应的trunk地址:


3、修改trunk文件夹下的test.txt,添加一行modified in trunk.然后签入到SVN服务器中:

4、将分支合并到主干中,这也是在团队软件开发中我们经常要使用的功能。按照我们目前的情况,选择第二种:

5、选择v1.0:

6、然后如下:

7、在我们的这次合并中肯定会产生问题,因为我们对test.txt文件进行了两次修改,因而会产生冲突Conflict。手动的将其合并。

8、然后将trunk签入到版本库中:

9、至此,我们完成了从一个branch向trunk的合并。


参考网址:http://www.chinasb.org/archives/2011/04/1709.shtml

   http://blog.csdn.net/blackchoc/article/details/5521959

原创粉丝点击