好用的Windows下SVNclient——Tortoise SVN的下载地址:

http://tortoisesvn.tigris.org/

文档:

http://www.subversion.org.cn/svnbook/

http://www.subversion.org.cn/tsvndoc/

SVN 与 VSS 的差别:

VSS中,编辑一个文件,有一个锁定的概念,这样能够确保改动一个文件时别人无法改动这个文件

SVN和它思路不同,SVN中觉得,项目中的參与人员,一般来说,分工明白的情况下编辑并不会冲突,所以并不特别重视锁定这个概念(可是SVN全然支持相似于VSS的锁定,独占一个文件的编辑)

即使编辑了一个文件,仅仅要不是同一行,SVN还拥有很智能的方式将它们合并进成为一个新的文件

仅仅有在编辑了同一个文件的同样位置,SVN才会把文件标记为冲突,从而交给用户进行处理

TortoiseSVN(以后简称TSVN)使用:

全部操作,大部分操作在右键菜单的TSVN中,

后文中提及的大部分操作,

都是右键菜单操作。

正文

之中的一个:建立SVN项目仓库

你也能够在自己的计算机建立SVN的仓库

方法是:

新建一个目录,比方d:svnmyproject

进入这个目录,右键->TSVN->Create repository here...

然后在你的项目目录(比方e:javamyproject1)里面导入项目:

进入e:javamyproject1,然后右键,TSVN->Import

输入:file://d:/svn/myproject/trunk

导入即可了

SVN支持http://, svn://, file://等多种协议

它本身(非TSVN,TSVN不过client)能够作为server执行,也能够作为apache的模块执行

以后你在e:javamyproject1以下的提交之类的操作将会被记录在d:svnmyproject这个仓库里面

之二:下载项目仓库文件到工作文件夹:

如今,新建一个空目录

使用刚建好的SVN项目仓库地址(比方:file://d:/svn/myproject/trunk

右键空白处

选择SVN Checkout(检出)

之三:提交改动的文件

右键->SVN Commit

会出现一个提交窗体,Message里面写入关于这次提交的一个概要

这里我们进行一个约定

假设这次的提交以改动为主,那么Message前面加上@MOD,比方:

"@MOD 对README.txt进行了改动,增加了项目描写叙述"

诸如此类

假设这次提交以加入新文件为主

那么@ADD,比如:

"@ADD 增加style.css样式表"

这是test项目,你能够任意编辑,任意提交,任意删除

可是不要删除不论什么的隐藏的.svn目录以下的内容,这个是SVN的信息

重命名是,右键文件->TSVN->Rename

删除是,右键文件->TSVN->Delete

凝视:

  1. 锁定:锁定一般针对二进制文件编辑时採用,比方jpg, gif, doc之类的非纯文本文件
  2. 版本:SVN中,不论什么提交,不管改动有多么微小,都会让修订版本添加1
  3. ShowLog:右键空白处->TSVN->Show Log能够查看以往的提交记录;右键文件->TSVN->ShowLog能够查看与这个文件相关的提交记录

之四:恢复到曾经的版本号

SVN中的每一个修订版的不论什么文件都能够被获取到,所以仅仅要是提交过的文件,不用操心其改动的问题,即使改错了,也能够恢复到以往的随意一个版本号

详细操作是右键文件(或空白处——针对当前目录)->TSVN->Update to revision

之五:编辑冲突

如今来演示一下冲突问题:

你把test.txt的asdf所有换成别的文字

但不要提交

我也来改动相同的地方,然后提交后,你再尝试提交

【以上是大哥教我的时候的聊天记录,能够选择的做法是:在两个目录下check out同一个项目仓库,然后在两个目录下同一时候改动,能够有相同的效果】

SVN会提示出错,然后阻止你的提交

你这时候右键->SVN Update

SVN会将server上的版本号,以及你自己的版本号都分别放一个文件,选择test.txt右键->TSVN->Edit conflict

是一个典型的diff程序,你能够在左右两側分别比較

"Mine"和"Theirs"的版本号的差别,然后右键冲突的地方,选择要哪个地方的版本号

最后保存后,再度提交成为一个新的修订版【依据小子的实践,直接点击 mark as resolved就包含:save 和 commit,所以慎用此键】

之中的一个:提交的原则

关于提交,有一些基本原则,提交上去的代码

1. 不影响到其他开发人员开发的部分的功能

2. 能够执行,有程序bug没有关系,可是不要有错误(语法错误之类的)

在上面这个原则上,尽可能的多提交(当然也不用写两三行就提交一次,这个度要把握好),方便团队中的成员都拥有最新的版本号

之二:公布终于的版本号

终于公布的版本号(术语叫生产环境版本号),里面不须要.svn的数据,你仅仅须要在项目目录里面,右键,然后TSVN->Export导出,或者右键拖拽你的项目目录,有Export here的选项

SVN有用教程的更多相关文章

  1. [转载]SVN使用教程

    SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...

  2. SVN使用教程总结[转]

    SVN使用教程总结   SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Sub ...

  3. SVN备份教程(三)

    上次的博文SVN备份教程(二)中,我们讲解了一下SVN定时备份的相关内容,同时我们又提出了一种新的SVN备份方案--自动备份. 1.简介 所谓自动备份,它实现的思路非常简单,就是利用SVN自带的hoo ...

  4. SVN备份教程(二)

    上次的博文中SVN备份教程(一)我们简单介绍了一下SVN备份是如何操作的,今天我们接着将上次的问题进行优化. 1.问题回顾 在讲之前,我们先来将上次的问题重申一下.之前的SVN备份存在的问题很简单,每 ...

  5. SVN简明教程

    SVN简明教程 Posted on 2010-09-07 17:34 幻海蓝梦 阅读(7196) 评论(0)  编辑  收藏 所属分类: 版本管理  http://www.emsym.com/blog ...

  6. Eclipse SVN 使用教程

    Eclipse SVN 使用教程 做好以上的准备后打开Eclipse编译器,点击编译器右上角的Open Perspective 打开SVN资源库界面,新建一个资源库 选择资源库的位置,这里我们就用刚才 ...

  7. SVN入门教程总结

    参考: SVN使用笔记 SVN入门必备教程 一看就懂 SVN使用教程总结 版本控制器:SVN教程 菜鸟教程之SVN教程 极客学院之SVN教程 SVN(SubVersion)简介: 为什么要使用SVN( ...

  8. 转: SVN使用教程总结(图文丰富,相当详细)

    转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN使用教程总结   SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生 ...

  9. 安卓项目eclipse有用教程:设置应用名字和图标、屏幕、签名、真机调试、clean、logcat、json解析

    怎样在安卓项目中.设置游戏的应用名字和图标? 我们在Androidproject的res资源目录下.会看到3个drawable的目录和一个values目录.就是在这里改动即可.   关于改动应用程序名 ...

随机推荐

  1. 认识Backbone (五)

    Backbone.Router(路由)/ Backbone.history(历史)  Backbone.Router 为客户端路由提供了许多方法,并能连接到指定的动作(actions)和事件(even ...

  2. c#中 uint--byte[]--char[]--string相互转换汇总

    原文:c#中 uint--byte[]--char[]--string相互转换汇总 在在做一些互操作的时候往往需要一些类型的相互转换,比如用c#访问win32api的时候往往需要向api中传入DWOR ...

  3. HDU 5050 Divided Land(进制转换)

    题意  给你两个二进制数m,n   求他们的最大公约数  用二进制表示  0<m,n<2^1000 先把二进制转换为十进制  求出最大公约数  再把结果转换为二进制  数比較大要用到大数 ...

  4. Android Framework 其中A记录

    一个简短的引论 以往的研究太偏应用层的功能,实现了,原则上不进入非常理解,现在,研究人员framework该框架层. 创纪录的 1.下载源代码,文件夹例如以下: 2.Android系统的层次例如以下: ...

  5. NavigationBar隐藏

    小编今天呢在搞 NavigationBar但是怎么弄都用不好,假设用navigationbar我往里面拖拽button.button的点击反应范围比較大,这样效果就不好. 突然看到有网友说能够将nav ...

  6. 2014年百度之星程序设计大赛 - 资格赛 1002 Disk Schedule(双调欧几里得旅行商问题)

    Problem Description 有非常多从磁盘读取数据的需求,包含顺序读取.随机读取.为了提高效率,须要人为安排磁盘读取.然而,在现实中,这样的做法非常复杂.我们考虑一个相对简单的场景.磁盘有 ...

  7. 【Hibernate学习】 ——ORM(三)

    前面几种关系我们曾经就常常常使用,对于继承我们也并不陌生,常常接触的类与类之间的继承用extendskeyword,那么在表与表的关系中怎样表示呢?以下我们来讲继承映射. 继承有三种实现的策略,单表继 ...

  8. SQL Server 索引列的顺序——真的没关系吗

    原文:SQL Server 索引列的顺序--真的没关系吗 翻译自:http://www.mssqltips.com/sqlservertip/2718/sql-server-index-column- ...

  9. 【C++知识汇总】运营商 &amp; 运算符重载

    [运算符]        在进行运算时,假设右括号的话我们知道先运算哪个,那假设没有括号了.算术运算符,关系运算符,逻辑运算符,位运算符.赋值运算符,++.--运算符等等,那么多的运算符.我们先算哪边 ...

  10. Repository、IUnitOfWork和IDbContext

    DDD 领域驱动设计-谈谈Repository.IUnitOfWork和IDbContext的实践 上一篇:<DDD 领域驱动设计-谈谈 Repository.IUnitOfWork 和 IDb ...