svn常规操作与相关知识

Svn常规操作与相关知识

一、何谓版本控制

它是一种软件工程籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新,它透过文档控制记录程序各个模块的改动,并为每次改动编上序号,并且编辑错误之后还可以回溯到以前的版本

二、可供我们选择的版本控制系统

1、VCS  (本地版本控制)

2、VSS、CVS(集中版本控制)

3、ClearCase、SVN、Perforce、TFS(集中版本控制)

4、Mercurial(水银/水星)、Git(分布式版本控制)

差异:

1.Git和其他版本控制系统的主要差别在于:Git只关心文件数据的整体是否发生了变化,而多数的其他系统则只关心文件内容的具体差异,它们在每个版本中记录着各个文件的具体差异。

2.Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS,优于CVS之处 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。

3.分布式版本控制系统(Distributed Version Control System,简称 DVCS)面世了。在这类系统中,像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。

三、svn与git

1)适用对象不同。Git适用于参与开源项目的开发者。他们由于水平高,更在乎的是效率而不是易用性。Svn则不同,它适合普通的公司开发团队。使用起来更加容易。

2)使用的场合不同。Git适用于通过Internet,有多个开发角色的单个项目开发,Svn适合企业内部由项目经理统一协调的多个并行项目的开发。

3)权限管理策略不同。Git没有严格的权限管理控制,只要有帐号,就可以导出、导入代码,甚至执行回退操作。Svn则有严格的权限管理,可以按组、按个人进行针对某个子目录的权限控制。区分读、写权限。更严格的,不支持回退操作。保证代码永远可以追踪。

4)分支(branch)的使用范围不一样。Git中,你只能针对整个仓库作branch,而且一旦删除,便无法恢复。而svn中,branch可以针对任何子目录,它本质上是一个拷贝操作。所以,可以建立非常多、层次性的branch,并且,在不需要时将其删除,而以后需要时只要checkout老的svn版本就可以了。

5)基于第三点,Git适用于单纯的软件项目,典型的就是一些开源项目,比如Linux内核、busybox等。相反,Svn擅长多项目管理。比如,你可以在一个svn仓库中存放一个手机项目的bsp/设计文档/文件系统/应用程序/自动化编译脚本,或者在一个svn中存放5款手机项目的文件系统。git中必须建立n(项目数)*m(组件数)个仓库。Svn中只需要最多n或者m个就可以了。

6)Git使用128位ID作为版本号,而且checkout时要注明是哪个branch,而svn使用一个递增的序列号作为全局唯一的版本号,更加简明易懂。虽然可以使用gittag来建立一些文字化的别名,但是毕竟那只是针对特殊版本。

7)可跟踪性,git的典型开发过程为:建立分支,进行开发,提交到本地master,删除分支。这样做的后果是以前的修改细节会丢失。而在svn下做同样的事情,不会丢失任何细节。这里是一个有趣的链接,表明了git下典型的工作方式:(以master为核心,不断创建新branch,删除旧branch):

http://www.kernel.org/pub/software/scm/git/docs/howto/separating-topic-branches.txt

8)局部更新,局部还原。SVN由于是在文件夹建立一个.svn文件夹来实现管理,所以可以很简单实现局部更新或者还原。假如你只希望更新某些部分,则svn可以很好实现。同时代码写错了,同时可以很好实现局部还原,当然git也可以通过历史版本还原,但是无法简单地实现局部还原。

四、svn常规操作

1.TortoiseSVN官网地址:http://tortoisesvn.tigris.orgCheckout下载与电脑对应的软件。

2.ckeckout(检出) 点击鼠标右键checkout选项指定资源库,导出地址点击ok即可。

3.添加文件或者文件夹 在检出的文件中进行操作,首先在里面添加文件或者文件夹-->鼠标

右键点击tortoiseSVN选项-->add-->SVN commit

4.把一个项目文件夹发布到SVN服务器上  在eclipse上配置svn插件http://subclipse.tigris.org/update_1.12.x

鼠标右键-->team-->share project-->SVN-->next-->finish

5.Update更新 鼠标右键-->team-->update

6.Export导出 鼠标右键-->tortoiseSVN选项-->export

7.历史版本 eclipse 右键-->team-->显示历史资源版本  文件夹 右键-->tortoiseSVN选项-->show log

8.锁定 鼠标右键-->tortoiseSVN选项-->get lock

9.备份 文件操作 鼠标右键-->tortoiseSVN选项-->export

10.分之  eclipse 鼠标右键-->team-->分之/标记  指定分之名-->鼠标右键-->team-->update

文件鼠标右键-->tortoiseSVN选项-->branch/tag

11.冲突 当不同用户同时操作一行代码的时候,提交会有冲突,update即可。

时间: 2024-10-22 17:56:39

svn常规操作与相关知识的相关文章

知识回顾、进程的相关知识和操作

1.编程语言的发展: 机器语言:二进制 汇编语言:指令,命令形式的 高级语言:面向过程(C)面向对象(python,c++,java) 2.操作系统的目标: 为了使用户更方便的使用系统 3.计算机的组成: cpu,主板,存储,输入,输出 4.并行.并发 并发:指两件或多件事情,在同一时间间隔内同时执行(宏观上是并行,微观上是串行) 并行:指两件或多件事情,在同一时间间隔内同时执行 5.进程有三部分组成: 代码段,数据段,PCB(进程控制块) 6.进程的三种基本状态: 就绪状态:除了cpu之外,进

Docker-1.相关知识+安装+镜像相关操作

Docker 相关知识它是一个轻量级的虚拟化技术,相比传统的虚拟化,具有启动速度快.资源需求少.性能高,并且单机可以支持上千个容器. 镜像(Image)    类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统.它是创建容器的基础 容器(Container)    类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用.    容器是从镜像创建的应用实例,可以将其启动.开始.停止.删除,而这些容器都是相互隔离.不可见的.它自身是只读的.容器从镜像启动的时候,

Linux Centos的Inode及Block相关知识

本经验均在CentOSrelease6.7(Final)下操作,如知识有欠缺之处 欢迎批评指正. linux 的inode及block的相关知识: 1>  Linux系统分区格式化文件系统之后,系统会分为Inode及Block两部分: 1)Inode为系统文件的属性信息(ls -l的结果)及指向文件实体的指针,但是没有存放文件名,一般在上级目录里的Block. 2)Block为存放数据的,ext3/ext4一般为1k,2k,4k,一般默认4k 3)一个文件不论多大至少占用一个Inode和一个Bl

spring事务管理及相关知识

最近在项目中遇到了spring事务的注解及相关知识,突然间感觉自己对于这部分知识只停留在表面的理解层次上,于是乎花些时间上网搜索了一些文章,以及对于源码的解读,整理如下: 一.既然谈到事务,那就先搞清到底什么是事务,或者说,Spring事务管理中的事务到底是指什么? 1.事务(Transaction),通常是指数据库的事务,在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit),例如insert .update.delete等,事务是恢复和并发控制的基本单位. 2.事务

黑马程序员---Objective-C基础学习---类、对象、方法相关知识笔记

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 类.对象.方法相关知识笔记 Objective-C相对于C语言有了面向对象的特性,但是ObjC又没有其他面向对象语言那么多语法特性,ObjC本身对面向对象进行了精简.下面是一些相关知识笔记. 类定义 成员变量 方法和属性 self关键字 类定义 在C#.Java等其他高级语言中定义一个类是相当简单点的,直接一个关键字class加一对大括号基本就完成了,但是在ObjC中类的定义相对变化比较大.现

深入浅出安卓学习相关知识,如何从零学好移动开发

原文发表自我的个人主页,欢迎大家访问 http://purplesword.info/mobile-develop 由于近几年来互联网的飞速发展,安卓和iOS平台的大量普及推广,移动开发在当前是非常热门的一个方向. 有不少同学问我如何学习安卓,要学些什么,难不难学.之前一直没有想好应该怎么回答这个问题,只是简单的说安卓自身门槛不高,并不难学.因为我觉得准确回答一个类似这样的问题往往需要灵感.现在根据我的学习体验,做个大概的总结. 1.我为什么学安卓 我从刚开始接触安卓开发到现在也有两三年的时间了

linux 服务器分区格式化相关知识 -mount

关于linux 系统mount和mkfs 的相关知识: 使用mount 1)  Mount的相关格式:mount [-t 文件类型][-o  选项] devicedir 详解: -t 文件类型,通常默认mount会自动选择正确的类型,通常类型ext2/ext3/ext4之类的. 常用的类型有:                  光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntf

【转载】前端面试“http全过程”将所有HTTP相关知识抛出来了...

原文:前端面试“http全过程”将所有HTTP相关知识抛出来了... 来一篇串通,一个http全过程的问题,把所有HTTP相关知识点都带过一遍 http全过程 输入域名(url)-->DNS映射为IP-->TCP三次握手-->HTTP请求-->HTTP响应-->(浏览器跟踪重定向地址)-->服务器处理请求-->服务器返回一个html响应-->(视情况决定释放TCP连接)-->客户端解析HTML-->获取嵌入在HTML中的对象重新发起http请求

静态路由表设置以及路由汇总相关知识

随着宽带接入的普及,很多家庭和小企业都组建了局域网来共享宽带接入.而且随着局域网规模的扩大,很多地方都涉及到2台或以上路由器的应用.当一个局域网内存在2台以上的路由器时,由于其下主机互访的需求,往往需要设置路由.由于网络规模较小且不经常变动,所以静态路由是最合适的选择. 本文作为一篇初级入门类文章,会以几个简单实例讲解静态路由,并在最后讲解一点关于路由汇总(归纳)的知识.由于这类家庭和小型办公局域网所采用的一般都是中低档宽带路由器,所以这篇文章就以最简单的宽带路由器为例.(其实无论在什么档次的路