Tortoise SVN入门学习

安装及下载client端

TortoiseSVN客户端安装包和语言包的官网下载地址:http://tortoisesvn.net/downloads.html

什么是SVN(Subversion)?

有一个简单易于理解的比喻:SVN=版本控制+备份服务器

你可以把SVN当成备份服务器,它可以帮你记住每次上传到这个服务器的档案内容,并且自动的赋予每次的变更一个版本(也就是自动生成版本信息)。 我们称用来存放上传档案的地方就做Repository,也就是档案仓库的意思。基本上,第一次我们需要有一个新增add档案的动作,将想要备份的档案放到Repository上面。日后,当你有任何修改时,都可以上传到Repository上面,上传已经存在且修改过的档案就叫做commit,也就是提交修改给SVN
server的意思。针对每次的commit,SVN server都会赋予他一个新的版本,也会把每次上传的时间记录下来。日后某些因素,如果你需要从Repository下载曾经提交的档案,你可以直接选择取得最新的版本,也可以取得任何一个之前的版本。

SVN运行方式

集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。我们每天到公司开始新一天的工作:

1、从服务器下载项目组最新代码。

2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。

这就是经典的SVN工作流程。

为什么要用SVN

1.
备份工作档案是十分重要的。你永远不知道计算机上的硬盘何时会坏掉。而坏事情往往都发生在最重要的时刻。例如,要release东西的前一刻,硬盘完全坏掉,无法修复。所以,常常备份工作数据是非常重要的。大部分公司的server都会有专门的备份机制,甚至是异地备援,绝对比放在自己的计算机里头,或是随身碟上面来的安全。

2.
版本控管非常重要。你无法保证手头上最新版本永远都是对的。很多时候,在经过数天努力工作后,你才发现走错方向。需要将所有的修改回复到数天前版本。没有几个人能够完全记住自己修改过什么东西。如果没有做好版本控管,那么,最糟糕的状况就是要全部重来。

3. 伙伴间的数据同步也是非常重要的。很多时候,除了你个人外,还有其它的伙伴也需要您的档案。怎么把最新的档案提供给伙伴呢?用e-mail?用e-mail是个糟糕的主意。到了最后,根本就不知道哪一封e-mail才是新的。

4. 如果没有一个好的办法,备份不同版本是很耗费硬盘空间的。例如:你有一个总共10MB的目录,使用单纯的档案备份。如果有10个版本就会变成100MB。20个版本就有200MB。如果,不想备份这么多版本,势必就是要减少备份的次数。拉长备份周期将会导致数据遗失的危险性增高。把旧的不需要的备份删除?根据经验,只要时间一拉长,你跟本就不知道一个月以前的版本是重要或者是不重要。

SVN使用步骤

1 简单的初步使用:

按照默认设置安装完成后,重启电脑,点击右键会有如下两个选项!选择当前选项即打开SVN目录!

点击Repo-browser,填入自己服务器的SVN地址:

然后就可以看见工作目录了,所有工程文件都可以共享:

------------------------------------------------------------------------------------------------------------------------------------

2 迁出源代码到本地机:

新建一个文件夹(就是你想把SVN上down下的数据放在哪),右键文件夹如上图,点击SVN Checkout。

在URL of Repository:下的文本框中输入svn server中的代码库的地址,其他默认,点击OK按钮,就开始签出源代码了。

在Checkout Depth,有4个选项,分别是迁出全部(Full Recursive)、只签出下一级子目录和文件、只签出文件、只签出空项目,默认的是第一项。

Reversion处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。

确定后开始下载源代码:

3提交修改过的文件和更新本机代码:

在本地存放代码的文件夹(也就是down下代码且已经更改代码所在文件夹)右键,选择SVN Update是更新本机代码与SVN服务器上最新的版本一致,选择SVN Commit...是提交修改过的文件到SVN服务器。

【提交修改和更新操作可能会因为版本冲突而失败,这是可以使用合并Merge或其他方法解决;也可能因为锁定Get Lock而失败,这是需要先解锁Release Lock】

4 签入源代码到SVN服务器和添加新文件到SVN服务器暂时木有用到,以后更新,其实也很简单的。在SVN更新过程中主要是要注意安全性!!

参考学习文章:

(*)http://wenku.baidu.com/link?url=5nptTWMEU8blWrewEi0P3ER7n73htNqF2rUZG6E_SPQwc8rMi2pJI7GaPNWTyRiLOPxXw80V6oH_hDvm0vBMBT5w2L9cCDFNaAyDmWUEgCy

(*)http://www.cnblogs.com/xilentz/archive/2010/05/06/1728945.html

Tortoise SVN入门学习

时间: 2024-10-12 11:55:28

Tortoise SVN入门学习的相关文章

git入门学习(一):github for windows上传本地项目到github

Git是目前最先进的分布式版本控制系统,作为一个程序员,我们需要掌握其用法.Github发布了Github for Windows 则大大降低了学习成本和使用难度,他甚至比SVN都简单. 一.首先在github创建自己的账号 github官方网址为:https://github.com/,相信大家都应该有自己的github账号. 二.下载github for windows 官方下载网址为:https://desktop.github.com/,我下载的版本为3.2.0.0 三.安装github

SVN入门-2分钟教你入门

学习SVN首先我们应该知道,SVN是什么? SVN(Subversion)是一个开源的版本控制系統. SVN管理核心是:集中式管理,看一下集中式管理的工作流程图: 很好理解了,SVN的核心是服务器(配置器),下面看看SVN的宏观了解: 上面应用的操作很简单,以上是SVN的简单的入门,SVN提供了一个平台,教会了我们合作,共享,大大提高了团队的共组效率,记录了每一步的成长,以及人人为我,我为人人的思想. SVN入门-2分钟教你入门

PHP 入门学习教程及进阶(源于知乎网友的智慧)

思过崖历程: 自学的动机.自学的技巧.自学的目标三个方面描述学习PHP的经历 一.自学的动机: 一定要有浓厚的兴趣,兴趣是最后的老师,可以在你迷茫的时候不断地支撑着你走下去. 自学不是为了工作,不是为了梦想,仅仅是随便玩玩而已,大可不必各种纠结,互联网很发达,教程随便一搜就一大堆,学个一知半解装装B还是很轻松的,特别是慕课网上的各种眼花缭乱的视频教程,绝B会让你恨时间如流水,何其宝贵--然而这并没有什么卵用,在大部分的情况下,它仅仅适合学习某一门语言的一个专题,并没有针对某一门语言提供由浅入深,

Tortoise SVN 使用笔记

最近一个项目,团队使用的是SVN来控制版本,所以顺便学习下SVN的知识.在Windows上,肯定是用图形化客户端Tortoise SVN在加速我们的工作. 首先,在一个准备用在工作目录的文件夹下,点击鼠标右键,Tortoise SVN-->在此创建版本库,然后输入svn的地址,用户名和密码,然后check out就可以了,如果你修改了项目的文件,点击该文件或相关文件夹,commit到服务器就OK了. 附上各个图标的含义: 要解除版本控制也很简单,只要将版本控制了的文件夹里边的.svn文件夹删除即

Retrofit 入门学习

Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user); } 这些注解都有一个参数 value,用来配置其路径,比如示例中的 users/{user}/repos, 我们还注意到在构造 Retrofit

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

[Todo] Nodejs学习及Spider实验(包括php入门学习、React入门学习)

/Users/baidu/Documents/Data/Interview/Web-Server开发 深入浅出Node.js-f46c http://blog.csdn.net/u012273376/article/details/52736906 利用nodejs做爬虫 http://www.runoob.com/nodejs/nodejs-callback.html nodejs学习之路 http://www.runoob.com/php/php-tutorial.html php学习之路

JavaSE入门学习24:Java面向对象补充

一Java中的Object类 Object类是所有Java类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认 继承Object类. public class Person{ // } //等价于 public class Person extends Object{ // } Object类中的方法,适合所有子类. 1)toString()方法 在Object类中定义有public String toString()方法,其返回值是String类型,描述当前对

js入门学习

在HTML,CSS学习的最后,开始入门学习javascript, 首先就是去了解它的用途 作用:使web页面能够与用户交互,作为控制浏览器给网页增添活力的方法 定义:它是一种脚本语言,作用于浏览器.和java没有半毛钱关系,主要是当时Netscape公司为了增加影响力改了名,,(是不是感觉很无耻) ps:区分程序的一种方式:1.客户端程序(client-side),像javascript就是,我觉得HTML,CSS应该也是. 2.服务器端程序(server-side),java,perl,php