大家好,欢迎来到IT知识分享网。
前言
SVN(Subversion)是一个自由开源的版本控制系统。当公司的开发团队在进行复杂的多项目开发时,SVN是最好的选择。
常见的源代码管理工具
-
CVS
-
历史悠久,现在几乎没人使用
-
SVN
-
集中式版本控制的代表
-
CVS的接班人,速度比CVS快,功能比CVS强大
-
在国内使用率非常高(70%~90%)
-
GIT
-
分布式源代码管理工具
-
目前被大多数开源项目使用
-
不过在国内企业尚未大规模普及
源代码管理工具出现的意义
-
目的
-
为了解决在软件开发过程中,由源代码引发的各种繁琐的问题
-
常见问题
-
无法后悔:做错了一个操作后,没有后悔药可以吃
-
版本备份:费空间、费时间
-
版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本
-
代码冲突:多人操作同一个文件(团队开发中的常见问题)
-
权限控制:无法对源代码进行精确的权限控制
-
追究责任:出现了严重的BUG,无法得知是谁干的,容易耍赖
-
作用
-
能追踪一个项目从诞生一直到定案的过程
-
记录一个项目的所有内容变化
-
方便地查阅特定版本的修订情况
SVN
-
原理
-
使用环境
-
服务器
-
客户端
-
用于存储客户端上传的源代码
-
可以在Windows上安装Visual SVN Server
-
大部分情况下,公司的开发人员不必亲自搭建SVN服务器
-
上传本地的源代码到服务器,或者更新服务器的代码到本地,保持同步
-
可以在Mac上使用命令行、Versions、Cornerstone、Xcode
-
开发人员就属于客户端这个角色
-
要想利用SVN管理源代码,必须得有2套环境
-
SVN下载地址
-
官方下载
-
百度云下载
安装
-
第一步
-
双击打开VisualSVN-Server-2.7.7.msi
-
第二步
-
同意遵守协议
-
第三步
-
选择Visual VSN 服务器和管理控制台, 和添加SVN命令行工具到系统Path路径, 然后下一步
-
第四步
-
选择版本
-
第五步
-
由于SVN都是在公司内网里使用,不存在数据被截取的安全问题
-
所以为了速度更快,不要使用https
-
取消勾选 Use secure connection(https://)
-
第六步
-
开始安装
-
第七步
-
安装完成后会询问你是否需要运行
-
第八步
-
安装成功打开软件
创建代码仓库
-
第一步
-
第二步
-
填写代码仓库的名称
-
第三步
-
仓库目录说明
-
db目录:就是所有版本控制的数据存放文件。
-
hooks目录:脚本文件的目录。
-
locks目录:用放置hook来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端。
-
format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
-
conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)
-
第四步
添加用户
访问SVN服务器
-
本机直接访问
-
如果其他电脑想要访问仓库
-
要把仓库地址的前缀换成电脑的IP
对比Git
-
适用对象不同。 Git 适用于参与开源项目的开发者。 他们由于水平高,更在乎的是效率而不是易用性。Svn 则不同, 它适合普通的公司开发团队。使用起来更加容易。
-
使用的场合不同。 Git 适用于通过Internet,有多个开发角色的单个项目开发, Svn 适合企业内部由项目经理统一协调的多个并行项目的开发。
-
权限管理策略不同。 Git 没有严格的权限管理控制,只要有帐号,就可以导出、导入代码,甚至执行回退操作。 Svn 则有严格的权限管理, 可以按组、按个人进行针对某个子目录的权限控制。区分读、写权限。更严格的,不支持回退操作。保证代码永远可以追踪。
-
分支( branch )的使用范围不一样。 Git 中, 你只能针对整个仓库作 branch, 而且一旦删除,便无法恢复。而 svn 中, branch 可以针对任何子目录,它本质上是一个拷贝操作。 所以,可以建立非常多、层次性的 branch, 并且,在不需要时将其删除,而以后需要时只要 checkout 老的 svn 版本就可以了。
-
基于第三点, Git 适用于单纯的软件项目,典型的就是一些开源项目,比如 Linux 内核、 busybox 等。相反, Svn 擅长多项目管理。 比如,你可以在一个 svn 仓库中存放一个手机项目的 bsp/ 设计文档 / 文件系统/ 应用程序 / 自动化编译脚本, 或者在一个 svn 中存放 5 款手机项目的文件系统。 git 中必须建立 n ( 项目数 )* m (组件数) 个仓库。 Svn 中只需要最多 n 或者 m 个就可以了。
-
Git 使用 128 位 ID 作为版本号, 而且 checkout 时要注明是哪个 branch, 而 svn 使用一个递增的序列号作为全局唯一的版本号, 更加简明易懂。虽然可以使用 git tag 来建立一些文字化的别名,但是毕竟那只是针对特殊版本。
-
可跟踪性,git 的典型开发过程为: 建立分支,进行开发,提交到本地 master,删除分支。这样做的后果是以前 的修改 细节会丢失。 而在 svn 下做同样的事情,不会丢失任何细节。 这里是一个有趣的链接,表明了 git 下典型的工作方式:(以master为核心,不断创建新branch, 删除旧branch):
-
局部更新,局部还原。SVN由于是在每个文件夹建立一个.svn文件夹来实现管理,所以可以很简单实现局部更新或者还原。假如你只希望更新某些部分,则svn可以很好实现。同时代码写错了,同时可以很好实现局部还原,当然git也可以通过历史版本还原,但是无法简单地实现局部还原。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/88046.html