版本控制软件——tortoiseSVN的基础使用
零 基本功能介绍... 2
一 安装及下载client端... 2
二 登陆和文件下载... 2
三 新增档案及目录到服务器中... 4
四 文件对比... 13
4.1 文件回溯... 13
4.2 历史版本对比... 15
五 取消绑定
六 现在文件如何和服务器关联
常见的版本控制软件有VSS、CVS和SVN
VSS(Visual Source Safe)为微软的产品,较为易学易用,使用微软的产品进行开发通常都用这个,但是VSS只能在windows平台上运行,并且不是免费软件,安全性也不高,因此应用并不太广泛。
CVS(Concurrent Version System)是免费开源的配置管理工具,其源代码和安装文件都可以免费下载。由于其简单易用、功能强大,跨平台,支持并发版本控制,而且免费,它在全球中小型软件企业中得到了广泛使用。不过CVS的部署比VSS要复杂一些。
SVN(Subversion)作为CVS的重写版和改进版,其目标就是作为一个更好的版本控制软件,取代CVS.总的来说,CVS在发展的过程中逐渐失去优势,已经不再适合现代开发,目前,绝大多数CVS服务已经改用SVN.
目前流行的Google Code开源项目托管平台就是使用SVN进行版本控制。
零 基本功能介绍和服务器架设
同步不状态,为文件夹左下角有一个对勾
未同步状态,为文件夹右下角有一个叹号。
我们称用来存放上传档案的地方就做Repository。第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到Repository上面。日后,当您有任何修改时,都可以上传到 Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVN server的意思。针对每次的commit,SVN server都会赋予他一个新的版本。同时,也会把每次上传的时间记录下来。日后,因为某些因素,如果您需要从Repository下载曾经提交的档案。您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。如果忘记了版本,还是可以靠记忆尝试取得某个日期的版本。
SVN的存放档案方式是采用差异备份的方式。也就是说,他只会备份有不同的地方。所以很省硬盘空间。此外,他也可以针对所谓的非文字文件进行差异备份
怎么样在Windows下面建立SVN Repository?
假设您已经安装前面所提及的TortoiseSVN这套软件,现在我们先告诉您如何用自己的硬盘或是随身碟当作SVN Repository的存放地点。如果您只想知道如何存取一个已经建立好的SVN Server上面的Repository,请直接跳过本节。
假设您的要放置Repository的地方是E槽。您需要先建立一个空的目录。以下面的例子而言,我们在E槽下面建立了一个名为svn_repo的目录。 SVN并没有限定Repository目录名称。您可以建立任何您自己喜欢的名称。但是,强烈建议勿使用非英文的档名(如中文或日文)。
透过您的档案管理员,在E:\svn_repo的Icon上面,按下鼠标右键后,选择TortoiseSVN->Create repository here。
接着,您会看到如下的一个窗口,这个窗口主要是问您,您希望使用的Repository数据库格式是FSFS还是BDB。基本上,请选择FSFS就可以了。按下OK按钮后,您将可以看到下一个画面。
这就表示您的SVN repository已经成功的建立了。接下来就是要把您的档案备份进来。日后,只要需要使用这个repository,我们就可以使用 file:///E:/SVN_REPO表示它。SVN就是透过这种URL的方式到如何与Repository取得联系。各种URL的格式如下:
file:///磁盘驱动器|/repository所在目录/子目录
http://账号@服务器名称/
repository所在目录/子目录
https://账号@服务器名称/
repository所在目录/子目录
svn+ssh://账号@服务器名称/
repository所在目录/子目录
其中,http表示使用一般的超文字传输通讯协议。https表示使用加密的超文字传输通讯协议。svn+ssh表示透过SSH加密通讯的管道,进行存取。
一
安装及下载client端
TortoiseSVN的官方下载地址是
http://tortoisesvn.net/downloads ,普通Windows用户下载32位软件即可,下载地址后面还有中文语言包(Language packs)提供,安装完后可以将TortoiseSVN的界面编程简体中文。
更为详细的TortoiseSVN使用帮助,请参考TortoiseSVN中文手册。
下载TortoiseSVN-1.8.8.25755-win32-svn-1.8.10,点击安装,几乎点击next就可以。安装完成后右击会出现,如下图。大部分的TortoiseSVN的操作都是透过档案管理员及鼠标右键就可以完成了。
二
登陆和文件下载
文件下载之前,管理员必须分配给使用者权限,权限是按文件夹分配的,没新建一个文件夹,管理员必须重新分配一次使用权限。
1新建文件夹,比如working,进入文件夹,点击右键——>SVN
ckeckout——>输入用户名和密码(只用输入一次)
2 URL of repository 输入服务器地址https://192.168.5.3/svn/TFT.点击右边选择要下载的文件,点击OK,如图2
checkout directory 选择本地保存地址
checkout depth 有以下几个选项full
recursive文件夹递归,immediate children,only file children,only this item
SVN关联的的核心是目录一致,关联是一定要对应位置一致。
3 点击OK,成功效果如图,38为下载日志的编号,在本地文件夹中就会有下载的文件了。
现在会看到working目录下面多了一个名为.svn的目录(这个目录是隐藏的,如果您的档案管理员没有设定可以看到隐藏目录,您将无法看到它) 。
SVN会在您的工作目录下,以及其子目录下建立这个.svn的子目录。由于,原来的repository是空的,所以我们现在的working目录也是空的。如果您现在checkout的是一个已经有内容的repository,您将会看到working目录下面现在多了许多目录及档案。
如果您要在一个已经存在的SVN Server上面checkout出上面的档案,您只需要给定正确的URL以及working目录的名称。就可以取得指定的档案及目录了。
三
新增档案及目录到服务器中
假设您开发的程序将放在前面建立的working目录下面的my_ prj子目录。如下所示:
3.1假设您已经编辑好档案,准备把他们放到SVN的repository中。您需要在my_prj目录的icon上面,按鼠标右键,并且选择TortoiseSVN->Add:
3.2在点击SVN commit,TortoiseSVN会把准备要加入的档案及目录,显示给您看。打勾的就是等下要被加入到Repository中的。如果您有某些档案或是目录不想在这次加入,您可以让该项目不要被勾选。如此,它就不会被加入到Repository去。
在recentmessages 中添加修改描述内容,按下OK后,传送完毕。
有一点要注意的是,这个Add的动作并未真正的将档案放到Repository中。仅仅是告知SVN准备要在Repository中放入这些档案。此时,如果您透过档案管理员查看这些档案,应该会看到一个白色红底的惊叹号在档案icon的下方。
这是表示您的working目录中的档案与Repository中的档案还没有同步。现在我们要多一个commit的动作。让这些档案真正的放入到 Repository中。您可以在my_prj目录的icon上或者是my_prj目录内的空白处按下鼠标右键,叫出如下的选单,并且选择SVN commit。
紧接着,您将会看到如下的窗口出现:
在这个窗口中,下半部会列出一个清单,让您清楚的了解到哪些档案要被commit到repository中。同样的,如果您有档案不想在这个时候commit到Repository,您可以取消选取的档案,这样他们就不会被commit到Repository中。
在档案列表的上方是Message栏,您可以在栏中输入本次commit的目的。这是十分重要的字段,当您commit的次数很多时,可以靠这个讯息知道版本与版本之间的差异。当您输入好Message,按下OK之后,就可以看到如下的窗口出现,通知您已经将指定的档案送到Repository中。
您可以到先前的folder中,确定是否所有的档案icon都有如下的绿色勾勾在上面,这样代表您的档案都正确无误的到repository中。
有时候,因为Windows本身的问题,您可能会看到有些icon没有变成绿色的勾勾。此时,多按F5几次,应该就可以解决这个问题。如果,仍然不行,表示您之前的commit动作真的有问题。请仔细检查之前的commit动作是否正确。
四 文件对比
4.1 文件回溯
有时我们需要回溯至特定的日期或是版本,这时就可以利用SVN的Update
to revision的功能。在想要更新的档案或目录icon上面按下鼠标右键。并且选择TortoiseSVN->Update to revision。
在这个Update窗口中,您可以选择更新到最新版本(HEAD)。也可以选择更新到某个指定的版本(Revision)。当然,您可能早就记不起来正确的版本号码。可能只隐约的记得大概在什么时间。没关系,按下Show log按钮,您就可以回顾历史了。
所有您曾经做过的动作,及其日期与对应的版本都会列在这个窗口上面,只要在你想要的版上面点一下,让他变成反白,然后按下OK。这个版本就会自动填入Update窗口中的Revision字段中。您只要再按下一次OK,这个版本就会被取出来到您的硬盘中。
4.2 历史版本对比
选中比对的文件右击TortoiseSVN-> show log-> 选中比对两个文件-> compare
revisions
4.3更新档案及目录
为何需要更新?由于版本控制系统多半都是由许多人共同使用。所以,同样的档案可能还有人会去进行编辑。为了确保您工作目录中的档案与Repository中的档案是同步的。建议您在编辑前都先进行更新的动作。在此,我们都先假设您已经将档案check out过一次。现在要说明的是如何在一个check out过的目录进行update。在想要更新的档案或目录icon上面按下鼠标右键。并且选择SVN Update。
正常的状况下,您可以看到如上的窗口。在这个窗口中会显示有哪些文件更新了。如果没有看到档案更新的相关信息,这表示您的目录中的档案已经是最新的,所以无须进行更新。
5 扩展功能
Copy/Tag/Branch/Release档案或目录
- 确认您要处理的档案或是目录已经是Repository中最新的版本。
- 在要处理的目录或是档案上面按下鼠标右键,选择TortoiseSVN->Branch/Tag。
- 在To URL处输入您要的目的地。
- branch:要产生一个分支。以区别与trunk不同的开发。
- tag:要形成一个标记,表示重要的milestone。
- release:表示一个已经正式的release的纪录。
- 其它:进行一个复制(copy)。
6 补充
5.1 SVN Update Error: Please execute the
'Cleanup'
原因有可能是
1. 有文件正在更新或上传,该文件夹被锁定。
2. 更新或上传的时候动作没有完成,导致本地存在锁定状态没有释放。
解决方法是
1. 对于上面的第1种情况,等待你所做的操作完成。
2. 对于第2种情况,把对应的文件来里的.svn里面的lock文件删除。
五 取消绑定
取消文件夹的SVN绑定:
点击文件夹--右键---选择TortoiseSVN-->Exprot.选择自己就可以。
六 解除后如何再次关联
和管联相同,注意目录的改变,要和以前一样。再次修改的在目录上cleanup。
七 删除
SVN服务器中可以删除文件夹但无法删除文件:解决办法
找到任一台连接SVN的电脑客户端,然后打开TortoiseSVN Browser,打开以后输入正确的URL,如图所示:
输入正确的身份验证信息后,在文件目录中找到对应的文件
找到该文件,右键会出现X删除,直接删除即可。
出现该问题的原因:SVN不允许在服务器端删除客户端上传的单一文件,除非将整个工程删除。如果想要删除某个文件,只能通过URL访问到后,进行删除。
六 现有文件和服务器关联
只要服务器目录和现有目录相对应就可以实现
来源于http://www.williamlong.info/archives/1878.html
版本介绍
http://www.ssc.stn.sh.cn/html/zsk/ITyw/2012-04/5744.html
锁介绍
http://www.cnblogs.com/blsong/archive/2010/09/02/1816124.html
使用介绍
版本控制软件——tortoiseSVN的基础使用的更多相关文章
- SVN版本控制软件
一.版本控制软件 1.为什么需要版本控制软件 问题:① 团队开发 ② 异地协作 ③ 版本回退 2.解决之道 SCM(Software Configuration Management):软件配置管理 ...
- SVN 集中式版本控制软件
简介: 目前流行的版本控制软件中,SVN ( 集中式版本控制 ) 算是使用范围更广.且使用时间更早的一款了,现在 git ( 分布式版本控制 ) 更火爆一点. 一.安装svn [root@localh ...
- Git版本控制软件结合GitHub从入门到精通常用命令学习手册(转)
简要参考:http://www.tuicool.com/articles/mEvaq2 http://gitref.org/zh/index.html GIT 学习手册简介 本站为 Git 学习参考手 ...
- 【转】Git版本控制软件从入门到精通学习手册
GIT 学习手册简介 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作类型划分,并且将提供日常使用中需要的一些常用的命令以 ...
- 转:[版本控管]TortoiseSVN 使用,抓出兇手,使用 Blame 查看每一行最後修改的人是誰
类似的官方的使用手段有: https://tortoisesvn.net/docs/nightly/TortoiseSVN_zh_CN/tsvn-dug-blame.html from: http:/ ...
- 玩转git版本控制软件
一.git的基本介绍 1.什么是git? git是个开源的分布式版本控制软件,用以有效.高速的处理从很小到非常大的项目版本管理.说白了就是个版本控制软件 2.git的使用方法 git软件是通过命令来实 ...
- linux下搭建svn版本控制软件
svn作为曾经流行的版本控制控制软件,它优异的版本控制功能在有意无意间已经深入IT人的工作了.然而虽然有后起之秀的git,但现在使用svn的项目并不在少数.最近有个项目需要协同开发,由于对svn用得比 ...
- 应用360云盘与SVN版本管理服务器搭建基于云端的版本控制软件
步骤一:(安装软件) 1.TortoiseSVN 2.VisualSVN-Server-2.71 3.安装云盘客户端360wangpan_setup 步骤二:(VisualSVN Server设置) ...
- webpack3.x版本实战案例【基础配置篇】(一)
本文旨在通过一个一个实战例子来学习webpack如何配置,更加深入的学习webpack在实战项目中如何配置. 我们学习哪些配置呢? [基础配置] 打包JS 编译ES6 编译typeScript 打包公 ...
随机推荐
- 【转】.gitignore失效的解决办法
转自:http://foreverdo.diandian.com/post/2012-09-20/40038034798 How to make .gitignore works? Just got ...
- Project Euler 453 Lattice Quadrilaterals 困难的计数问题
这是一道很综合的计数问题,对于思维的全面性,解法的过渡性,代码能力,细节处理,计数问题中的各种算法,像gcd.容斥.类欧几里德算法都有考察.在省选模拟赛中做到了这题,然而数据范围是n,m小于等于100 ...
- python访问需要登录的网页
有些网页需要你登录之后才可以访问,你需要提供账户和密码. 只要在发送http请求时,带上含有正常登陆的cookie就可以了. 1.首先我们要先了解cookie的工作原理. Cookie是由服务器端生成 ...
- 10.Android UiAutomator Junit 断言函数的使用
一.断言函数介绍 1.断言函数: 确定被测试的方法是否按照预期的效果正常工作 比如说: if (假设成立){ 通过测试 }else{ 报错并终止当前用例测试 } 2.断言函数用例结构: 一个完整的测试 ...
- 曼-惠特尼U检验Mann–Whitney U Test
sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&am ...
- (转)ios error:unrecognized selector sent to class
转自:http://blog.itpub.net/12231606/viewspace-1081952/ 今天将app统计的.a静态库包含到一个app应用中,调试时报下面的错误: *** Termin ...
- 2017北京国庆刷题Day3 afternoon
期望得分:100+0+30=130 实际得分:100+36.5+0=136.5 T3 一个变量写混了,丢了30.. 模拟栈 #include<cstdio> #include<cst ...
- 2017北京国庆刷题Day2 afternoon
期望得分:100+100+50=250 实际得分:100+70+50=220 T1 最大值(max) Time Limit:1000ms Memory Limit:128MB 题目描述 LYK有一 ...
- NOIP模拟赛14
期望得分:0+100+100=200 实际得分:0+100+100=200 T1 [Ahoi2009]fly 飞行棋 http://www.lydsy.com/JudgeOnline/problem. ...
- Codechef Dynamic Trees and Queries
Home » Practice(Hard) » Dynamic Trees and Queries Problem Code: ANUDTQSubmit https://www.codechef.co ...