[CM] 如何多条产线的系统代码的配置管理。

19 views
Skip to first unread message

Xpol Wan

unread,
May 29, 2012, 12:26:27 AM5/29/12
to pon...@googlegroups.com
大家好,

公司做的嵌入式产品,开发的有A、B、C三个产品。

在硬件上,MCU来自同一芯片厂商的同样一颗芯片,操作系统都采用uC/OS-II。

差别主要是外设,比如:
  1. 有或者没有扫描键盘,或者扫描键盘的行和列数不一样
  2. 有或者没有触摸板,或者不同型号的触摸板
  3. 不同厂商的液晶屏
这三个产品的中间层应用框架是同一套代码。

目前A产品的的架构包括

  1. OS层:包括操作系统(uC/OS)和外设驱动是一个库
  2. 中间层应用框架,是另一个库,该库负责支持在PC和实际硬件设备上的都能运行。
  3. 应用程序
现在产品A,基本完成。开始准备开发B和C产品。

根据我之前做配置管理员CM和CMMI的经验,我认为 OS 层应该在A产品OS层的基础上,
通过配置文件在运行时区分不同的硬件。A、B、C的OS层用一套代码来实现
(事实上会有开发、测试和发布独立的仓库)。

但是我的同事,负责OS层开发的的部门主管,认为应该为B和C 都各COPY一份。
在不同的代码库里面进行开发。这样开发的B的时候,不用考虑A和C。
(我知道,所谓不用考虑A和C就是硬编码而已)

我的直觉告诉我,我的想法是正确的做法。但是我的我不知道如何说服我的同事。

不知道大家觉得该如何?COPY不同的代码仓库;还是如我说的该用一个仓库的一套代码?


下午公司将开会讨论这个,期待各位大大的尽快回复。


不好意思,可能有一点OT。




Best Regards!

Xpol Wan
// There is a better way!

Samuel Chen

unread,
May 29, 2012, 1:26:04 AM5/29/12
to pon...@googlegroups.com
三个产品就三个库。
需要预期B/C对OS层的修改会对A/C A/B造成影响。


2012/5/29 Xpol Wan <xpo...@gmail.com>

Xpol Wan

unread,
May 29, 2012, 1:42:14 AM5/29/12
to pon...@googlegroups.com

但是我觉得 就像两台电脑,接的鼠标不同,仍然可以用同一个操作系统一样。
应该把OS层做成这样的。

因为有中间应用框架层,保证不同产品、平台间的一致性。


Best Regards!

Xpol Wan
// There is a better way!



2012/5/29 Samuel Chen <samue...@gmail.com>

王宇

unread,
May 29, 2012, 1:56:46 AM5/29/12
to pon...@googlegroups.com
如果后期维护、升级的需求很少,分开来好。
否则还是应该采用一套代码。

机械唯物主义 : linjunhalida

unread,
May 29, 2012, 3:33:04 AM5/29/12
to pon...@googlegroups.com
我个人建议用一套。 但是分割成为不同的branch和一个主线branch。
比如:
master
product_a
product_b
product_c

这样保证了各个产品代码独立管控(比如稳定后再也不想动的时候, 不去从master pull代码就可以了), 
同时使用同一个base下面可以互相push bugfix的状况。

要注意的是, 对于任何从master或者其他branch拉过来的代码都需要彻底测试。 

因为产品而造成代码分散的话, 后期维护是地狱: 版本爆炸/同一个bug每个产品线都得用不同的方式修。。

2012/5/29 王宇 <198...@gmail.com>
如果后期维护、升级的需求很少,分开来好。
否则还是应该采用一套代码。



--
GuruDigger- We help internet products find technical partners who share the same dream!

- http://gurudigger.com

机械唯物主义 : linjunhalida

unread,
May 29, 2012, 3:33:56 AM5/29/12
to pon...@googlegroups.com
在这个时候, 就体现出git的好处了。linux内核经常遇到这种状况, 可能就是git为什么设计得那么强大的原因吧。。

2012/5/29 机械唯物主义 : linjunhalida <linjun...@gmail.com>

我个人建议用一套。 但是分割成为不同的branch和一个主线branch。
比如:
master
product_a
product_b
product_c

Úcarenya

unread,
May 29, 2012, 4:36:15 AM5/29/12
to pon...@googlegroups.com
任何DVCS都可以如此

On 15:33 Tue 29 May , 机械唯物主义 : linjunhalida wrote:
> 在这个时候,就体现出git的好处了。linux内核经常遇到这种状况,可能就是git为什么设
> 计得那么强大的原因吧。。
>
> 2012/5/29 机械唯物主义 : linjunhalida <linjun...@gmail.com>
>
> 我个人建议用一套。但是分割成为不同的branch和一个主线branch。
> 比如:
> master
> product_a
> product_b
> product_c
>
> --
> GuruDigger- We help internet products find technical partners who share the
> same dream!
>
> - http://gurudigger.com

--
- Úcarenya - infernoxu at gmail dot com
- http://ucarenya.com/

huan yi

unread,
May 29, 2012, 12:36:11 PM5/29/12
to pon...@googlegroups.com
A B C分别归不同的部门或者小组维护还是同一个小组
要考虑到
1、以后针对OCS层的改动大不大
2、3个产品之间的协调沟通通不通畅

--
Huan Yi
Q Q:173830574
focus:BSS/BOSS,billing,运营支撑
now: Asiainfo-Linkage
prev: HUST
 

jinhu wang

unread,
May 30, 2012, 8:28:49 AM5/30/12
to pon...@googlegroups.com
如果没有专门的团队维护os层分开配置合起来配置无所谓。怎么让开发团队使用起来舒服怎么来。如果硬凑在一起,各自的产品需要更新os库的话,都将面临跟其他产品协调的问题。

jinhu wang

unread,
May 30, 2012, 8:30:59 AM5/30/12
to pon...@googlegroups.com
另外既然负责OS的主管建议每个产品一份,那就应该听他的建议。他的经验应该比单纯的配置管理员多。
Reply all
Reply to author
Forward
0 new messages