SVN

一、简介

SVN是Subversion的简称,是一个开放源代码的版本控制系统,采用分支管理系统,说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的.

svn服务器有2种运行方式:独立服务器和借助apache运行.

访问方式:①URL访问②SVN客户端访问

基本使用流程:

二、基本概念

配置库( Repository ):SVN(subversion)是一种常用的配置管理工具,它的数据存储在一个有记忆功能的中央仓库(repository )里,记录每一次提交,包括增加、删除、修改。

工作副本(WorkSpace):是每个人的工作空间,它是每个程序员工作的地方,程序员从配置库拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行、测试等操作,并把新版本的代码从这里提交回配置库库中。

三、使用

CheckOut(检出)

1.新建一个空文件夹,比如:E:\Proj_trunk
2.在此目录中点击右键-> SVN Checkout...
    版本库URL(需要检出的模块的访问路径)
    检出至目录(工作副本的存放路径)
    Fully recursive:全递归(默认选择):检出完整的目录树,包含所有的文件或子目录
    Immediate children,including folders:直接子节点,包含文件夹:检出目录,包含其中的文件或子目录,但是不递归展开子目录
    Only file chlidren:仅文件子节点:检出指定目录,包含所有文件,但是不检出任何子目录
    Only this item:仅此项:只检出目录。不包含其中的文件或子目录

Update(更新)

作用:更新工作副本使其成为版本库中的最新版本。
SVN将显示出更新的文件和更新的次数。

ADD(添加)

选中文件/文件夹(在新文件/文件夹所在父文件夹点击右键)——在菜单中选择“添加Add”命令,不需要受SVN控制的文件请取消打钩。

Revert(还原)

作用:撤销本地所有未提交的修改。
注意:还没有执行Commit操作之前执行此命令才可以,否则无效。

Commit(提交)

对工作副本进行编辑后提交到SVN
在右键菜单中点击SVN Commit
提交前写好信息,点击确定

创建分支(Branch)

两种方式
    1.在版本库浏览器中创建分支
    2.在工作副本创建分支

权限控制

当进行提交文件操作的时候您将看到权限提示信息
输入您的用户名和密码
保存权限设置(见红圈) ,可以避免将来重复输入用户名和密码

删除认证数据

步骤:点击右键——选择设置——以保存数据——清除认证数据

Show log (显示日志)

冲突

什么是冲突
    团队协同工作时,当多位团队成员同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况
冲突的解决方法
    使用工具解决冲突
    用revert放弃所做的修改
关于冲突的建议
    修改文件之前,先进行一次update操作
    修改完成后,及时commit,不要在本地停留过长时间
    在多位团队成员协作时,尽量修改自己撰写的部分
    出现冲突很正常,可以通过前面的方法解决,不要相互覆盖
    SVN客户端日常使用

GIT vs SVN

集中式与分布式

SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别。
SVN只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。Git不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

SVN

1)每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据;
2)获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据;
3)提交必须有网络连接(非本地版本库);
4)提交需要授权,如果没有写权限,提交会失败;
5)提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于过时的版本,先更新再提交”… 诸如此类;
6)冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决
好处:每个人都可以一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限。
缺点:中央服务器的单点故障

GIT

1)Git中每个克隆(clone)的版本库都是平等的。你可以从任何一个版本库的克隆来创建属于你自己的版本库,同时你的版本库也可以作为源提供给他人,只要你愿意。
2)Git的每一次提取操作,实际上都是一次对代码仓库的完整备份。
3)提交完全在本地完成,无须别人给你授权,你的版本库你作主,并且提交总是会成功。
4)甚至基于旧版本的改动也可以成功提交,提交会基于旧的版本创建一个新的分支。
5)Git的提交不会被打断,直到你的工作完全满意了,PUSH给他人或者他人PULL你的版本库,合并会发生在PULL和PUSH过程中,不能自动解决的冲突会提示您手工完成。
6)冲突解决不再像是SVN一样的提交竞赛,而是在需要的时候才进行合并和冲突解决。
除此之外
    1)Git也可以模拟集中式的工作模式
        Git版本库统一放在服务器中
        可以为 Git 版本库进行授权:谁能创建版本库,谁能向版本库PUSH,谁能够读取(克隆)版本库
        团队的成员先将服务器的版本库克隆到本地;并经常的从服务器的版本库拉(PULL)最新的更新;
        团队的成员将自己的改动推(PUSH)到服务器的版本库中,当其他人和版本库同步(PULL)时,会自动获取改变
    2)Git 的集中式工作模式非常灵活
        你完全可以在脱离Git服务器所在网络的情况下,如移动办公/出差时,照常使用代码库
        你只需要在能够接入Git服务器所在网络时,PULL和PUSH即可完成和服务器同步以及提交
        Git提供rebase 命令,可以让你的改动看起来是基于最新的代码实现的改动
    3)Git有更多的工作模式可以选择,远非 Subversion能比的

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值