前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SVN 和 GIT/Perforce 的核心区别

SVN 和 GIT/Perforce 的核心区别

作者头像
韩伟
发布2021-08-05 10:37:28
2.3K0
发布2021-08-05 10:37:28
举报
文章被收录于专栏:韩伟的专栏韩伟的专栏

不同文件修改的处理

SVN 的自动合并这些修改

• 不同人修改不同文件,不会有任何提示,对于工作以文件划分职责的人表示很 OK,也是策划配表文件要求写一个“合并”工具的源头。

• 对于一个项目中,不同文件的内容有互相关联的功能来说,可能导致第三方错误。导致“在我机器上很好啊?”问题频繁发生。

GIT/Perforce 的需要开发者先更新再提交

• 不管改了什么,都提示开发者处理,当“网盘”使用的人表示很烦

• 因为都经过开发者合并,所以可以自动做一些单元测试等验证工作,减少问题

对于分支的使用方法

SVN 的分支是目录

• 优势:分支就是目录,非常直观,不需理解,当“网盘”用即可

• 问题:

○同时拥有多个分支,需要下载多个目录很占硬盘

○如果使用一个目录,切分支时要联网,可能很慢

○习惯不切分支,而是在多个分支目录上直接改文件的用户,天长日久之后,已经合并不回去了

GIT/Perforce 的分支不是目录

• GIT/Perforce 的问题:分支看不见,不直观;要用专门的软件如 SourceTree 才能看见

• GIT/Perforce 的优势:切换分支快

权限管理

SVN/Perforce 的权限

权限可以细分到项目里的目录

GIT 的权限

这个特性 GIT 完败,一个项目只能使用同一套权限,如果有大量的项目互相依赖,要拉代码需要申请几十个权限(因此诞生了字节内部的“一键批量申请权限”的工具)。这也是 Google 嫌弃 GIT 的主要原因。

其他差别

• 非 git 无法提供无网络的快照、回滚能力,对于离线开发,譬如在飞机上写代码不友好(听起来并没什么用?)

• .svn/ 目录到处都是,.git/ 只有一个。但是,太多 .svn/ 在代码搜索等操作上,造成很多麻烦,一搜一大堆同名函数在 SVN 内部文件里。

总结

• 对于工作互相隔离、非文本类(源代码)文件开发的用户,SVN 非常直观,基本当作网盘使用即可(svn update 等于下载文件;svn commit 等于上传文件;开分支就是拷贝个目录,合并是不存在的),无学习成本。但是对于共同开发源码的程序员来说,这种模拟成目录的设计,会导致很多误用,从而产生问题。

• 对于代码开发人员,自动合并是一个核心问题,使用 SVN 具有其固有缺陷。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 韩大 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档