上帝视角\(^o^)/~
【Round 1】
SVN:集中式,有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的社畜们就通过客户端连到这台服务器,取出最新的文件或者提交更新。
特点:
1.获取代码只能在这个唯一的版本库;
2.提交代码前一定要更新代码,不然容易发生冲突。而解决冲突,最主要的是拼手速;
3.服务器不可以炸,一旦宕机,哈哈哈~全组就放假了,等它;
如果更幸运一点,主服务器的磁盘出了故障,你的更改记录就化蝶飞走了,所以要及时备份;
4.没有网络或者断开VPN你就无法做任何事情,给你的咸鱼工作时光又增加了继续咸鱼的理由。当然这样公司代码的安全性就高了。
5.要求码农代码的规范比较高,不要一个函数干很多事情,不要一个文件写很多个类。
6.有一个全局的版本号,每一个事物处理(即一次提交)都具有整个版本库全局唯一的版本号;
7.版本号是连续的,可以预判下一个版本号。
Git:分布式,记录已经变化的文件,相当于对修改的文件做了快照,记录在一个微型的文件系统中。
特点:
1.获取代码可以在多个不同的分支上面,拉取代码,更新代码;每一个git都是一个版本库;
2.相对来讲,git的冲突比较少,解决也比较容易(解决冲突详见链接: https://blog.csdn.net/zuo0407/article/details/108574784.);
3.主分支如果出现问题,不影响其他分支的代码,依然可以在本地更新代码,提交代码,拉取其他分支的代码;
4.没有网络的时候,依旧可以在本地版本库里进行操作,等联网的时候
5.代码规范没有那么严苛
6.版本号是全球唯一的。Git 对于每一次提交,通过对文件的内容或目录的结构计算出一个SHA-1 哈希值,得到一个40位的十六进制字符串,Git将此字符串作为版本号;
7.版本号是我这种凡人推测不出来的,因为是根据文件内容和目录结构计算出来的哈希值,是唯一的,所以可以根据版本号看文件是否被修改
battle结束,胜负不重要
个人比较喜欢用Git,但SVN也好,Git也罢,都是工具。要结合公司的策略来选用合适的工具。适合自己的才是最好的!
参考文章:
https://blog.csdn.net/bruce_6/article/details/38299677