SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1237|回复: 1

[讨论] 版本控制选型,能否回归到实际应用中?

[复制链接]
发表于 2017-12-19 18:22:20 | 显示全部楼层 |阅读模式
4 N$ M$ i+ ~4 o4 E% W! A9 G
背景起因:2 P- }: ?, O: ^- V: H
有位新入坑的朋友,刚接触这个岗位,学习了一些配置管理的理论知识,不知道如何往下深入。' m3 k( w/ v8 U  U* w7 m1 T. a$ h5 a
变成了因为岗位上的事务需要被动响应而工作(比如权限管理,比如构建管理,比如发布管理,比如审计,比如持续集成等等),慢慢开始迷茫...; R( g# t5 q5 G
这个工作是否遇到瓶颈了,所掌握所了解就是全貌了?慢慢陷入达克效应中...5 _, [' T& y8 Q
这个讨论是希望所有从事这个岗位的朋友们,除理论知识外,还能从实际应用着手重新思考配置管理价值体现,这贴就以版本控制的选型开始吧..* P/ p8 T$ z9 p7 A7 {

, ^( e2 `% C( {. B! C/ m4 L议题:
" c  s# t, ^# `' M; p3 S2 z! a看到论坛里各类版本控制工具/系统的帖子都挺多,选择原因,可能如下:
- h: P6 @0 p! Y- u1、公司一直在沿用这套版本控制工具/系统,由于需要保留源码历史记录,已经绑上贼船% a. U2 f1 z8 E" l
2、因为免费,因为不用再折腾没有新的成本投入,使用上也未遇见重大缺陷,就继续使用7 l, ^+ W- U- @2 r  h8 e; Z# u( H
3、业界都在用这套版本控制工具/系统,网上可查资料多,所以我们也用了7 t; H. J) j2 I% V
4、根据认真评估甄别,确定的版本控制工具/系统  o; S4 R7 a1 |" z
5 f4 Q/ h. q. l9 {+ @
其中第4点,认真评估甄别,可有实际可操作的分解步骤?大家一起探讨一下?我先来几项
7 Y8 L+ t/ Y5 a8 z1 ?
; a! P4 g4 ~1 B+ I# b- X$ O一、从源码规格分解,看性能
5 }: `0 B8 r5 q1 |单个项目配置库源码规模(定义假设条件)
7 f5 h: J3 T( i# K巨型:1g以上
2 I  `  P' F) C% I5 `+ ]/ C大型:500mb~999mb: G& J. V- d: B% |! Y
中型:300mb~499mb6 n7 F; I$ g, b) A7 p- s7 M$ E/ W
小型:100mb~299mb
4 [: }3 u6 Y# H6 Q微型:10mb~99mb! N' X/ A. q4 i, O; V# l
单个文件大小 50kb~5mb(碎文件多,目录层级深),研发规模500+,并发请求20~30
7 Y% U/ B- ]" O, i* f那么,单从源码规格来看,哪些规格适合本地化管理,哪些规格适合云端托管?5 C. x2 Z  s4 S$ ]1 N. G) e. ?( V% N
同硬件条件下,本地化管理的版本控制工具哪些性能更优(获取代码、集成代码、提交代码),大家的依据是什么?
4 I3 Z1 ~7 l6 R( [# l0 C! X' k同费用配置下,云端托管的供应商哪些性能更优(获取代码、集成代码、提交代码),大家的依据又是什么?
6 @! i9 I: Z4 \7 s$ o6 Z$ j! h4 [+ X8 T) D
二、从并行开发频率分解,看易用性
2 D, e) {5 n& q# C! R项目二次开发,并行开发频率(定义假设条件)1 W! v' n9 H: z1 @4 z3 T
超高频:同一项目,一天10个以上分支并行开发,每天都有分支需要集成和发版
6 C! W! R3 ]# _. R- v: s. ]高频:同一项目,一天5~9个以上分支并行开发,每天都有分支需要集成和发版
0 `& O9 D6 ]1 U4 h4 ?中频:同一项目,一天1~4个以上分支并行开发,每天都有分支需要集成和发版
+ T3 p6 J, D4 Z+ @. i2 d低频:同一项目,不一定每天都并行开发和发版,可能很长周期内都是串行开发
% E0 `- f8 @; Z- X+ i那么,单从项目并行开发频率来看,哪款版本控制工具/系统更贴合各种频率的使用,集成和冲突解决更直观便捷易用,大家的依据又是什么?% l8 S- {) _+ x

, F3 l1 K) C8 I6 j' S& a三、从并行开发协同场景分解,看贴合度! V7 B6 ?8 {  S" i1 M4 z
项目二开,协同方式(定义假设条件)
+ V8 R1 o; y& m6 n# u# e本地化协同开发:研发集中在一个固定场所,协同开发,涉及代码集成
3 U8 ~; M$ B+ g: D# e, Y本地化独立开发:研发集中在一个固定场所,独立开发,独立交付
, m% ]7 C( p5 `) B$ e- p异地化协同开发:研发分散在全国各地,协同开发,涉及代码集成- ~' ?( P9 F- H" H% z$ m9 o
异地化独立开发:研发分散在全国各地,独立开发,独立交付; k8 o5 x; ?6 V" ^1 V
琳散的驻场开发:研发集中在一个固定场所,协同开发,偶尔需要到客户现场出差驻场开发! p$ D$ K5 _8 G
那么,单从协同方式看,哪些方式适用于集中式版本控制工具/系统,哪些适用于分布式版本控制工具/系统,哪款贴合度更高,大家的依据是什么?, w' t/ r% a/ k/ c: R; \
5 |2 U* z/ u7 D0 B; }* I; o5 n
如果我们将场景组合更复杂一些(从一、二、三中组合下条件),我们应该怎样合理评估甄别最适用的版本控制工具/系统?
$ H( p/ s9 Y# Q! n& p1 \9 L% A6 ?, A# O& y
以上分解出的几个维度,仅仅针对配置管理实际应用中的源码版本控制选型...个人思考比较有限,也请大拿参与探讨不吝赐教
# T8 w6 V+ A9 @% l: u- L8 t3 ~$ h0 G7 J. G+ V4 p
肯定还有很多前辈们有更多的建议或见解,希望能一起梳理出来,为以后初步接触的朋友铺铺路... 拜谢...; E: }5 L# G- \$ {- ~, T! Z' b2 R
& z; O# X. m4 b
发表于 2017-12-27 11:16:41 | 显示全部楼层
不错哦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-6-18 13:35 , Processed in 0.058491 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表